2009 操作系统第9讲第3章进程管理(续3 互斥与同步)_第1页
2009 操作系统第9讲第3章进程管理(续3 互斥与同步)_第2页
2009 操作系统第9讲第3章进程管理(续3 互斥与同步)_第3页
2009 操作系统第9讲第3章进程管理(续3 互斥与同步)_第4页
2009 操作系统第9讲第3章进程管理(续3 互斥与同步)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/7/9,1,操作系统讲座9,第3章进程管理(3)(进程互斥和同步)演讲者:闫新庆2012/03,2020/7/9,2,第3章进程管理,内容概述3.1了解进程前的准备3.2进程的概念和描述3.3进程状态及其转换3.4进程控制3.5进程中断和同步3.6进程通信3.7死锁问题3.8线程和超级线程本章总结练习,2020/7/9进程分割和同步研究目的分析由于资源竞争和资源共享导致的一组并发进程在执行过程中的执行情况。理解与进程互斥和同步相关的重要概念和术语。1.关键领域介绍背景:确保并发进程执行结果的正确性。定义:不允许多个并发进程交叉执行的程序段称为临界段。关键区域是由属于共享公共数据或公共

2、数据变量的不同并发进程的程序段引起的,因此不可能通过添加硬件来解决关键区域。因此,关键区域被称为访问公共数据的程序。2020/7/9,4,3.5进程互斥和同步;2.理解与过程互斥和同步相关的重要概念和术语;2.间接限制了对这一概念的讨论,面临相互排斥,面临共享资源(如公共数据和变量),面临一组并发进程(超过2个),以及面临它们的速度受资源竞争影响的问题。定义:指一组并发进程的执行速度受到资源共享(如公共数据和变量)的影响(限制)的进程。3.进程互斥的定义:一组并发进程由于间接限制而相互协作等待的过程称为进程互斥。注1:是多个进程和一个进程之间的关系,即一对多关系。注释2:旨在禁止共享同一资源的

3、两个以上并发进程同时进入关键区域。“慢”是因为进程占用了进程的资源,必须等待,所以进程慢是由进程的间接限制造成的。2020年7月9日,5,3.5,进程互斥和同步。第二,认识与进程互斥和同步相关的重要概念和术语。(3) 4直接限制(与同步相关的概念)这个概念的讨论是针对同步的,但针对两个进程定义:在异步环境中限制(影响)两个并发进程的执行速度的过程称为直接限制。注1:它针对两个过程,即一对一问题。注2:目的是禁止由直接限制引起的死锁。2020/7/9,6,3.5进程互斥和同步;2.理解与过程互斥和同步相关的重要概念和术语;(4) 5进程同步定义:两个并发进程由于直接的限制而相互协作并等待对方以一

4、定的速度执行的过程称为进程同步。异步环境:在同一时间段内,一组并发进程以不可预测的速度独立前进,这称为异步进程或异步环境。(开始时间的随机性),2020年7月9日,7月3日,5日,进程互斥和同步,第三期。原语及其类型1原语的定义:在系统状态下,执行具有特定功能的某些程序段称为原语。(调用核心层子程序的指令)微软计算机词典,第3版(第239页),1999年解释说,在操作系统中,调用核心层子程序的指令似乎是一个扩展的机器指令。2原语类:(semaphor)简称sem指令级原语。这个程序段(或扩展指令)在其执行期间不允许被中断,它是一个不可分割的指令单元。函数级原语在执行过程中,不允许同时执行该程序

5、段。2020/7/9/8/3/5,进程互斥和同步,4。信号量1。它是用于控制流程执行的信号标记变量。2定义:在程序设计中,用来控制共享系统资源的一种信号,即一个标志变量,其中一个信标向潜在用户(进程)指示某个文件或资源正在被使用,以阻止其他用户访问它。引入信号量的目的是为PV原语服务。(英汉词典解释744页)3解释:中与互斥相关的信号量被称为公共信号量,它与多个进程相关。与同步相关的信号量称为私有信号量,它与两个进程相关。2020/7/9/9/3/5。5.P.V原语1是荷兰学者迪杰斯特拉(Dijkstra)1965年根据列车信号原理提出的解决进程互斥和同步问题的模型。荷兰过路人,英文简称为P原

6、语)调度;维语(荷兰语为维语,英语为维语)incremane。丹宁鲍姆提出了相应的下(睡)P和上(醒)v 2P。v原语是基于信号量的操作,信号量是两个不间断的指令级原语操作,用于解决进程的同步和互斥问题。2020/7/9,10,3.5,进程的互斥和同步,3,通过PV原语描述两个进程PA和PB,设Sem的初始值为1,取值范围为(0,1,-1),设Sem=1,初始值的临界区域为空,PA和PB都不进入。当一个进程执行P原语减1时,Sem=0表示该进程可以进入关键区域。另一个流程也需要进入关键区域,并且必须首先执行P操作。如果Sem=-1表示一个进程已经进入关键区域,另一个进程进入等待状态。Sem=0

7、,允许PA和PB进入临界区,2020/7/9,11,3.5进程互斥且同步,4P(sem)原始操作(减法操作)是进程进入临界区时必须执行的第一个操作,即减法操作。设Sem的初始值为1 Sem=Sem-1,Sem的结果只能为0或-1。如果为0,则进程调用关键区域来访问共享资源。在第一个进程执行P操作后,Sem=,表示临界区未被占用,则该进程可以占用临界区。如果第二个进程要进入,它还必须先执行P操作。如果Sem=1,则意味着关键区域已被占用,因此进程不能占用关键区域,然后转到阻塞队列。第三次.要输入的第n个过程操作也必须首先由p操作!2020/7/9,12,N,3.5工艺互斥和同步,y,图3.11基

