文章
75
粉丝
78
获赞
1
访问
13.8k

评分及理由
(1)信号量定义(满分约1分)
得分:1分。理由:学生两次识别结果中,第二次识别结果正确定义了四个信号量(odd, even, empty, mutex),含义与标准答案一致。第一次识别中“edd”疑似“odd”的误写,根据“禁止扣分”原则,不扣分。
(2)P1进程实现(满分约2分)
得分:1分。理由:学生答案中P1进程的逻辑存在严重错误。主要问题在于:1. 在将数据放入缓冲区之前就释放了信号量(V(odd)或V(even)),这会导致消费者(P2/P3)可能在数据还未真正放入缓冲区时就尝试取数据,违反了同步原则。2. 缺少了将数据实际放入缓冲区的操作(如标准答案中的Put())。这两点属于核心逻辑错误,因此扣1分。
(3)P2与P3进程实现(满分约4分)
得分:3分。理由:学生答案中P2和P3的框架基本正确,包含了正确的信号量等待顺序(先P(odd)/P(even),再P(mutex))和释放顺序(V(empty), V(mutex))。但是,在取出数据后,缺少了对数据进行统计的操作(如标准答案中的countodd()和counteven())。考虑到统计操作是题目明确要求的功能,此处缺失属于逻辑不完整,因此扣1分。其余部分逻辑正确。
题目总分:1+1+3=5分
登录后发布评论
暂无评论,来抢沙发