文章
95
粉丝
50
获赞
1
访问
18.6k

评分及理由
(1)得分及理由(满分2分)
学生正确指出C1的代码是临界区,并给出了合理的解释(访问共享资源缓冲区B)。回答与标准答案一致,得2分。
(2)得分及理由(满分3分)
学生定义了信号量mutex和B(相当于标准答案中的full),并给出了正确的初值B=0。代码逻辑基本正确:P1执行C1后V(B)通知P2,P2通过P(B)等待缓冲区非空。但存在以下问题:
- P2中P(B)和P(mutex)的顺序与标准答案相反,这可能导致死锁(如果先P(B)获得同步信号量,再P(mutex)请求互斥,但mutex被其他进程占用时,P2会阻塞并持有B信号量,影响系统并发性)。标准答案中先等待同步信号量(full)再请求互斥(mutex)是更合理的顺序。
- 信号量命名B与标准答案的full不同,但功能一致,不扣分。
由于存在逻辑顺序问题,扣1分,得2分。
(3)得分及理由(满分3分)
学生正确使用一个信号量mutex实现互斥,初值设为1。代码逻辑正确:两个进程通过wait(mutex)和signal(mutex)保护C3操作。与标准答案完全一致,得3分。
题目总分:2+2+3=7分
登录后发布评论
暂无评论,来抢沙发