文章
302
粉丝
0
获赞
15
访问
51.4k

评分及理由
(1)信号量定义得分及理由(满分2分)
得分:1分
理由:学生定义了empty=1000和full=0,这两个同步信号量的初值和含义正确,符合生产者-消费者问题的基本要求。但是缺少用于保证消费者连续取10件产品期间互斥的信号量(标准答案中的mutex1),且mutex_consumer和mutex_producer的命名和用途不够清晰。因此扣1分。
(2)生产者进程实现得分及理由(满分2分)
得分:1分
理由:生产者进程中使用了P(empty)和V(full)实现同步,基本正确。但是互斥信号量的使用存在问题:学生使用了mutex_producer和mutex,但mutex未定义,且标准答案中生产者只需一个互斥信号量(mutex2)即可。此外,V(mutex)在生产者中未配对使用,存在逻辑错误。因此扣1分。
(3)消费者进程实现得分及理由(满分4分)
得分:1分
理由:消费者进程中尝试使用循环实现连续取10件产品,但逻辑混乱:①循环嵌套错误,外层循环次数不明;②P(mutex_consumer)和V(mutex_consumer)的位置不当,无法保证一个消费者连续取10件期间其他消费者不能取;③缺少对连续取10件的互斥控制信号量;④P(full)和P(mutex)的顺序可能引起死锁(标准应先P(full)后P(mutex))。因此扣3分。
题目总分:1+1+1=3分
登录后发布评论
暂无评论,来抢沙发