文章

73

粉丝

0

获赞

0

访问

6.4k

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


评分及理由

(1)信号量初值和含义(满分2分):得分1分。理由:学生定义了四个信号量,但mutex1和mutex2的含义描述不准确。mutex1应表示缓冲区互斥(但标准答案中mutex2用于单次互斥),mutex2用于控制连续取10件(但标准答案中mutex1用于此目的)。empty初值1000和full初值0正确,但含义描述基本正确(空容量和产品数量)。扣1分因为信号量含义分配错误。

(2)生产者进程操作(满分1分):得分0分。理由:生产者进程中,P(empty)和P(mutex)顺序正确,但"生产产品"应在P(empty)之前(标准答案中先生产再P(empty)),且这里mutex用于互斥,但学生代码中生产操作在互斥区内(错误,生产不应在互斥区内),这会导致效率问题但非逻辑错误。主要错误是缺少产品放入缓冲区的操作(代码中写的是"生产产品"在互斥区内,但实际应放入缓冲区),这是一个逻辑错误,扣1分。

(3)生产者与消费者同步操作(满分2分):得分1分。理由:生产者中P(empty)和V(full)同步操作正确,消费者中P(full)和V(empty)同步操作正确,但消费者中"消费产品"应在V(mutex)之后(标准答案中消费在互斥区外),这里学生代码将消费放在互斥区内,这虽不破坏同步但降低并发性,不扣分。扣1分因为生产者缺少放入缓冲区操作(同步依赖缓冲区操作,缺少则同步不完整)。

(4)消费者互斥操作(满分1分):得分1分。理由:学生使用mutex2控制连续取10件产品,P(mutex2)在for循环外,V(mutex2)在循环后,正确实现了连续取10件期间其他消费者阻塞,符合要求。

(5)控制消费者连续取产品数量(满分2分):得分2分。理由:for循环连续取10次,并使用mutex2信号量确保一个消费者连续取10件后其他消费者才能取,正确。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发