文章

273

粉丝

0

获赞

1

访问

57.9k

头像
2014年(408)计算机学科专业基础综合试题 - 第47题回答
操作系统
发布于2025年11月18日 14:11
阅读数 84


评分及理由

(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分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发