进程的同步课件_第1页
进程的同步课件_第2页
进程的同步课件_第3页
进程的同步课件_第4页
进程的同步课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、2.1 2.1 进程的概念进程的概念2.2 2.2 进程控制进程控制2.3 2.3 进程同步进程同步2.4 2.4 进程通信进程通信2.5 2.5 线程线程第2章 进程管理进程的同步PPT课件2.3进程的同步进程的同步进程的引入虽然改善了系统的资源利用率和提高了系统的吞吐量,但是进程的异步性,特别是它们在争用临界资源时,会给系统造成一定的混乱。为了解决这个问题,提出了进程同步的概念。程序(间)并发执行的特征: 程序运行时独占资源进程的同步 进程同步问题的提出进程异步推进可能造成混乱混乱可能导致不可再现 进程同步目标 进程间的两种主要关系进程间的关系与进程间的独立性进程间的关系是在进程间相对独立

2、的前提下发展的独立获得资源独立调度进程间的同步关系(一)进程间的同步关系(二)进程间的同步关系(三)进程间的同步关系两种形式的制约关系 间接相互制约关系 -源于资源共享,产生互斥问题 直接相互制约关系 -源于进程间合作,产生同步问题同步实现初探(二)同步实现初探(三)进程间的同步关系 进程同步时面临的两种主要关系司机与售票员司机与售票员多个打印者多个打印者计算者与打印者计算者与打印者2.3.1同步的概念同步的概念总结:两种制约关系1资源共享资源共享(进程互斥、进程间的间接相互制约)进程互斥、进程间的间接相互制约)2相互协作(进程同步、直接相互制约)相互协作(进程同步、直接相互制约)进程同步的任

3、务进程同步的任务保证各进程能互斥地访问这些资源(有效地共享资源)。保证协作进程或线程的顺序执行,使它们不会出现与时间有关的差错,对数据的一致性进行维护(有效地相互合作)。临界资源临界资源 临界资源:临界资源:在一段时间内只允许一在一段时间内只允许一个进程访问的资源个进程访问的资源 对临界资源的访问必须采用互斥的对临界资源的访问必须采用互斥的方式进行,以实现对资源的共享。方式进行,以实现对资源的共享。程 序 段1程 序 段2程 序 段n共 享 变量 怎样才能保证并发执行结果的正确性呢? 如果我们把两个进程中使用公共变量有关的语句,各自都抽象为一个顺序的执行单位,也就是说,保证任何一个进程即使运行

4、到其中这些语句时被打断,在它下一次被调度到而继续执行直到退出这些语句之前,另一个进程不允许进入使用公共变量的语句执行,也就一定能保证那些语句总能被顺序地执行,显然其执行结果也一定是正确的2.3.1.3临界区问题临界区问题 临界区的概念:将多个进程访问临界资源的那一段程序代码称为临界区。在临界区中,进程能改变变量的值,更新数据表或写文件等。系统只允许一个进程在临界区执行,而不允许其它进程进入临界区。解决临界区问题必须遵循的原则:1.当某一时刻没有进程处于临界区内时,相应的临界资源处于空闲状态。因而可允许一个请求进入临界区进程立即进入临界区,以有效地利用临界资源。2.如果此时已有进程进入临界区,则

5、其它试图进入临界区的进程必须等待,以保证各进程互斥地访问临界资源。3.当某个进程申请进入临界区时,它应在有限时间内获得系统的响应,而能够进入临界区,以免进程陷入无限等待状态。4.当进程不能进入临界区时,应立即释放处理机,以免进程陷入忙等待状态。 1 空闲让进;2 忙则等待;3 让权等待;4 有限等待;临界区临界区2.3.2同步的实现同步的实现解决临界区问题可以用软件或硬件实现。使用硬件实现进程的同步,可以使用户的编程任务更容易且系统的效率更高。1关中断关中断使用关中断解决单处理器环境下临界区的问题。使用关中断不能解决多处理器环境下临界区的问题。关闭中断将延误处理器的处理时间,使系统性能下降。锁

6、机制 临界资源锁机制例:商场的试衣间是互斥资源是临界资源是共享资源每个顾客必须遵循以下过程使用试衣间:锁机制 临界资源锁机制锁机制实现 一种简单的锁操作实现锁机制实现锁操作模型 锁操作的一般模型出了问题的锁锁机制实现 关锁操作不可被打断用原语实现关锁操作关锁操作在一个指令周期内完成 锁操作的特点:实现了进程互斥访问临界资源。不遵循让权等待原则。忙等信号量机制 信号量机制:由Dijkstra提出的一种解决进程的同步与互斥的工具: 信号量信号量用于表示用于表示资源数目资源数目或或请求使用请求使用某一资源的进程个数某一资源的进程个数的整型量的整型量. S是与临界区内所使用的共享资源有关的信是与临界区

