文章

6

粉丝

93

获赞

0

访问

85

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


评分及理由

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

得分:1分

理由:学生定义了信号量empty(初值1000)和mutex(初值1),但缺少了full信号量(或类似功能的信号量,如CP)的明确定义。CP在代码中被使用,但未明确声明为信号量,且初值应为0(但学生写为0,符合要求)。此外,缺少用于控制消费者连续取10件的信号量(如mutex1)。因此扣1分。

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

得分:1分

理由:生产者进程正确使用了P(empty)和P(mutex)进行同步和互斥,并在操作后V(mutex)和V(CP)(相当于V(full)),符合标准生产者逻辑。虽然CP未明确声明为信号量,但根据上下文可推断其作用,因此不扣分。

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

得分:2分

理由:消费者进程试图实现“连续取10件”的要求,但存在严重逻辑错误:① 使用if条件判断Count>=10后再取产品,但Count是共享变量,未受互斥保护(虽然外部有P(mutex),但内部P(CP)可能阻塞,导致mutex未被释放,引发死锁);② 在循环内执行P(CP)时,mutex未被释放,其他进程无法操作缓冲区,违反互斥规则;③ 缺少控制“一个消费者连续取10件”的互斥信号量(如mutex1),导致多个消费者可能同时进入条件判断。同步逻辑错误扣2分,互斥逻辑错误扣1分。但学生正确使用了循环结构尝试实现连续取10件,因此给2分。

题目总分:1+1+2=4分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发