文章

6

粉丝

93

获赞

0

访问

88

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


评分及理由

(1)信号量定义及初值(满分2分)

得分:1分

理由:学生定义了empty=1000(正确)、mutex=1(正确,但缺少对消费者连续取10件的控制信号量),但CP信号量含义不明确(应表示产品数量,但初值应为0,学生未明确写出初值,识别中可能误写)。标准答案需要两个互斥信号量(mutex1和mutex2)和一个同步信号量(full),但学生使用了CP(类似full)和empty,且缺少控制连续取的信号量。扣1分。

(2)生产者进程实现(满分1分)

得分:1分

理由:生产者进程正确使用P(empty)和P(mutex)进行缓冲区和互斥访问,并执行V(CP)(相当于V(full)),同步和互斥逻辑正确,不扣分。

(3)消费者进程实现(满分5分)

得分:1分

理由:消费者进程试图实现连续取10件,但存在严重逻辑错误:①在if(count>=10)中直接使用P(mutex)但未释放,导致死锁;②else分支中再次P(mutex)会导致重复加锁;③V(mutex)在for循环内多次释放,破坏互斥;④缺少对缓冲区互斥的正确管理(应用单独互斥信号量保护单次取操作);⑤未实现“一个消费者连续取10件后其他消费者才能取”的语义(应用信号量mutex1控制)。扣4分。

题目总分:1+1+1=3分

总分计算:信号量部分得1分,生产者得1分,消费者得1分(因基本思路存在但错误较多),其余部分扣分。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发