- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章进程管理(互斥与同步)
* * 3.5 进程互斥与同步 一、研究进程互斥与同步目的 分析一组并发进程在执行过程中,因资源竞争,资源共享引起的对其执行速度的影响,并找出消除其负面影响的条件与方法。 二、认识进程互斥与同步相关的重要概念与术语 1. 临界区 ●引入背景:为保证并发进程执行结果的正确性。 ●定义:不允许多个并发进程交叉执行的一段程序称为临界区。 ◆临界区是由属于不同并发进程的程序段共享公用数据或公用数据变量而引起的,临界区不可能用增加硬件的方法来解决。因此,临界区被称为访问公用数据的那段程序。 * * 3.5 进程互斥与同步 二、认识进程互斥与同步相关的重要概念与术语(2) 2.间接制约 ◆该概念的讨论,是面向互斥而言,面向共享资源(如公用数据和变量),是面向一组并发进程(2个以上)而言,面向其因资源竞争而对其速度影响问题。 ◆定义:指一组并发进程因资源共享(如公用数据及变量)对其执行速度的影响(制约)的过程。 3. 进程互斥的定义: ◆一组并发进程因间接制约互相合作,互相等待的过程,称为进程的互斥。 注释1:是多个进程和一个进程之间的关系,即1对多的关系。 注释2:目的是禁止两个以上共享同一资源的并发进程同时进入临界区。PA(慢)是因为PB占用了PA的资源而不得不等待,所以进程PA的慢是因为PB的间接制约而引起的 * * 3.5 进程互斥与同步 二、认识进程互斥与同步相关的重要概念与术语(3) 4. 直接制约(与同步相关的概念) ●该概念的讨论是面向同步而言,是面向2个进程而言,是面向 2 个进程因资源竞争而对其速度影响问题。 ●定义:2个在异步环境下的并发进程,各自执行的结果互为对方继续执行的条件,因而引起的对其执行速度限制(影响)的过程,称之为直接制约。 注释1:是对两个进程而言,即1对1问题。 注释2:目的是禁止因直接制约而引发的死锁现象。 * * 3.5 进程互斥与同步 二、认识进程互斥与同步相关的重要概念与术语(4) 5.进程同步定义: 2个并发进程,因直接制约,互相发送消息,而进行的相互合作、相互等待,使其按照一定的速度执行的过程叫做进程的同步。 6.异步环境: 在同一段时间内,一组并发进程,各自以不可预知的速度独立地向前推进,称为进程的异步性或异步环境。(起始时间的随机性 ) * * 3.5 进程互斥与同步 三、原语及其类型 1.原语定义: ●在系统态下,执行某些具有特定功能的程序段称之为原语。(调用核心层子程序的指令) ●微软1999年第3版(239页)之计算机词典解释:在OS中,调用核心层子程序的指令,它好像是一条扩充了的机器指令。 2.原语类别:(semaphor)简称sem ●指令级原语——该程序段(或扩充了的指令)在其执行期 间不允许中断,是一个不可再分的指令单位。 ●功能级原语——该程序段在执行期间不允许并发执行。 * * 3.5 进程互斥与同步 四、信号量 1. 是用于控制进程执行过程的信号式标志型变量。 2.定义:在程序设计中,一种用来对共享系统资源进行控制的信号,即一种标志变量,信标向潜在的用户(进程)指明,某个文件或资源正在使用中,以防止除此之外的其它用户来访问它。引入信号量的目的,是为了服务于PV原语。 (744页中的英汉双解词典解释) 3.说明: 与互斥相关的信号量叫公用信号量,与多个进程有关。与同步相关的信号量叫私有信号量,与2个进程有关 。 * * 3.5 进程互斥与同步 五、P.V原语 1.是1965年荷兰学者Dijkstra根据火车信号原理,提出来用于解决进程互斥和同步存在问题的模型。 P(荷文 Passeren,英文Pass 简称P原语)调度 ;V(荷文Venhoog,英文incremane 简称V原语)增量。Tannibaum提出相对应的 Down(sleep) P 和 Up(wekeup) V。 2.P.V原语是基于对信号量的操作,是两个不可中断的指令级原语操作,是用于解决进程的同步与互斥问题。 * * 3.5 进程互斥与同步 3.用PV原语实现两个进程PA与PB的描述 ① 设Sem的初值为1,取值范围为(0,1,-1) ② 设Sem=1 初值 临界区为空,PA、PB都未进入 ◆当一个进程执行P原语减1操作,Sem=0,表示该进程可以进入临界区。另一个进程也要进入临界区,也必需先进行P操作,若 Sem=-1 说明已有一个进程进入临界区,另一个进程则进入在等待状态。 Sem=0 ,允许PA 、 PB有一个进入临界区 * * 3.5 进程互斥与同步 4.P(sem)原语操作(减法操作) ●进程进入临界区首先必须进行的操作,即减1操作
文档评论(0)