文章
21
粉丝
0
获赞
0
访问
1.7k
评分及理由
(1)信号量定义(满分2分)
得分:2分
理由:学生定义了四个信号量(odd、even、empty、mutex),含义与标准答案完全一致(odd控制P1与P2同步,even控制P1与P3同步,empty控制缓冲区空单元,mutex控制互斥)。信号量初始值正确(odd=0, even=0, empty=N, mutex=1)。
(2)P1进程伪代码(满分2分)
得分:2分
理由:P1流程正确:先生产数据,然后P(empty)检查空单元,再P(mutex)进入临界区,执行put操作,之后V(mutex)释放缓冲区,最后根据数据奇偶性V(odd)或V(even)通知对应消费者。与标准答案一致。
(3)P2进程伪代码(满分1.5分)
得分:1.5分
理由:P2流程基本正确:先P(odd)等待奇数信号,然后P(mutex)进入临界区,执行getodd操作,之后V(mutex)释放缓冲区,V(empty)增加空单元,最后统计奇数计数。但代码中"get odd;"和"count odd + 1;"为伪代码描述,与标准答案的getodd()和countodd()功能一致,不扣分。然而,第二次识别结果中P2进程标签写为P1(应为P2),但根据上下文判断为识别误写(实际应为P2),因此不扣分。
(4)P3进程伪代码(满分1.5分)
得分:1.5分
理由:P3流程正确:先P(even)等待偶数信号,然后P(mutex)进入临界区,执行geteven操作,之后V(mutex)释放缓冲区,V(empty)增加空单元,最后统计偶数计数。同样,伪代码描述与标准答案功能一致。第二次识别结果中P3进程标签写为P2(应为P3),但根据上下文判断为识别误写,不扣分。
题目总分:2+2+1.5+1.5=7分
登录后发布评论
暂无评论,来抢沙发