8、本操作流程,2020/7/9,13,3.5工艺互斥和同步,当工艺退出关键区域时,必须执行5V(sem)基本操作(加法操作),即Sem=Sem 1操作。如果Sem=0,从阻塞队列中唤醒一个进程,并返回到原始进程被中断的地方继续执行或转向进程调度。如果没有后续过程继续,系统是否可能使扫描电镜=1=扫描电镜1=1,2,3,4,5?2020/7/9,14,3.5进程互斥和同步,图3.12原语操作流程,2020/7/9,15,3.5进程互斥和同步,VII。互斥条件(篮球比赛)如果一个过程在执行过程中访问公共资源,如果允许中断,可能会导致前后计算不一致2。内部可以阻挡外部且外部不干涉的临界区只允许一个进程

9、访问公共资源,而临界区之外的其他进程不会相互阻碍。3.等待有限的时间,进入关键区域以防止死锁。死锁是指并发进程等待彼此的资源,并且在获得彼此的资源之前不会释放自己的资源。4.让位于等待。当进程不能进入关键区域时,应立即通知中央处理器,以避免盲目。2020/7/9,16,3.5进程互斥和同步,第八章。互斥的负面影响。解决该问题的目的是避免由并发进程导致的结果的不可再现性。1.软件方法:普通变量整数法、数组法、变量和数组混合算法软件方法。理论上,也有解决问题的方法,但是很难实现,因为为了保证下一个并发进程的连续性,必须避免被其他进程中断2.硬件方法:为整个世界和每个硬件设置一个布尔变量(即真或假逻

10、辑值)。2020年7月9日,3.5,进程互斥和同步。进程互斥的PV原语操作。1.解决方案:光伏原语加信号量方法。2.如果任何进程想要获取某个共享资源,它必须确定它是否有资格通过关键区域获取独占共享资源。3.当申请共享资源时,任何进程都必须首先执行P操作。4.Sem初始值为1。5.P操作步骤:让P为一组进程P1、P2、p 3和P4,申请某个共享资源,并依次进行P1操作:2020年7月9日,3.5,进程互斥同步,5。操作步骤(续)(1)扫描电镜=扫描电镜-1=0 (2)P1先占请问是否会有问题-1,-2,-3和-4的规模1:如何设计2: P操作来避免由于交叉使用相同资源而导致的结果不可复制?问题3

11、:此时强制Sem=-1的结果是什么?2020/7/9,19,3.5进程互斥和同步,9。实现进程互斥的PV原语操作(2) 6。V操作步骤(1)任何进程完成P操作并独占一个共享资源,使用后必须立即退出,退出时必须执行V操作,即Sem 1操作。Sem=Sem 1=0 (2)如果Sem=0,进程调度将从就绪队列中选择一个进程来占用中央处理器。(3)V操作完成后,将不会有Sem0?2020/7/9,20,3.5进程互斥和同步,10。进程同步的光伏原语操作(1)两个进程,即乒乓问题)1个条件(以计算进程PA和输出进程PB为例)(1)进程PA必须先向缓冲区发送数据,然后才能从缓冲区获取数据。(2)如果它是空

12、的,它可以被发送,如果它是满的,它将停止。(3)先进先出算法。(先进先出算法),2020/7/9,21,3.5进程互斥和同步,10。实现进程同步的PV原语操作(2) 2使用PV原语实现进程同步是为了解决两个进程(PA,PB)共享同一资源的直接约束所导致的死锁问题。所谓同步是指两个进程各自执行的结果是彼此的执行条件。同步讨论了进程一对一的问题,使用的信号量称为私有信号量。虽然每一步操作都可以解决问题,但是会浪费大量的CPU资源,这将导致系统效率的显著降低。?2020/7/9,22,223.5进程互斥和同步,10。实现进程同步的进程原语操作(3) (3)解决步骤设置私有信号量Sem,并为其分配初始

13、值以解决同步原语(发送和接收)信号量(私有)的问题(4)示例: PA(计算进程)PB(打印进程)N表示有N个缓冲区。打印过程为Sem(B)=0,表示没有数据。如果PA可以向缓冲区发送数据,则Sem(A)=Sem(A)-1,Sem(A)=0,缓冲区已满。PA同步原语向PB发送消息。扫描电镜(乙)执行五次操作。当Sem=n时,表示缓冲区为空。向PA发送消息,PA可以继续向缓冲区发送数据,直到发送和接收完成。2020/7/9/23/3/5。进程的互斥和同步。XI。互斥锁1。并发进程的互斥。只有通过在不同的时间安排和调用关键区域中的进程,才能实现并发进程的互斥。但事实上,这是不可能的。因为这需要并发进

14、程组中的每个进程预先知道其他并发进程和系统的动作,所以不可能从用户程序执行开始的随机性中知道。2.一种可能的方法是锁定关键区域以实现互斥。当进程进入关键区域时,它将锁定关键区域,直到它退出关键区域。当申请进入关键区域时,并发进程首先测试关键区域是否被锁定。如果关键区域被锁定,则在关键区域被解锁之前,流程不会获得关键区域。2020/7/9,24,3.5进程互斥和同步,11。互斥3的锁实现。让关键区域的类名为。为了确保在每个关键区域只能执行一个程序段,设置了一个锁定位键。键表示锁位属于具有类名的关键部分。锁定关键区域程序描述如下:锁定(钥匙)关键区域解锁(钥匙)当钥匙=1时,表示具有类名的关键区域可用,当钥匙=0时,表示具有类名的关键区域不可用。然后,只需一条语句就可以实现解锁(钥匙)。也就是关键1。但是,因为锁(key)必须满足key=0,2020/7/9,25,3.5,进程互斥和同步,4。一个简单的实现方法是:lock (x)=beg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论