文章
530
粉丝
1110
获赞
2175
访问
158w
semaphore $AC = CE = 0$; // AC保证A和C之间的同步性 // CE保证C和E之间的同步性 process $T_1$() { A; signal(AC); wait(CE); E; F; } process $T_2$() { B; wait(AC); C; signal(CE); D; }
评分及理由
(1)得分及理由(满分8分)
学生答案:
semaphore S_AC = 0; //控制操作A和C的执行顺序
semaphore S_BC = 0; //控制操作B和C的执行顺序
semaphore S_CD = 0; //控制操作C和D的执行顺序
semaphore S_CE = 0; //控制操作C和E的执行顺序
semaphore S_EF = 0; //控制操作E和F的执行顺序
cobegin
Process T1() {
// process A
完成操作A;
signal(S_AC); // V(S_AC);
// process E
wait(S_CE); // P(S_CE);
完成操作E;
signal(S_EF); // V(S_EF);
// process F
wait(S_EF); // P(S_EF);
完成操作F;
}
Process T2() {
// process B
完成操作B;
signal(S_BC); // V(S_BC);
// process C
wait(S_AC); // P(S_AC);
wait(S_BC); // P(S_BC);
完成操作C;
signal(S_CD); // V(S_CD);
signal(S_CE); // V(S_CE);
// process D
wait(S_CD); // P(S_CD);
完成操作D;
}
coend
评分:8分
理由:学生的答案与标准答案完全一致,正确使用了信号量实现了线程间的同步关系,所有信号量的初始值和操作顺序都正确,没有逻辑错误。
题目总分:8分
登录后发布评论
暂无评论,来抢沙发