评分及理由
(1)得分及理由(满分7分)
学生答案与标准答案在核心逻辑上完全一致:
- 定义了四个信号量:mutex(互斥)、empty(空缓冲区计数)、oddNum(对应标准答案的odd)、evenNum(对应标准答案的even),含义正确。
- P1进程:先申请空位(P(empty)),再申请互斥锁(P(mutex)),放入数据后释放互斥锁(V(mutex)),最后根据生成的数是奇数还是偶数,向对应的消费者进程发送信号(V(oddNum)或V(evenNum))。逻辑顺序正确。
- P2进程:先等待奇数信号(P(oddNum)),再申请互斥锁(P(mutex)),取出数据后释放互斥锁(V(mutex)),然后增加空位(V(empty)),最后统计。逻辑顺序正确。
- P3进程:逻辑与P2对称,针对偶数操作,顺序正确。
学生答案在标准答案的基础上增加了`while(1)`循环,这符合生产者-消费者模型持续运行的实际场景,并未违反题目要求,属于合理且正确的扩展,根据打分要求“思路正确不扣分”,不因此扣分。
因此,该答案完全实现了三个进程的同步与互斥,信号量定义清晰,伪代码逻辑正确无误。
得分:7分
题目总分:7分
登录后发布评论
暂无评论,来抢沙发