7、内所使用的共享资源有关的信号量。号量。 S0 可供并发进程使用的资源数可供并发进程使用的资源数 S0 正在等待使用临界区的进程数正在等待使用临界区的进程数P原语操作和V原语操作 P原语操作的主要动作S1如果S1以后仍大于等于零,则进程继续进行如果S1以后小于零,则将该进程阻塞以后插入阻塞队列,然后转进程调度 V原语操作的主要动作S1如果相加后结果大于零,则继续进行相加后结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后返回原进程继续执行或者转进程调度。入口s=s-1s0调度进程入等待队列转进程调度入口s=s1s0唤醒等待队列中的一个进程返回或转进程调度返回返回s.否value=0)继

8、续执行;else阻塞并进入等待队列;V操作V(S)S=S+1;if(S0)继续运行;else唤醒等待队列中的一个进程,并继续运行;信号量:PV操作记录型的信号量机制 是一个记录型的数据结构,包含两个数据项,一是计数值域,另一是等待该信号量的进程队列首指针域。描述如下: typedef struct semaphore int value; PCB *p; semaphore;记录型信号量的P,V操作P(s)和V(s)操作原语voidP(s)structsemaphores;s.value=s.value-1;if(s.value0)block(s.p);2.3.2 信号量机制 AND型信号量(

9、只需了解)引入原因:一个进程需要先获得两个或更多的资源后,方能执行其任务. 基本思想将对多个信号量的逐个申请改为一次,用一个原子操作完成进程要么一次获得所有的资源,要么一个也申请不到不会存在互相等待的局面信号量集(了解) 引入原因:在记录型信号量中每次对仅能施以加或减操作,即每次只能获得或释放一个单位的临界资源 一次需要个某类临界资源时 资源数量低于某一下限值时,便不予分配 可对信号量机制加以扩充,形成一般化的“信号量集”机制公用与私用信号量2.3.3 信号量的应用 .利用信号量实现进程互斥例1:n个并发进程共用一个公用变量Q,写出信号量实现n个进程互斥时的程序描述,并说明信号量的取值范围。

10、2.利用信号量实现前驱关系设有个并发执行的进程:P1: s1 ; P2: s2为了实现前驱关系S1 S2 ,可使他们共享一个公用信号量,初值为 P1 : S1; V(s) ; P2: P(s) ; S2 ;利用信号量解决前驱图问题 例如:PA、PB、PC为一组合作的进程,其流程如图所示,使用信号量实现三个进程的同步。ACB 例如:PA、PB、PC为一组合作的进程,其流程如图所示,使用信号量实现三个进程的同步。 设两个同步信号灯SB、SC分别表示进程和能够开始 执行,其初值均为0( SB=0 ,SC=0)。ACBSB =0;SC =0;BeginPA : Begin V(SB) V(SC ) E

11、nd;EndProgram;利用信号量来描述前趋图关系S1S3S2S4S5S6S7S8具有具有8个结点的前趋图。图中的前趋图个结点的前趋图。图中的前趋图中共有有向边中共有有向边10条,可设条,可设10个信号量,个信号量,初值均为初值均为0;有;有8个结点,可设计成个结点,可设计成8个个并发进程,具体描述如下:并发进程,具体描述如下:S1S3S2S4S5S6S7S8agefbcdhijStruct smaphore a,b,c,d,e,f,g,h,I,j=0,0,0,0,0,0,0,0,0,0cobegin S1;V(a);V(b);V(c); P(a);S2;V(d); P(b);S3;V(e

12、);V(f); P(c);S4;V(g); P(d);P(e);S5;V(h); P(f);P(g);S6;V(i) P(h);P(i);S7;V(j); P(j);S8;coendS1S3S2S4S5S6S7S8agefbcdhij用信号量解题的关键 步骤: 信号量的设置; 给信号量赋初值(常用的互斥和同步信号量值的大小); P、V操作安排的位置(其中,P的顺序不能颠倒)练习ACBDE3.利用信号量实现进程同步: 例例2:已知一个求值公式(:已知一个求值公式(A2+3B)/(B+5A),若若A,B已赋值,试画出该公式求已赋值,试画出该公式求值过程的前趋图。值过程的前趋图。 解:在该公式的求值过程中,有些运算解:在该公式的求值过程中,有些运算分量的执行是可以并发执行的。为了描分量的执行是可以并发执行的。为了描述方便,可设置一些中间变量保存中间述方便,可设置一

温馨提示

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

评论

0/150

提交评论