文章

87

粉丝

0

获赞

1

访问

17.2k

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

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

finish A;

V(A);

P(C);

finish E;
finish F;//E已经完成,直接运行F即可
}

线程T2
While(true)

{

finish B;
P(A);

finish C;

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

}


评分及理由

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

得分:6分

理由:

  • 学生正确使用了信号量A和C来控制线程间的同步关系,符合题目要求的基本同步逻辑(A→C→E)。
  • 信号量的初始值设置为0是正确的。
  • 线程T1和T2的代码逻辑基本正确,能够保证C在A和B完成后执行,E在C完成后执行。
  • 扣分点:
    • 学生没有显式处理B→C的同步关系(虽然B在T2中直接执行,但题目要求C必须在A和B都完成后执行,这里逻辑不够严谨)。
    • 线程T1和T2的代码中使用了While(true),这在题目中是不必要的,题目没有要求循环执行。
    • 代码格式和语法存在小问题(如中文分号、多余的空格等)。

题目总分:6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发