文章

63

粉丝

0

获赞

0

访问

13.4k

头像
2022年计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年10月10日 09:40
阅读数 179

Semaphore SAC = 0; //描述操作A和C之间的同步关系
Semaphore SCE = 0; // 描述操作A和操作C之间的同步关系

T1:
  A;
  signal(SAC);
  wait(SCE);
  E;
  F;

T2:
  B;
  wait(SAC);
  C;
  signal(SCE);
  D;

 


评分及理由

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

得分:1分

理由:学生定义了两个信号量SAC和SCE,初值均为0,符合要求。但SCE的注释写错了,写成了"描述操作A和操作C之间的同步关系",实际上应该是控制C和E的同步关系。由于初值正确且主要信号量定义正确,扣1分。

(2)线程T1的同步逻辑(满分3分)

得分:2分

理由:T1中A操作后signal(SAC)正确,E操作前wait(SCE)正确,但F操作缺少对E完成的等待条件。按照题目要求,F必须在E完成后执行,但学生代码中F直接跟在E后,没有使用信号量确保E完成后才执行F。由于这是同一线程内的操作顺序,虽然逻辑上可能正确,但不符合题目要求使用信号量描述同步关系的意图,扣1分。

(3)线程T2的同步逻辑(满分3分)

得分:2分

理由:T2中B操作后直接执行wait(SAC)然后C操作,缺少对B完成到C执行的同步控制。按照题目要求,C必须在A和B都完成后执行,但学生代码中C只等待了A完成(通过SAC),没有确保B也完成。虽然B在同一线程中,但题目要求用信号量描述同步关系,这里存在逻辑缺陷,扣1分。

题目总分:1+2+2=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发