文章

77

粉丝

0

获赞

0

访问

7.1k

头像
2014年计算机学科专业基础综合试题 - 第47题回答
操作系统
发布于2025年9月19日 17:42
阅读数 113


评分及理由

(1)信号量定义(满分2分)

得分:1分

理由:学生定义了四个信号量,其中empty初值1000和full初值0正确(1分)。但mutex1和mutex2的含义描述不准确:mutex1被描述为“用于生产者互斥访问缓冲区”,但标准答案中mutex2用于单次互斥访问缓冲区,而mutex1用于控制消费者连续取10次的互斥;学生将mutex2描述为“用于消费者互斥读取缓冲区”或“用于消费者互斥获取10个产品”,与标准答案不符(mutex1应控制连续取10次,mutex2应控制单次互斥)。因此扣1分。

(2)生产者进程(满分2分)

得分:1分

理由:生产者进程使用P(empty)和V(full)实现同步正确(1分)。但互斥信号量使用错误:学生使用mutex1(应用于消费者连续取控制)进行互斥,而标准答案使用mutex2进行单次互斥。这里逻辑错误,导致生产者互斥操作不正确,扣1分。

(3)消费者进程(满分4分)

得分:2分

理由:消费者进程使用for循环连续取10次产品,并通过P(mutex2)和V(mutex2)实现外部互斥控制(1分),使用P(full)和V(empty)实现同步正确(1分)。但存在两个错误:①未在循环内部使用单次互斥信号量(标准答案中每次取产品需用mutex2互斥,学生代码中P(full)后直接取产品,缺少P(mutex2)和V(mutex2)保护,可能导致多个消费者同时访问缓冲区);②mutex2的定义和用法错误(学生用mutex2控制连续取10次的互斥,但标准答案中mutex1用于此目的)。每个错误扣1分,共扣2分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发