文章

292

粉丝

0

获赞

2

访问

79.2k

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


评分及理由

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

得分:1分

理由:学生定义了四个信号量,其中empty=1000和full=0的初值正确,符合环形缓冲区容量1000且初始为空的要求。mutexP=1和mutexC=1的初值也正确,但含义说明不完整。标准答案中需要明确mutex1用于控制消费者连续取10件的互斥,mutex2用于单次缓冲区访问互斥,而学生用mutexP和mutexC区分生产者和消费者,但未体现连续取10件的特殊控制,因此扣1分。

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

得分:1分

理由:生产者进程的同步操作P(empty)和V(full)正确,互斥操作P(mutexP)和V(mutexP)也正确,但缺少生产产品的具体步骤(仅用"PRODUCER"表示,可接受)。主要问题在于mutexP仅用于生产者互斥,而标准答案中所有进程应使用同一个互斥信号量访问缓冲区,这里可能造成生产者与消费者无法完全互斥,因此扣1分。

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

得分:2分

理由:消费者进程使用P(mutexC)控制连续取10件产品,符合题目要求,给2分。但存在以下问题:①在for循环内缺少取产品时的互斥操作(应有类似P(mutex)的操作保护缓冲区);②"GET OUT"操作未在互斥保护下进行;③"Consume"放在循环外,但实际应在每次取产品后立即消费(根据题目描述)。这些逻辑错误共扣2分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发