四个进程P1 必须在P2 、P3 开始之前完成,P2. P3 必须在P4 开始之前完成。而且P2 、P3 不能并发执行。 试写出这四个进程的同步互斥算法。 (15 分 )

区块链毕设网qklbishe.com为您提供问题的解答

四个进程P1必须在P2P3开始之前完成,P2. P3必须在P4开始之前完成。而且P2P3不能并发执行。试写出这四个进程的同步互斥算法。(15)

设置4个信号量:

    S1: 确保P1完成后,P2P3才能开始

    S2:确保P2P3不并发执行

    S3:确保P4开始前P2已完成

    S4:确保P4开始前P3已完成

P1:

While(true){

        //P1任务代码

        …

        //完成P1后释放S1        

        signal(S1);             

}

 

P2:

while(true){

        //P1完成后才能开始

        wait(S1);

        //P3完成后P2才能执行

        wait(S2);

        //P2任务代码

        …

        //完成P2后释放S2和S3

        signal(S2);

        signal(S3);

}

P3:

while(true){

        //P1完成后才能开始

        wait(S1);

        //P2完成后P3才能执行

        wait(S2);

        // P3任务代码

        …

        //完成P3后释放S2和S4

        signal(S2);

        signal(S4);

}

P4:

while(true){

        // P2和P3完成后才能开始P4

        wait(S3);

        wait(S4);

        //P3任务代码

        …

}

46:15

以上就是关于问题四个进程P1 必须在P2 、P3 开始之前完成,P2. P3 必须在P4 开始之前完成。而且P2 、P3 不能并发执行。 试写出这四个进程的同步互斥算法。 (15 分 )的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 四个进程P1 必须在P2 、P3 开始之前完成,P2. P3 必须在P4 开始之前完成。而且P2 、P3 不能并发执行。 试写出这四个进程的同步互斥算法。 (15 分 )