文章
34
粉丝
78
获赞
0
访问
1.1k

评分及理由
(1)信号量定义及初值(满分2分)
得分:2分
理由:学生答案中定义了四个信号量:mailA(对应Full_A)、mailB(对应Full_B)、emptyA(对应Empty_A)、emptyB(对应Empty_B),并正确给出了初值。虽然命名与标准答案不完全一致,但含义和初值正确,符合题意。
(2)互斥信号量的使用(满分2分)
得分:0分
理由:学生答案中完全没有使用互斥信号量(mutex_A和mutex_B)。从A的信箱取邮件、向B的信箱放邮件、从B的信箱取邮件、向A的信箱放邮件,这些操作都是对共享资源(信箱)的访问,必须互斥进行以防止数据不一致。缺少互斥保护是严重的逻辑错误。
(3)同步信号量的P、V操作使用(满分5分)
得分:3分
理由:学生答案在同步逻辑的大框架上是正确的:取邮件前P(mailX),取后V(emptyX);放邮件前P(emptyY),放后V(mailY)。这实现了“信箱不空才能取”和“信箱不满才能放”的同步要求。但是,由于缺少互斥锁,将V(emptyA)和V(emptyB)操作放在了“取邮件”操作之后、但在释放互斥锁之前(标准答案中V(emptyX)在V(mutex_X)之后),在这个有缺陷的流程中,其同步信号量的操作顺序本身没有原则性错误。然而,由于整个流程缺少互斥保护,同步操作的实际效果无法保证正确,因此不能给满分。考虑到其同步信号量的PV配对和位置基本正确,给予部分分数。
题目总分:2+0+3=5分
登录后发布评论
暂无评论,来抢沙发