跳转至

实验五:fork 的实现、并发与锁机制

在繁忙的十字路口指挥交通,需要一套精巧的规则,才能保证井然有序,避免冲突和事故。
 by Gemini

实验目的

  1. 了解 fork 的实现原理,实现 fork 系统调用。
  2. 基于阻塞和唤醒机制,实现更好的 waitpid 系统调用。
  3. 了解并发与锁机制的概念,实现基于操作系统的自旋锁、信号量。
  4. 编写基于 fork 的并发程序,并测试自旋锁、信号量的正确性。

实验基础知识

善用 LLM 进行学习

对于现代计算机专业的学生,建议并要求大家学习借助 LLM(Large Language Model)进行学习,这是一种非常有效的学习方法,可以帮助你更快的学习到知识。

对于不理解的知识点和概念,建议优先参考文档、借助 LLM 进行实践,在仍然无法解决的情况下再向他人提问。

确保你阅读了 寻求帮助 一节,这将帮助你更快的解决问题。

鼓励使用 Typst 来进行实验文档的编写,使用可以参考 使用 Typst 编写报告

实验任务与要求

  1. 请各位同学独立完成作业,任何抄袭行为都将使本次作业判为 0 分。

  2. 请参考 代码与提交规范 进行实验代码编写。

  3. 依据 实验任务 完成实验。

    • 代码编写任务:观察提供的代码,完善所有标记为 FIXME: 的部分,并验证结果是否符合预期。请在报告中介绍实现思路,截图展示关键结果。
    • 思考任务:完成 “思考题” 和 “实验任务” 部分的内容,在报告中简要进行回答注:思考题可能也是理解代码、实现功能的重要提示。
    • Bonus 加分项:学有余力的同学可以任选 Bonus 部分完成,尝试完成更多的功能,并在报告中进行展示。这部分内容不是必须的要求。
  4. 请在实验报告中涵盖相关任务的实现截图、实验任务对应问题的解答、实验过程中遇到的问题与解决方案等内容。