文章
273
粉丝
0
获赞
1
访问
57.9k

评分及理由
(1)信号量定义得分及理由(满分2分)
得分:1分
理由:学生定义了四个信号量,含义基本正确:mutex1用于缓冲区互斥,mutex2用于连续取产品互斥,full表示产品数,empty表示空闲数。但mutex1初值未给出(第一次识别显示为1,第二次识别未赋值),按照最严格判断,初值不完整扣1分。其他信号量初值正确。
(2)生产者进程实现得分及理由(满分2分)
得分:1分
理由:生产者使用了P(empty)和V(full)实现同步,顺序正确。但使用mutex1作为缓冲区互斥信号量,而消费者也使用同一个mutex1,这会导致生产者与消费者在单次访问时互斥,但未考虑连续取10件时的特殊互斥需求。标准答案使用mutex2用于单次互斥,mutex1用于连续取控制,这里逻辑不够清晰,扣1分。
(3)消费者进程实现得分及理由(满分4分)
得分:2分
理由:消费者使用mutex2控制连续取10次,使用for循环连续取10件产品,这一点符合题目要求。但在循环内部使用了P(mutex1)进行互斥,与生产者使用同一个互斥信号量,这会导致其他消费者在单个产品取用时被阻塞,而不是在连续10次期间被阻塞,与题目要求的"一个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才可以取产品"不完全一致。此外,同步操作P(full)和V(empty)顺序正确。因互斥控制逻辑有缺陷,扣2分。
题目总分:1+1+2=4分
登录后发布评论
暂无评论,来抢沙发