文章

296

粉丝

0

获赞

0

访问

21.7k

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


评分及理由

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

得分:2分

理由:学生定义了empty=1000、full=0、mutex=1,这三个信号量的含义和初值完全正确。额外定义的consume=1信号量虽然名称与标准答案不同,但其功能是控制消费者连续取产品的互斥,含义和初值都正确,符合题目要求。

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

得分:1分

理由:生产者进程的代码逻辑完全正确,实现了与缓冲区的互斥访问(通过mutex)和与消费者的同步(通过empty和full),符合生产者-消费者模型的基本要求。

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

得分:3分

理由:

  • 消费者进程使用了consume信号量来控制连续取产品,思路正确(+2分)
  • 但是存在一个关键逻辑错误:消费者进程在P(consume)后只执行了一次P(full)和取产品操作,没有实现连续取10件产品的循环结构。代码中count++和if(count==10)的判断逻辑虽然正确,但由于缺少循环,实际上只能取1件产品就释放了consume信号量(-2分)
  • 消费者与生产者的同步操作(P(full)/V(empty))和互斥操作(P(mutex)/V(mutex))使用正确(+1分)

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发