文章

124

粉丝

0

获赞

0

访问

12.7k

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


评分及理由

(1)信号量定义得分及理由(满分2分)

得分:2分

理由:学生定义了empty、full和mutex三个信号量,含义和初值都正确。empty=1000表示缓冲区初始空位数,full=0表示初始产品数,mutex=1用于互斥访问缓冲区,这与标准生产者-消费者问题的信号量设置一致。

(2)生产者进程实现得分及理由(满分1分)

得分:1分

理由:生产者进程的代码逻辑正确,先P(empty)检查缓冲区是否有空位,再P(mutex)获取缓冲区互斥访问权,然后生产产品,最后V(mutex)释放互斥锁和V(full)增加产品计数。这完全符合生产者进程的要求。

(3)消费者进程实现得分及理由(满分5分)

得分:0分

理由:消费者进程的实现存在严重逻辑错误:

  • 只实现了连续取10件产品的循环,但没有提供让其他消费者进程等待的机制
  • 缺少控制"一个消费者进程从缓冲区连续取出10件产品后,其他消费者进程才可以取产品"这个关键要求的信号量
  • 消费者进程在取完10件产品后就退出了,没有持续运行的循环结构
  • 没有实现多个消费者进程之间的协调机制

根据评分标准,控制消费者连续取产品数量正确给2分,但这里完全没有实现题目要求的消费者之间的协调机制。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发