文章
173
粉丝
0
获赞
0
访问
12.1k

评分及理由
(1)得分及理由(满分8分)
学生给出了两个识别版本,其中第二个版本与标准答案的简化版本基本一致:使用了两个信号量 AC 和 CE,初值均为 0,并正确安排了 wait/signal 操作的位置以实现 A→C 和 C→E 的跨线程同步。但第一个版本中存在明显的逻辑错误:在 T1 中,A() 之后执行了 wait(AC) 而不是 signal(AC),这会导致死锁(因为 AC 初始为 0,T1 会在 wait(AC) 阻塞,而 T2 在等待 AC 被 signal,但 T1 无法执行到 signal)。根据“两次识别只要有一次正确则不扣分”的原则,且第二个版本完全正确,因此不扣分。此外,学生未提及信号量的作用说明,但题目要求“说明所用信号量的作用及其初值”,学生仅在代码注释中简单提及,未单独说明,此处可酌情扣 1 分。因此,本题得分 7 分。
题目总分:7分
登录后发布评论
暂无评论,来抢沙发