计算机专业综合知识选讲--计算机操作系统试题
1.利用信号量机制实现进程同步和进程互斥
答:(1)利用信号量实现前驱关系(进程同步)
有如下前驱关系:
S1
S2
S3
S4 S5
S6
为实现如图所示的前驱关系,设置若干个初值为 0 的信号量,如图所示的
a,b,c,d,e,f,g.代码框架如下:
P1(){S1;signal(a);signal(b);}
P2(){wait(a);S2;signal(c);signal(d);}
P3(){wait(b);S3;signal(e);}
P4(){wait(c);S4;signal(f);}
P5(){wait(d);S5;signal(g);}
P6(){wait(e);wait(f);wait(g);S6;}
main(){
Semaphore a=b=c=d=e=f=g=0;
cobegin
a
b
c
d
e
g
f