《操作系统》的实验代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.6 KiB

9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
  1. challenge1: 实现精简版用户进程管理与切换
  2. ===================================================
  3. 要求:
  4. (step1) 去掉页表的管理,分配内存功能,只保留段机制,中断,内核线程切换,用户进程切换,print功能。看看代码规模会小到什么程度。
  5. 状态:未完成
  6. 完成人:
  7. challenge2: 实现用户进程的Copy on Write机制
  8. ===================================================
  9. 状态:基本完成
  10. 完成了一种情况(没有swap机制)
  11. output.cow是实现了COW机制的输出,
  12. output.norm是正常lab5的输出,
  13. 这两份输出都添加了相应的注释,方便理解实现和验证的思路
  14. https://github.com/chyyuu/ucore_lab/tree/lab5_X/labcodes_answer/lab5_result
  15. 完成人:
  16. 李天润 ltrthu@163.com
  17. 沈光耀 thusgy2012@gmail.com
  18. challenge3: 实现用户线程,且内核无法“看到”用户线程(即需要在用户态完成线程切换和线程管理)
  19. ===================================================
  20. 状态:未完成
  21. 完成人:
  22. challenge4: 分析ucore 内存申请与释放,发现潜在的内存泄露现象
  23. ===================================================
  24. 目前ucore lab5_answer中,存在潜在的内存泄露现象,请通过设计一个方法来解决这个问题。
  25. ```
  26. Lab5内存泄露?
  27. 实现完Lab5要求后,
  28. 执行make run-forktest,输出
  29. assertion failed: nr_free_pages_store == nr_free_pages()
  30. Welcome to the kernel debug monitor!!
  31. 发现当fork的进程数max_child超过12时,会出现内存泄露。。。
  32. 打印上面两个值,输出如下:
  33. should remain:31861 actually remain:31860
  34. 有1页没有被回收
  35. ```
  36. 状态:未完成
  37. 完成人: