[操作系统]信号量的应用----描述前驱图

mac2024-08-11  52

每条弧都拥有一个信号量

每个信号量初值均是0

除信号量外其他控制流加信号量机制

题目描述:

利用p v 操作实现4*100米接力赛:

设同步信号量为s1,s2,s3赋初值s1=0,s2=0,s3=0;

设A B C D

p1(){A;v(s1);}定义进程 p2(){p(s1);B,v(s2)} p3(){p(s2);c;v(s3)} p4(){p(s3);D} main(){ semaphore s1,s2,s3;定义同步信号量s1,s2,s3 s1=0;s2=0;s3=0;为同步信号量赋初值 cobegin p1();p2();p3();p4();运行进程 coend; }

利用pv操作实现前驱图:

设有同步信号量s13,s14,s24,s45,s46 初值为s13=0,s14=0,s24=0,s45=0,s46=0

p1(){s1;v(s13);v(s12);v(s14);} p2(){p(s12);s2;v(s24);} p3(){p(s13);s3;} p4(){p(s14);p(s24);s4;v(s45);v(s46);} p5(){p(s45);s5;} p6(){p(s46);s6;} main(){ semaphore s12,s13,s14,s24,s45,s46; s1=0,s13=0,s14=0,s24=0,s45=0,s46=0; cobegin p1();p2();p3();p4();p5();p6(); coend; }

 

最新回复(0)