文章
101
粉丝
0
获赞
2
访问
11.8k

评分及理由
(1)信号量定义得分及理由(满分1分)
得分:1分
理由:学生定义了正确的信号量,包括empty、full、mutex、odd和even,含义清晰,与标准答案一致(标准答案使用empty、odd、even、mutex,但full信号量的功能可以通过odd和even实现,学生的定义也是合理的)。
(2)P1进程实现得分及理由(满分2分)
得分:1分
理由:P1进程基本正确,但在生成数据并放入缓冲区后多了一个V(full)操作。根据题目要求,P2和P3分别消费奇数和偶数,应该通过odd和even信号量来同步,不需要额外的full信号量。这个多余的V(full)会导致逻辑错误,扣1分。
(3)P2进程实现得分及理由(满分2分)
得分:1分
理由:P2进程有两个问题:一是多了一个P(full)操作,这会导致与P1的V(full)不匹配,可能造成死锁或逻辑错误;二是countodd()应该在释放互斥锁之后执行,但这不是严重错误。由于多了一个P(full),扣1分。
(4)P3进程实现得分及理由(满分2分)
得分:1分
理由:P3进程同样多了一个P(full)操作,与P2相同的问题。counteven()的位置也不是最优,但主要问题是多余的P(full),扣1分。
题目总分:1+1+1+1=4分
登录后发布评论
暂无评论,来抢沙发