文章

77

粉丝

1

获赞

0

访问

15.1k

头像
2009年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年10月8日 20:16
阅读数 69


评分及理由

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

得分:1分

理由:学生定义了四个信号量,与标准答案一致。mutex用于互斥,empty用于缓冲区同步,odd_count和even_count分别对应奇数和偶数的同步信号量。虽然命名与标准答案略有不同(odd_count/even_count vs odd/even),但含义正确,因此不扣分。

(2)P1进程实现得分及理由(满分2分)

得分:1分

理由:在第一次识别中,P1的逻辑基本正确:先P(empty)再P(mutex),然后put,最后根据奇偶性V对应的信号量。但在第二次识别中,P1出现了严重错误:连续两次P(mutex)会导致死锁,且P(empty)的位置在第二个P(mutex)之后也不符合同步要求。由于两次识别结果不一致,我们取正确的那次(第一次识别)作为主要评分依据,但第二次识别中的错误表明学生对同步机制理解不够清晰,因此扣1分。

(3)P2/P3进程实现得分及理由(满分4分)

得分:3分

理由:P2和P3的实现基本正确:先P(odd_count)/P(even_count)等待信号,然后P(mutex)操作缓冲区,最后V(mutex)和V(empty)。但存在一个逻辑错误:countodd()和counteven()统计函数应该在释放互斥锁之后执行,因为统计操作不需要互斥保护,放在临界区内会降低并发效率。这个错误属于逻辑缺陷,扣1分。

题目总分:1+1+3=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发