文章
21
粉丝
0
获赞
0
访问
253
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分
理由:学生尝试使用信号量来控制操作A、B、C、D和E的执行顺序,但代码逻辑错误。操作A和B完成后应分别通知操作C,而不是共享同一个信号量。操作D完成后应单独通知操作E,而不是与操作C共享信号量。
(3)得分及理由
得分:1分
理由:学生没有正确实现操作E必须在C和D完成后执行的逻辑。操作E需要等待两个信号量(C和D完成),但学生只使用了一个信号量E,导致逻辑不完整。
题目总分:2+1+1=4分
登录后发布评论
暂无评论,来抢沙发