文章

87

粉丝

0

获赞

1

访问

17.3k

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

Semaphore A=0;

Semaphore B=0;
Semaphore C=0;
线程T1
While(true)
{

finish A;

V(A);

P(C);

finish E;
finish F;
}

线程T2
While(true)

{

finish B;

V(B);
P(A);

P(B);

finish C;

V(C);
finish D;//c已经完成,直接运行D即可

}


评分及理由

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

学生答案得分:6分

理由:

  • 优点:
    • 正确使用了信号量机制(A、B、C)来实现同步。
    • 基本满足了题目中要求的同步关系:C在A和B完成后执行,E在C完成后执行。
    • 信号量的初始值设置正确(均为0)。
  • 扣分点:
    • 逻辑错误1: 线程T2中P(B)的调用是多余的,因为B的执行不需要等待其他操作,直接V(B)即可。这里会导致线程T2不必要的阻塞,扣1分。
    • 逻辑错误2: 线程T1中finish F的执行没有等待E完成(虽然题目中F需要在E完成后执行,但学生代码中未体现这一约束),扣1分。

题目总分:6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发