信号量和银行家算法.ppt
《信号量和银行家算法.ppt》由会员分享,可在线阅读,更多相关《信号量和银行家算法.ppt(73页珍藏版)》请在三一办公上搜索。
1、1,第3章 同步、通信与死锁,主要内容临界区管理信号量与PV操作进程通信死锁转向,2,3.1.3 进程的交互:竞争与协作(1)第一种是竞争关系,系统中的多个进程之间彼此无关系统中的多个进程之间彼此相关 资源竞争的两个控制问题:一个是死锁(Deadlock)问题,一个是饥饿(Starvation)问题 既要解决饥饿问题,又要解决死锁问题。进程互斥是指若干个进程因相互争夺独占型资源时所产生的竞争制约关系。,3,进程的交往:竞争与协作(2)第二种是协作关系,某些进程为完成同一任务需要分工协作。进程同步指为完成共同任务的并发进程基于某个条件来协调它们的活动,因为需要在某些位置上排定执行的先后次序而等待
2、、传递信号或消息所产生的协作制约关系。进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调。,4,3.2 临界区管理,3.2.1 互斥与临界区3.2.2 实现临界区管理的几种尝试3.2.3 实现临界区管理的软件方法3.2.4 实现临界区管理的硬件设施,5,3.2.1 互斥与临界区(1),临界资源:一次仅允许一个进程使用的共享资源,如打印机,表格,磁带机。临界区:在每个进程中方位临
3、界资源的那段程序。与同一变量有关的临界区分散在各进程的程序段中,而各进程的执行速度不可预知。如果保证进程在临界区执行时,不让另一个进程进入临界区,即各进程对共享变量的访问是互斥的,就不会造成与时间有关的错误。,6,互斥与临界区(2),访问领界区的循环描述repeat,until false,检查临界资源是否能访问,将临界资源设为未访问,7,互斥与临界区(3),临界区调度原则:一次至多一个进程能够进入临界区内执行;如果已有进程在临界区,其他试图进入的进程应等待;进入临界区内的进程应在有限时间内退出,以便让等待进程中的一个进入。临界区调度原则总结:互斥使用、有空让进;忙则等待、有限等待;择一而入,
4、算法可行。,8,3.3 信号量与PV操作,3.3.1 同步与同步机制3.3.2 信号量与PV操作3.3.3 信号量实现互斥3.3.4 信号量解决五个哲学家吃通心面问题3.3.5 信号量解决生产者-消费者问题3.3.6 记录型信号量解决读者-写者问题3.3.7 记录型信号量解决理发师问题转向,9,信号量机制,如何协调进程间的同步互斥?1965年提出了新的同步工具-信号量和P、V操作。,信号灯,10,信号量与PV操作,信号量:一种软件资源 一种数据结构信号量的值与相应资源的使用情况有关信号量的值仅有P,V操作改变。原语:内核中执行时不可被中断的过程P操作原语和V操作原语一个进程在某一特殊点上被迫停
5、止执行直到接收到一个对应的特殊变量值,这种特殊变量就是信号量(semaphore),复杂的进程合作需求都可以通过适当的信号结构得到满足。,11,信号量与PV操作,那么信号量如何实现?,12,整型信号量,整型数 P操作(Wait)原语V操作(Singal),S,13,整型信号量,Wait(s):while s=0 do no option s:=s-1;Signal(s):s:=s+1;,14,Wait(s)和Signal(s)是原子操作注意:只要信号量=0就不断测试,不满足让权等待。,15,记录型信号量,记录型数据结构,有两个分量:一个是信号量的值,另一个是信号量队列的队列指针。,16,记录型
6、信号量,记录型结构,包含两个数据项Type semaphore=record value:interger;L:list of process end:,Value,L,PCB链表,S,17,记录型信号量,S.value 为资源信号量其初值;某类资源的数目Wait操作:申请一个单位资源Procedure Wait(s)var s:semaphore;begin s.value=s.value-1;if s.value0 then Block(s,l)End,18,记录型信号量,Singal 操作:释放一个单位资源Procedure Signal(s)Var S:Semaphorebegin S
7、.value:=S.value+1;if S.value=0 then Wakeup(s,L)S.value,19,记录型信号量,S.value 大于等于0 表示系统中可用的资源数量S.value 小于0 表示其绝对值表示申请该资源的阻塞的进程数量S.value等于1:只允许一个进程访问临界资源,是互斥信号量。死锁可能产生!举例!,20,记录型信号量,Pa:Pb Wait(Demutex)Wait(Emutex)Wait(Emutex)Wait(Dmutex)可能会造成僵持的状态!,21,用信号量实现互斥,Var mutex:semaphore=1Begin Parbegin process
8、1:begin repeat wait(mutex);critical section signal(mutex);reminder section until false;end,22,用信号量实现互斥,Process2:begin repeat wait(mutex);crital section singal(mutex);reminder section until false;end;parend,23,3.3.3 信号量实现互斥,semaphore mutex;mutex=1;cobegin process Pi()/i=1,n P(mutex);临界区;V(mutex);coen
9、d,24,在实现互斥时应注意Wait(mutex)和signal(mutex)必须成对的出现。缺 Wait(mutex)将会引起系统混乱,不能保证对临界资源的互斥访问缺 Signal(mutex)将会使该临界资源不能释放,25,经典的同步问题,哲学家进餐问题生产者-消费者问题读者-写者问题,26,五个哲学家吃通心面问题,有五个哲学家,他们的生活方式是交替的进行思考和进餐。哲学家围坐在一圆桌旁,桌中央有一盘通心面,在园桌上有五个碗和五只筷子,平时一个哲学家进行思考,饥饿时便试图取用其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐完毕,放下筷子又继续思考。,27,五个哲学家吃通心面问题
10、,28,哲学家吃通心面问题,分析 筷子是临界资源,在一段时间内只允许一个哲学家使用 用一个信号量表示一支筷子,由这五个信号量构成信号量组 var chopstick:array04of semaphore 所以信号量初始化为1,29,问题,加入五个哲学家同时饥饿,同时拿起左边的筷子,五个信号量为0,当他们再试图拿起右面的筷子时,都将无限期的等待,导致僵持的状态。,30,semaphore fork5;for(int i=0;i5;i+)forki=1;cobeginprocess philosopher_i()/i=0,1,2,3,4while(true)think();P(forki);P(
11、fork(i+1)%5);eat();V(forki);V(fork(i+1)%5);coend,可能死锁!,哲学家吃通心面问题,31,解决方法,上述解法可能出现永远等待,有若干种办法可避免死锁:至多允许四个哲学家同时吃;保证至少一人能够吃饭,从而保证将来释放筷子使更多人进餐。奇数号先取左手边的叉子,偶数号先取右手边的叉子;每个哲学家取到手边的两把叉子才吃,否则一把叉子也不取。,32,哲学家吃通心面问题的一种正确解,semaphore fork5;for(int i=0;i5;i+)forki=1;cobeginprocess philosopher_i()/*i=0,1,2,3*/repea
12、t think();P(forki);/*i=4,P(fork4)*/P(fork(i+1)%5);/*i=4,P(fork0)*/eat();V(forki);V(fork(i+1%5);until false coend,33,课堂练习,为保证这两个进程能正确地打印各自的结果,请用信号量和P、V操作写出各自的有关申请、使用打印机的代码。要求给出信号量的含义和初值。,34,生产者-消费者问题,著名的生产者-消费者问题是计算机操作系统中并发进程内在关系的一种抽象,是典型的进程同步问题。在操作系统中,生产者进程可以是计算进程、发送进程;而消费者进程可以是打印进程、接收进程等等。解决好生产者-消费
13、者问题就解决好了一类并发进程的同步问题。,35,生产者-消费者问题,有n个生产者和m个消费者,连接在一个有k个单位缓冲区的有界缓冲上。其中,pi和cj都是并发进程,只要缓冲区未满,生产者pi生产的产品就可投入缓冲区;只要缓冲区不空,消费者进程cj就可从缓冲区取走并消耗产品。,36,生产者消费者问题,一个生产者、一个消费者共享一个缓冲区一个生产者、一个消费者共享多个缓冲区多个生产者、多个消费者共享多个缓冲区,37,一个生产者、一个消费者共享一个缓冲区的解,int B;semaphore empty;/可以使用的空缓冲区数semaphore full;/缓冲区内可以使用的产品数empty=1;/缓
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号量 银行家 算法
链接地址:https://www.31ppt.com/p-6242009.html