文章
157
粉丝
0
获赞
0
访问
7.3k
评分及理由
(1)信号量定义得分及理由(满分2分)
得分:1分
理由:学生定义了三个信号量S1、S2和mutex,其中S1(空缓冲区数量)初值1000和S2(产品数量)初值0是正确的,符合生产者-消费者问题的基本同步需求。但是缺少控制消费者连续取10件产品的互斥信号量(标准答案中的mutex1),因此扣1分。
(2)生产者进程实现得分及理由(满分3分)
得分:2分
理由:生产者进程的同步操作P(S1)和V(S2)正确(2分),但缺少对缓冲区的互斥访问(缺少P(mutex)和V(mutex)操作),扣1分。
(3)消费者进程实现得分及理由(满分3分)
得分:1分
理由:消费者进程使用了mutex信号量来实现互斥,这可以保证同一时间只有一个消费者能进入连续取10件的循环(1分)。但是存在以下问题: ① 在循环内部缺少对缓冲区的互斥访问(缺少P(mutex)和V(mutex)操作),扣1分; ② 循环变量i没有递增,会导致死循环,这是一个严重的逻辑错误,扣1分; ③ 虽然使用了mutex实现了消费者间的互斥,但这只能保证同一时间只有一个消费者在取产品,而不能完全满足"一个消费者连续取10件后其他消费者才能取"的要求,因为mutex在循环结束后就释放,其他消费者可能立即抢占,不能保证连续取10件的完整性。
题目总分:1+2+1=4分
登录后发布评论
暂无评论,来抢沙发