文章
119
粉丝
0
获赞
1
访问
7.2k
评分及理由
(1)得分及理由(满分2分)
学生回答“是临界区,因为写入操作需互斥进行”,这与标准答案中“实现C1的代码是临界区,因为它涉及到对共享资源(缓冲区B)的修改,需要互斥访问”的核心观点一致。虽然学生答案表述简略,但关键点正确。因此得2分。
(2)得分及理由(满分3分)
学生定义了一个信号量full(初值0)来实现同步,确保P2在P1写入之后才能读取,这符合“B为空时才能执行C1,B非空时才能执行C2”的同步要求。但学生未定义互斥信号量(如mutex)来保护对缓冲区B的互斥访问,存在逻辑错误:若多个进程并发执行C1或C2,可能导致对缓冲区的同时访问,造成数据不一致。根据标准答案,需同时使用mutex和full两个信号量。因此扣1分,得2分。
(3)得分及理由(满分3分)
学生定义了一个互斥信号量mutex(初值1)来实现对C3操作的互斥访问,这与标准答案完全一致,确保了同一时刻只有一个进程修改缓冲区B。代码逻辑正确,信号量定义和初值合理。因此得3分。
题目总分:2+2+3=7分
登录后发布评论
暂无评论,来抢沙发