文章
25
粉丝
0
获赞
0
访问
2.4k
semophara EMA,EMB,EMC,EMD=0;
A{
操作;
p(EMA);
}
B{
操作;
p(EMB);
}
C{
v(EMA);
V(EMB);
操作;
p(EMC);
}
D{
操作;
p(EMD);
}
E{
p(EMC);
p(EMD);
操作;
}
评分及理由
(1)信号量定义及初值(满分2分)
学生定义了四个信号量EMA、EMB、EMC、EMD,初值均为0,这符合同步信号量的基本要求。但信号量命名不够清晰,未能体现其具体控制的关系。扣1分。
得分:1分
(2)进程A、B、D的实现(满分2分)
进程A、B、D中在操作后执行P操作(wait)是错误的逻辑。根据同步要求,A、B、D作为前置任务,完成后应该通过V操作(signal)通知后续任务,而不是执行P操作。这里存在严重逻辑错误,扣2分。
得分:0分
(3)进程C、E的实现(满分3分)
进程C中先执行两个V操作再执行操作,这完全颠倒了同步逻辑。正确的应该是先等待A和B完成(P操作),然后执行C,最后通知E(V操作)。进程E中的P操作逻辑正确,但由于C的错误实现,E永远无法正常执行。这里存在严重逻辑错误,扣3分。
得分:0分
题目总分:1+0+0=1分
登录后发布评论
暂无评论,来抢沙发