暖通毕业设计代做网站,如何改进网站服务建设和管理,工行网站跟建设网站区别,菏泽网站建设网站选择题#xff1a;互斥机制#xff0c;信号量解决互斥同步 大题#xff1a;PV操作处理进程的同步与互斥 目的#xff1a;解决临界区资源使用问题
一、临界资源
一次仅允许一个进程使用的资源
二、同步与互斥
同步#xff1a;AB相互合作#xff0c;A放B取#xff0c;… 选择题互斥机制信号量解决互斥同步 大题PV操作处理进程的同步与互斥 目的解决临界区资源使用问题
一、临界资源
一次仅允许一个进程使用的资源
二、同步与互斥
同步AB相互合作A放B取B取A放
互斥AB相互制约A用B等B用A等
三、互斥方法
1、单标志法
违背空闲让进
P1 P2
while(turn!0); while(turn!1);
//临界区。 //临界区
turn 1; turn 1;
//剩余区 //剩余区
2、双标志法
同时进入进程时会同时进入临界区违背忙则等待
Pi Pj
while(flag[j]); while(flag[i]);
flag[i] TRUE; flag[j] TRUE;
//临界区 //临界区
flag[i] FALSE; flag[j] FALSE;
//剩余区 //剩余区
3、双标志法后检查
Pi Pj:
flag[i] TRUE; flag[j] TRUE;
while(flag[j]); while(flag[i]);
//临界区 //临界区
flag[i] FALSE; flag[j] FALSE;
//剩余区 //剩余区
同时进入时都为TRUE都无法进入产生饥饿现象。
违背有限等待空闲让进
4、Petersons Algorithm
Pj若在临界区内则此时flag[i] TRUEturn j 满足Pi的while循环条件会一直等到Pj推出。
若同时进入也会违背空闲让进
Pi Pj
flag[i] TRUE; turn j; flag[j] TRUE; turn i;
while(flag[j]turn j); while(flag[i] turn i);
//临界区 //临界区
flag[i] FALSE; flag[j] FALSE;
//剩余区 //剩余区
四、经典同步问题
1、生产者-消费者问题
1只有一个放只有一个取放时不能取取时不能放。
2不满才能放空了不能取
总结一放一取满了不放空了不取 信号量full 0empty nmutex 1控制互斥访问缓冲池
2、读者-写者问题
1可以一起读
2只能一个写
3写时不读不写
4写操作前所有进程必须退出
总结一起读写时不读写操作全退出
信号量count 0读者数量 mutex 1更新count的互斥 rw 1读写互斥w 1写优先
3、 哲学家进餐问题
1筷子一根根拿只有两根筷子才能进餐
2中间筷子互斥
3左右都能取我才取
总结筷子逐根取两根才能动中间你取我不取都拿我才拿
信号量 chopstick[n] {1,1,1,……,1}mutex 1
//拿右边的筷子P(chopsticks[(i 1) % 5])左边的筷子P(chopsticks[i])