文章

183

粉丝

0

获赞

1

访问

62.1k

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


评分及理由

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

得分:2分

理由:信号量empty、full、mutex1、mutex2的初值和含义都正确。empty=1000表示初始空缓冲区数量,full=0表示初始产品数量,mutex1用于缓冲区互斥,mutex2用于消费者连续取10件的互斥控制。

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

得分:1分

理由:生产者进程实现正确,先P(empty)判断空位,再P(mutex1)互斥访问缓冲区,然后放入产品,最后V(mutex1)和V(full),符合生产者-消费者模型的基本要求。

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

得分:3分

理由:

  • 消费者使用mutex2控制连续取10件的互斥,实现正确(+2分)
  • 循环10次取产品的逻辑正确(+1分)
  • 但是存在逻辑错误:在for循环内部,应该先P(full)再P(mutex1),而学生作答中顺序正确,但mutex1的使用存在问题。mutex1在生产者中用于保护缓冲区,在消费者中也用于保护缓冲区,这会导致死锁,因为当消费者持有mutex1时,生产者无法进入缓冲区(-1分)
  • 另外,消费者进程缺少消费产品的步骤(-1分)

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发