操作系统课件os02进程同步.ppt
《操作系统课件os02进程同步.ppt》由会员分享,可在线阅读,更多相关《操作系统课件os02进程同步.ppt(58页珍藏版)》请在三一办公上搜索。
1、操作系统Operating Systems,2.3 进 程 同 步,进程同步的基本概念 两种形式的制约关系间接相互制约关系。间接相互制约源于资源共享直接相互制约关系。主要源于进程间的合作。,进程的同步与互斥,进程的两大关系:互斥(间接制约关系):各进程竞争使用同一临界资源临界资源:一次只允许一个进程使用的系统资源进程同步(直接制约关系):根据一定的时序关系合作完成一项任务为完成共同任务的并发进程基于某个条件来协调其活动,生产者-消费者问题,生产者-消费者(producer-consumer)问题是一个著名的进程同步问题。,P,C,生产者-消费者问题,producer:repeat produc
2、e an item in nextp;while counter=n do no-op;bufferin:=nextp;in:=(in+1)mod n;counter:=counter+1;until false,consumer:repeat while counter=0 do no-op;nextc:=bufferout;out:=(out+1)mod n;counter:=counter-1;consumer the item in nextc;until false;,生产者-消费者问题,counter:=counter+1:,register1:=counter;register1
3、:=register1+1;counter:=register1;,counter:=counter-1:,register2:=counter;register2:=register2-1;counter:=register2;,生产者-消费者问题,生产者进程:/counter初始值=5 register1:=counter;register1:=register1+1;counter:=register1;,消费者进程 register2:=counter;register2:=register2-1;counter:=register2;;,程序的执行已经失去了再现性。解决此问题的关键是
4、应把变量counter作为临界资源处理,令生产者进程和消费者进程互斥地访问变量counter。,5,register1,5,register2,4,6,5,counter,4,6,临界区,把在每个进程中访问临界资源的那段代码称为临界区若能保证诸进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问。repeatentry section(进入区)critical section;exit section(退出区)remainder section;until false;,临界区,同步机制应遵循的规则,空闲让进。忙则等待。有限等待。让权等待。,信号量机制,1 整型信号量定义为一个用于表
5、示资源数目的整型量S仅能通过两个标准的原子操作P操作(wait)和V操作(signal)来访问。wait(S):while S=0 do no-op;S:=S-1;signal(S):S:=S+1;,S,2 记录型信号量,记录型信号量机制是一种不存在“忙等”现象的进程同步机制。增加一个进程链表指针L用于链接上述的所有等待进程。记录型信号量采用了记录型的数据结构:type semaphore=recordvalue:integer;L:list of process;end,申请一个单位资源:procedure wait(S)var S:semaphore;begin S.value:=S.va
6、lue-1;if S.value0 then block(S.L);end,释放一个单位资源:procedure signal(S)var S:semaphore;Begin S.value:=S.value+1;if S.value=0 then wakeup(S.L);end,一般信号量,若信号量s.value为正值则s.value所代表的实际还可以使用的物理资源数.若信号量s.value为负值:则其绝对值等于登记排列在该信号量s队列之中等待的进程个数S.value的初值为1时:表示只允许一个进程访问临界资源,此时的信号量转化为互斥信号量,用于进程互斥。,上述的进程互斥问题,是针对各进程之
7、间只共享一个临界资源而言的。,process A:process B:wait(Dmutex);wait(Emutex);wait(Emutex);wait(Dmutex);,若进程A和B按下述次序交替执行wait操作:process A:wait(Dmutex);于是Dmutex=0process B:wait(Emutex);于是Emutex=0process A:wait(Emutex);于是Emutex=-1 A阻塞process B:wait(Dmutex);于是Dmutex=-1 B阻塞,3 AND同步机制的基本思想,采取原子操作方式:要么把它所请求的资源全部分配到进程要么一个也不
8、分配。可避免上述死锁情况的发生。在wait操作中,增加了一个“AND”条件AND同步,或称为同时wait操作Swait(Simultaneous wait),Swait(S1,S2,Sn)if S1=1 and and Sn=1 thenfor i:=1 to n do Si:=Si-1;endforelse 当发现第一个 Si1就把该进程放入等待队列,并将其指令计数器置于Swait操作的开始位置endif,Ssignal(S1,S2,Sn)for i:=1 to n doSi:=Si+1;Remove all the process waiting in the queue associat
9、ed with Si into the ready queue.endfor;,2.3.3 信号量的应用利用信号量实现进程互斥,Var mutex:semaphore=1;begin parbegin process 1:begin repeat wait(mutex);critical section;signal(mutex);remainder section;until false;end,process 2:begin repeat wait(mutex);critical section;signal(mutex);remainder section;until false;End
10、parend,mutex,1,0,NULL,-1,2.3.4 管程机制,管程引入把分散在各进程中的临界区集中起来进行管理;防止进程有意或无意的违法同步操作可利用共享数据结构抽象地表示共享资源,把对共享数据结构实施的操作定义为一组过程进程对共享资源的操作,都是通过这组过程对共享数据结构的操作来实现的确保每次仅有一个进程使用共享资源,管程的定义,一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。管程的组成1.名称;2.局部于管程内部的共享数据结构说明;3.对该数据结构进行操作的一组过程;4.对局部于管程内部的共享数据设置初始值语句。,
11、管程的示意图,局部数据,条件变量,过程/函数1,过程/函数k,出口,初始化代码,入口,管程,等待调用过程的进程队列,管程等待区,管程的条件变量,条件变量出现在管程内的一种数据结构 Var x,y:condition只有在管程中才能被访问它对管程内的所有过程是全局的只能通过两个原语操作wait和signal来控制它。,x.wait,正在调用管程的进程因x条件需要被阻塞或挂起时调用x.wait:将自己插入到x条件的等待队列上并释放管程,直到x条件变化。此时其它进程可以使用该管程。,x.signal,正在调用管程的进程发现x条件发生了变化,则调用x.signal重新启动一个因x条件而阻塞或挂起的进程
12、。这与信号量机制中的signal操作不同。若进程Q因x条件阻塞,而正在调用管程的进程P执行x.signal操作后,Q被重新启动,可采用下述两种方式之一进行处理:P等待,直至Q离开管程或等待另一条件。Q等待,直至P离开管程或等待另一条件。,管程主要特性,模块化基本程序单位,可以单独编译;抽象数据类型包含数据和操作;信息隐蔽从外部看不到内部信息;,管程和进程不同,管程定义的是公共数据结构;进程定义的是私有数据结构PCB管程把共享变量上的同步操作集中起来临界区却分散在每个进程中;管程的设置则是解决共享资源的互斥使用问题设置进程的目的在于实现系统的并发性;进程通过调用管程中的过程对共享数据结构实行操作
13、管程为被动工作方式,进程则为主动工作方式;,管程和进程不同(续),管程不能与其调用者并发进程之间能并发执行;管程是操作系统中的一个资源管理模块,供进程调用。进程具有动态性,由“创建”而诞生,由“撤销”而消亡,2.4 经典进程的同步问题,2.4.1 生产者消费者问题生产者消费者问题是相互合作的进程关系的一种抽象制约关系:只要缓冲池未满,生产者便可将消息送入缓冲池;只要缓冲池未空,消费者便可从缓冲池中取走一个消息,P,C,信号量解决生产者消费者问题,用信号量及P、V操作解决进程间同步问题 一个生产者、一个消费者共享一个缓冲区多个生产者、多个消费者共享多个缓冲区,一个生产者、一个消费者共享一个缓冲区
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课件 os02 进程 同步
链接地址:https://www.31ppt.com/p-5981160.html