文章

16

粉丝

0

获赞

0

访问

119

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


评分及理由

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

学生作答给出了信号量定义、初始值以及使用 wait/signal 操作描述同步关系的代码。其思路与标准答案的简化版本基本一致:

  • 信号量 a、b 对应 A→C 和 B→C 的同步,初值为 0。
  • 信号量 c 对应 C→D 和 C→E 的同步,初值为 0。
  • 信号量 e 对应 E→F 的同步,初值为 0。

但学生答案中存在以下问题:

  1. 在 E 操作中缺少对信号量 e 的 signal 操作(即完成 E 后应 signal(e) 以允许 F 执行)。
  2. 学生将 A、B、C、D、E、F 分别写成独立的函数,而题目要求描述的是线程 T1(执行 A、E、F)和 T2(执行 B、C、D)之间的同步。虽然学生用 cobegin 包裹了这些函数,但未明确对应到两个线程,且函数调用关系未体现线程划分,这属于逻辑不完整。

根据标准答案,正确的线程划分和同步操作应确保:
T1: A → signal(a) → wait(c) for E → E → signal(e) → wait(e) for F → F
T2: B → signal(b) → wait(a) and wait(b) for C → C → signal(c) → wait(c) for D → D

学生答案中缺少 E 后的 signal(e),且未将操作正确分配到两个线程中,因此同步逻辑存在缺陷。考虑到核心同步关系(A→C、B→C、C→D、C→E、E→F)的信号量设置基本正确,但线程划分和 E→F 同步实现有误,扣 3 分。

得分:5 分(满分 8 分)

题目总分:5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发