文章

62

粉丝

0

获赞

0

访问

9.7k

头像
2020年(408)计算机学科专业基础综合试题 - 第45题回答
操作系统
发布于2025年11月11日 10:43
阅读数 94

semaphore A = 0, B = 0, C = 0, D = 0;

 

A()

{

    ...

    V(A)

}

 

B()

{

    ...

    V(B)

}

 

C()

{

    P(A)

    P(B)

    ...

    V(C)

}

 

D()

{

    ...

    V(D)

}

 

E()

{

    P(C)

    P(D)

    ...

}

 


评分及理由

(1)信号量定义及初值(满分2分)

学生定义了四个信号量A、B、C、D,初值均为0,这与标准答案中为每个同步关系设置信号量的思路不同。但学生使用的信号量数量(4个)与同步关系数量一致,且初值设置正确。这里不扣分,得2分。

(2)进程A、B、D的实现(满分1.5分)

进程A、B、D中直接执行操作后执行V操作,符合无前置依赖的要求。实现正确,得1.5分。

(3)进程C的实现(满分1.5分)

进程C中通过P(A)和P(B)等待A和B完成,然后执行操作并V(C),正确实现了C必须在A和B完成后执行的约束。得1.5分。

(4)进程E的实现(满分2分)

进程E中通过P(C)和P(D)等待C和D完成,正确实现了E必须在C和D完成后执行的约束。得2分。

题目总分:2+1.5+1.5+2=7分

注:虽然学生的信号量命名方式(直接使用任务名)与标准答案(使用关系命名)不同,但逻辑完全正确,且满足题目要求的同步关系,因此不扣分。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发