文章
21
粉丝
0
获赞
2
访问
1.1k
评分及理由
(1)信号量定义及初值(满分2分)
得分:1分
理由:学生定义了必要的互斥信号量(mutex_A、mutex_B)和同步信号量(full_A、full_B、empty_A、empty_B),但同步信号量的初值设置错误。标准答案中full_A和full_B的初值应分别为x和y(表示初始邮件数),empty_A和empty_B的初值应分别为M-x和N-y(表示剩余空间)。学生将full_A和full_B初值设为0,empty_A和empty_B初值设为M和N,这与题目初始状态(A信箱有x个邮件,B信箱有y个邮件)不符,属于逻辑错误。但考虑到信号量种类定义完整,给1分。
(2)A进程同步互斥操作(满分3.5分)
得分:3分
理由:学生A进程的P、V操作顺序正确(先检查邮件数量再互斥访问信箱),且互斥操作使用正确。但full_A的P操作语义错误(初值为0会导致A进程一开始就阻塞),由于初值错误导致同步逻辑问题,扣0.5分。其余同步信号量操作顺序符合生产者-消费者模型规范。
(3)B进程同步互斥操作(满分3.5分)
得分:3分
理由:与A进程同理,B进程的P、V操作顺序正确,互斥操作使用正确。但full_B的初值错误导致同步逻辑问题,扣0.5分。其余部分符合要求。
题目总分:1+3+3=7分
登录后发布评论
暂无评论,来抢沙发