实验五:fork 的实现、并发与锁机制¶
在繁忙的十字路口指挥交通,需要一套精巧的规则,才能保证井然有序,避免冲突和事故。
by Gemini
实验目的¶
- 了解 fork 的实现原理,实现 fork 系统调用。
- 基于阻塞和唤醒机制,实现更好的 waitpid 系统调用。
- 了解并发与锁机制的概念,实现基于操作系统的自旋锁、信号量。
- 编写基于 fork 的并发程序,并测试自旋锁、信号量的正确性。
实验基础知识¶
善用 LLM 进行学习
对于现代计算机专业的学生,建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。
对于不理解的知识点和概念,建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。
确保你阅读了 寻求帮助 一节,这将帮助你更快的解决问题。
鼓励使用 Typst 来进行实验文档的编写,使用可以参考 使用 Typst 编写报告。
实验任务与要求¶
-
请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。
-
请参考 代码与提交规范 进行实验代码编写。
-
依据 实验任务 完成实验。
- 代码编写任务:观察提供的代码,完善所有标记为
FIXME:
的部分,并验证结果是否符合预期。请在报告中介绍实现思路,截图展示关键结果。 - 思考任务:完成 “思考题” 和 “实验任务” 部分的内容,在报告中简要进行回答。注:思考题可能也是理解代码、实现功能的重要提示。
- Bonus 加分项:学有余力的同学可以任选 Bonus 部分完成,尝试完成更多的功能,并在报告中进行展示。这部分内容不是必须的要求。
- 代码编写任务:观察提供的代码,完善所有标记为
-
请在实验报告中涵盖相关任务的实现截图、实验任务对应问题的解答、实验过程中遇到的问题与解决方案等内容。