文章
85
粉丝
0
获赞
2
访问
3.5k
评分及理由
(1)信号量定义及初值(满分2分)
学生定义了6个信号量:mutexA、mutexB、emptyA、emptyB、fullA、fullB,并正确给出了初值(mutexA=1, mutexB=1, emptyA=M-x, emptyB=N-y, fullA=x, fullB=y)。信号量含义说明中,mutexA和mutexB用于互斥,empty和full用于同步,符合标准答案要求。得2分。
(2)A进程同步与互斥操作(满分3.5分)
学生代码中,A进程(P1)的同步与互斥操作顺序正确:先P(fullA)检查是否有邮件,再P(mutexA)获取信箱互斥锁,取邮件后V(mutexA)释放锁,再V(emptyA)增加空闲空间;然后生成新邮件,先P(emptyB)检查B信箱空间,再P(mutexB)获取B信箱互斥锁,放邮件后V(mutexB)释放锁,再V(fullB)增加B邮件计数。所有P、V操作使用正确,与标准答案一致。得3.5分。
(3)B进程同步与互斥操作(满分3.5分)
学生代码中,B进程(P2)的同步与互斥操作顺序正确:先P(fullB)检查是否有邮件,再P(mutexB)获取信箱互斥锁,取邮件后V(mutexB)释放锁,再V(emptyB)增加空闲空间;然后生成新邮件,先P(emptyA)检查A信箱空间,再P(mutexA)获取A信箱互斥锁,放邮件后V(mutexA)释放锁,再V(fullA)增加A邮件计数。所有P、V操作使用正确,与标准答案一致。得3.5分。
题目总分:2+3.5+3.5=9分
登录后发布评论
暂无评论,来抢沙发