文章

92

粉丝

68

获赞

0

访问

11.4k

头像
2022年(408)计算机学科专业基础综合试题 - 第46题回答
操作系统
发布于2025年12月2日 22:29
阅读数 59

Semphore C=0;A=0;

T1:

执行A;signal(A);wait(C);执行E;执行F

T2:

执行B; wait(A);执行C;signal(C);执行D


评分及理由

(1)得分及理由(满分8分)

学生答案使用了两个信号量 A 和 C(但信号量命名不规范,通常用更明确的名称如 S_AC, S_CE),并给出了 T1 和 T2 中操作的同步顺序。其逻辑基本正确:

  • T1 先执行 A,然后 signal(A),通知 T2 的 C 可以开始(因为 C 需要 A 完成)。
  • T2 执行 B 后 wait(A),确保 A 完成才执行 C。
  • T2 执行 C 后 signal(C),通知 T1 可以执行 E(因为 E 需要 C 完成)。
  • T1 中 wait(C) 在 E 之前,保证 E 在 C 之后。
  • F 在 E 之后执行,由于 E 和 F 都在 T1 中,无需额外同步。
  • D 在 C 之后执行,由于 C 和 D 都在 T2 中,也无需额外同步。

该方案与标准答案的简化版本一致,实现了题目要求的同步约束:C 在 A 和 B 之后,D 和 E 在 C 之后,F 在 E 之后。信号量初值均为 0 也正确。

扣分点:信号量命名 A 和 C 容易与操作名混淆,但题目并未要求命名规范,且不影响同步逻辑,因此不扣分。

因此,本题得分为 8 分。

题目总分:8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发