文章
509
粉丝
0
获赞
1
访问
101.2k

评分及理由
(1)得分及理由(满分2分)
得分:2分。
理由:学生正确指出C1的代码是临界区,并给出了正确原因(对B的写入需要互斥)。这与标准答案的核心观点一致。
(2)得分及理由(满分3分)
得分:3分。
理由:学生定义了empty和full两个信号量,其作用和初值(empty=1, full=0)完全正确,符合“尽可能少的信号量”要求。P1和P2的代码逻辑正确:P1先等待缓冲区空(wait(empty)),执行C1后通知缓冲区有数据(signal(full));P2先等待缓冲区有数据(wait(full)),执行C2后通知缓冲区空(signal(empty))。该方案完美实现了题目要求的同步关系(B为空才能执行C1,B非空才能执行C2),且没有逻辑错误。
(3)得分及理由(满分3分)
得分:3分。
理由:学生定义了mutex信号量用于互斥,初值为1,符合“尽可能少的信号量”要求。P1和P2的代码逻辑正确:通过wait(mutex)和signal(mutex)将C3操作包裹起来,确保了同一时刻只有一个进程能修改缓冲区B。这满足了题目中“B非空时才能执行C3”的前提以及互斥修改的要求,没有逻辑错误。
题目总分:2+3+3=8分
登录后发布评论
暂无评论,来抢沙发