文章
176
粉丝
0
获赞
0
访问
13.9k

评分及理由
(1)得分及理由(满分2分)
得分:1分
理由:学生回答"是"正确,但给出的理由"因为B为空时才能执行C1"不完整。标准答案需要说明这是临界区的原因在于多个进程同时执行C1会导致数据不一致,需要进行互斥访问。学生只说明了执行条件,没有说明互斥必要性,扣1分。
(2)得分及理由(满分3分)
得分:3分
理由:学生使用了三个信号量(empty、mutex、full),虽然比标准答案多一个,但思路正确且逻辑完整。empty=1表示缓冲区空,mutex=1用于互斥,full=0表示缓冲区无数据。P1和P2的执行顺序正确:P1先检查empty,执行C1后设置full;P2先等待full,执行C2后设置empty。整个过程能够正确实现同步和互斥,因此不扣分。
(3)得分及理由(满分3分)
得分:1分
理由:学生使用了三个信号量,但逻辑存在问题。对于C3操作,只需要互斥访问缓冲区,不需要empty和full信号量。学生虽然使用了mutex实现互斥,但多余的full信号量使用不当:P(full)和V(full)没有实际意义,因为full始终为1。虽然核心互斥逻辑正确,但引入了不必要的信号量且使用不当,扣2分。
题目总分:1+3+1=5分
登录后发布评论
暂无评论,来抢沙发