文章
21
粉丝
0
获赞
0
访问
247
Semaphore C=-1
Semaphore E=-1
while(1)
{
操作A;
V(C);
操作B;
V(C);
P(C);
操作C;
V(E);
操作D;
V(E);
P(E);
操作E;
评分及理由
(1)得分及理由
得分:2分
理由:学生正确使用了信号量来控制操作C和E的执行顺序,但信号量初值设置错误(应为0而不是-1)。此外,学生没有为每个同步关系单独设置信号量,而是使用了共享信号量,这会导致逻辑错误。
(2)得分及理由
得分:1分
理由:学生正确使用了V操作(signal)和P操作(wait)来控制操作C和E的执行顺序,但逻辑上存在错误。例如,操作C需要在A和B都完成后执行,但学生的代码中操作C只需要一个P(C)操作,无法确保A和B都已完成。
(3)得分及理由
得分:0分
理由:学生的代码中没有正确处理操作D和E的同步关系。操作E需要在C和D都完成后执行,但学生的代码中操作E只需要一个P(E)操作,无法确保C和D都已完成。
题目总分:2+1+0=3分
登录后发布评论
暂无评论,来抢沙发