文章
280
粉丝
1
获赞
8
访问
50.8k

评分及理由
(1)得分及理由(满分2分)
学生回答"是",并给出理由"因为B为空才能执行C1,保证了P1和P2互斥访问"。这个回答基本正确,但理由表述不够准确。C1要求B为空才能执行,这本身是同步条件,但多个进程同时执行C1确实需要互斥保护,因为会同时修改缓冲区。学生识别到了这是临界区,得2分。
(2)得分及理由(满分3分)
学生使用了empty和full两个信号量,empty初值为1,full初值为0,代码逻辑正确。P1先P(empty)再执行C1然后V(full),P2先P(full)再执行C2然后V(empty),这符合生产者-消费者模型的基本同步关系。虽然学生没有明确使用互斥信号量,但在这个只有单个缓冲区的特定场景下,empty和full的同步已经隐含保证了互斥。得3分。
(3)得分及理由(满分3分)
第1次识别结果使用了mutex=1,代码逻辑正确。第2次识别结果虽然多了"semaphore full - n"的表述,但核心的互斥保护部分是正确的。学生正确使用了互斥信号量来保护C3操作,因为C3是对缓冲区中数据的修改操作,需要互斥访问。得3分。
题目总分:2+3+3=8分
登录后发布评论
暂无评论,来抢沙发