四个进程P1 必须在P2 、P3 开始之前完成,P2. P3 必须在P4 开始之前完成。而且P2 、P3 不能并发执行。 试写出这四个进程的同步互斥算法。 (15 分 )
区块链毕设网qklbishe.com为您提供问题的解答
四个进程P1必须在P2、P3开始之前完成,P2. P3必须在P4开始之前完成。而且P2、P3不能并发执行。试写出这四个进程的同步互斥算法。(15分)
设置4个信号量:
S1: 确保P1完成后,P2、P3才能开始
S2:确保P2和P3不并发执行
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任务代码
…
}
以上就是关于问题四个进程P1 必须在P2 、P3 开始之前完成,P2. P3 必须在P4 开始之前完成。而且P2 、P3 不能并发执行。 试写出这四个进程的同步互斥算法。 (15 分 )的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训