预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共29页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第2单元进程与进程管理互斥与同步进程互斥举例P1与P2并发执行,两种可能的执行次序:A情形(希望这样)p1:r1:=x;r1:=r1+1;x:=r1;p2:r2:=x;r2:=r2+1;x:=r2;临界区是进程中对临界资源使用的程序段,称为相对于该临界资源的临界区。例题互斥使用资源办法1.锁和上锁、开锁操作什么是锁用变量w代表某种资源的状态(0表示可用,1表示不可用),w称为“锁”。锁变量由内核维护,只能用内核提供的上锁操作和开锁操作修改4250利用锁实现互斥程序描述程序task1main()p1()p2(){{{intw=0;∕*互斥锁*∕cobeginlock(w);lock(w);p1();csa;csb;p2();unlock(w);unlock(w);coend}}}46上锁原语的问题:没有让权等待!进程进入临界区的准则434445main(){intmutex=1;∕*互斥信号灯*∕cobeginpa();pb();coend}pa()pb(){{p(mutex);p(mutex);csa;csb;v(mutex);v(mutex);}}用信号量改写卖票程序x代表某航班机座号,pa和pb两个售票进程,售票工作是对变量x加1。设:mutex为互斥信号灯,初值为1。同步54575962pi()cj(){{while(生产未完成)while(还要继续消费){{p(sa);生产一个产品;p(mutex);p(sb);从有界缓冲区中取产品;p(mutex);v(empty);送一个产品到有界缓冲v(sb);v(mutex);消费一个产品;v(sa);}}}}例子5153你可以用以上的算法解决你的程序之间的同步与互斥的关系