文章

246

粉丝

40

获赞

2

访问

12.6k

头像
2020年计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年9月17日 18:43
阅读数 7

semaphore a_done = 0;//A操作完成

semaphore b_done = 0;//B操作完成

semaphore c_done = 0;//C操作完成

semaphore d_done = 0;//D操作完成

cobegin{

PA(){

A操作完成;

v(a_done);

}

PB(){

B操作完成;

v(b_done);

}

PC(){

p(a_done);

p(b_done);

C操作完成;

v(c_done);

}

PD(){

D操作完成;

v(d_done);

}

PE(){

p(c_done);

p(d_done);

E操作完成;

}

}coend

 


评分及理由

(1)信号量定义及初值(满分2分)

学生定义了四个信号量:a_done、b_done、c_done、d_done,初值均为0,符合同步需求(每个信号量用于表示一个操作的完成状态)。但标准答案中使用了四个信号量分别对应AC、BC、CE、DE的同步关系,而学生使用a_done、b_done、c_done、d_done,虽然命名不同,但语义正确(a_done对应A完成,相当于S_AC;b_done对应B完成,相当于S_BC;c_done对应C完成,相当于S_CE;d_done对应D完成,相当于S_DE)。初值设置正确(均为0)。因此不扣分。
得分:2分

(2)进程A、B、D的实现(满分2分)

进程A、B、D的实现正确:A执行后V(a_done),B执行后V(b_done),D执行后V(d_done),无等待操作,符合前置任务要求(A、B、D无前置)。
得分:2分

(3)进程C的实现(满分1.5分)

进程C的实现正确:需要等待A和B完成(通过P(a_done)和P(b_done)),然后执行C操作,再V(c_done)通知E。逻辑与标准答案一致。
得分:1.5分

(4)进程E的实现(满分1.5分)

进程E的实现正确:需要等待C和D完成(通过P(c_done)和P(d_done)),然后执行E操作。逻辑与标准答案一致。
得分:1.5分

题目总分:2+2+1.5+1.5=7分

注意:学生答案...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发