资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第,7,章 进程同步与进程通信,本章考核知识点:,1,、进程的顺序性与并发性,2,、与时间有关的错误,3,、相关临界区,4,、进程的互斥,5,、进程的同步,6,、进程通信,7,、线程的概念,本章自学要求:理解“进程”是操作系统中的基本执行单位,在多道程序设计的系统中往往同时有许多进程存在,它们要轮流占用处理器。这些交叉执行的并发进程相互之间可能是无关,也可能是相关的。当并发进程竞争共享资源时会出现与时间有关的错误,因此,应采用进程同步与互斥手段使其合理使用共享资源,以保证系统安全。当进程间必须通过信息交换进行协作时,可用进程通信的方式达到目的。,重点是:分析与时间有关的错误;用,PV,操作实现进程的同步与互斥;用信箱实现进程通信。,一、进程的顺序性与并发性(领会),有人说,在程序中不是有跳转语句和重复语句,怎么就是顺序执行?注意,这里是指进程在处理器中的执行,因为处理器每次只能执行一个操作,因此每条指令必须按顺序进入,CPU,执行,假使有一条指令是跳转的,那么执行本指令后,会取出跳转目的地址的指令进入,CPU,运行,这个顺序是程序规定的。所以对,CPU,而言,进程总是按顺序执行。进程是一个程序在一个数据集合上的一次执行,同一个程序和同一个数据集的运行结果必然是相同的。这就是可再现性。,同时执行并不是真的同时,因为任一时刻,CPU,中只能有一个进程运行。,1,、进程的顺序性:任何进程在顺序的处理器上的执行是严格按照顺序进行的,这就是进程的顺序性。当一个进程独占处理器顺序执行时,具有两个特性:一、封闭性 二、可再现性。,2,、进程的同时执行:在多道程序设计系统中,一个进程的工作没有全部完成之前,另一个进程就可以开始工作,它们的执行在时间上重迭的,我们把它们称为是“可同时执行的”。,3,、进程的并发性:若系统中存在一组可同时执行的进程,则说该组进程具有并发性,并把可同时执行的进程称为“并发进程”。,4,、并发进程间的关系:并发进程相互之间可能是无关的,也可能是交往的。如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,即它们是各自独立的,则这些并发进程相互之间是无关的。如果一个进程的执行依赖其他进程的执行,则这些并发进程之间是有交往的。,二、与时间有关的错误(简单应用),1,、并发进程的执行速度取决于自身和进程调度策略。一个进程运行时会被中断,且断点是不固定的,一个进程被中断后,哪个进程可以运行,被中断的进程什么时候占用处理器,是与进程调度策略有关的。因此进程的执行速度不能由自己决定。,2,、并发进程交替使用共享资源时会出现与时间有关的错误。由于共享资源的原因,加上进程并发执行的随机性,一个进程对另一个进程的影响是不可预测的。造成不正确的因素与进程占用处理器的时间、执行的速度以及外界的影响有关。因此被称为与时间有关的错误。,3,、分析并发进程中与时间有关的错误,请理解教材上的例子。,三,.,相关临界区(,领会,),1,、临界区的定义:并发进程中与共享变量有关的程序段称为“临界区”,2,、什么是相关临界区:相关临界区是指并发进程中涉及到相同变量的那些程序段。,3,、对相关临界区的管理要求。,1,)一次最多让一个进程在临界区执行,当有进程在临界区时其他想进入临界区执行的进程必须等待。,2,)任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限地逗留在自己的临界区。,3,)不能强迫一个进程无限地等待进入它的临界区,即有进程退出时应让一个等待进入临界区的进程进入它的临界区。,四、进程的互斥(综合应用),1,、进程互斥的含义:进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。,PV,操作是两个过程,由他们两个来控制一个信号,S,,假设,S,是红灯的个数。,每个进程进入临界区前都要先执行,P,操作。退出临界区时执行,V,操作。用下面的比喻很容易理解,:,临界区门前有棵树(,S,)用来挂红灯 进程想进,CPU,的门 先得上树取盏灯(调用一次,P,操作)取下一个去敲门,(S=S-1),如果树上没灯取,(S0),树说欠你一盏灯,(S,为负时,),没辙只好外边排队等,(Wait(S),得灯进程续运行 运行完了要出门(调用一次,V,操作)马上还回一盏灯,(S=S+1),若有进程在催债,(S0),放个进去事完成,(Release(S),2,、实现进程互斥的工具,PV,操作。,PV,操作是由两个操作,即,P,操作和,V,操作组成。,P,操作和,V,操作是两个在信号量上进行操作的过程。假定用,S,表示信号量则把这两个过程记作,P,(,S),和,V,(,S),它们的定义如下:,Procedue,P(Var,S:Semaphore);,begin S:=S-1;,if S0 then W(S)end;,P,Procedue,V(Var,S:Semaphore);,begin S:=S+1;,if S=0 then R(S)end;V,为了确保,PV,操作自身的正确执行,因此,P,(,S,)和,V,(,S,)操作中不可中断,这种不可被中断的过程称为“原语”。,3,、用,PV,操作管理相关临界区的一般形式,一个信号量与一组涉及共享变量的相关临界区联系起来,信号量的初值定为“,1”,任何一个进程要进入临界区前先调用,P,操作,执行临界区的操作后,退出临界区时调用,V,操作。,由于信号量的初值为“,1”,,,P,操作起到了限制一次只有一个进程进入临界区的作用,其余进程欲进入临界区必须符合对临界区管理的第一个要求,即一次最多让一个进程在临界区执行。进程退出后执行,V,操作,若有进程在等待则释放一个进程,这样就达到了对临界区管理的第二个和第三个要求(即不能无限逗留也不能无限等待)。,4,、分析进程互斥问题并用,PV,操作实现进程互斥。仔细领会教材中的例子,关于,PV,操作,在考试中出现的可能性极大,但是难度基本不超过教材上例题,.,进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。,在写程序时要注意以下几点:,PV,操作中间只执行相关临界区内容,不能把临界区外的程序段放到,PV,操作中间,否则会降低系统并发执行能力或引起系统瘫痪。,另外当有条件语句时要注意在临界区内每个条件分支出口均要调用,V,操作,否则会违反对临界区管理的第二、三两个要求。,五、进程的同步(综合应用),1,、进程同步的含义:进程的同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。“生产者”与“消费者”是同步问题的典型例子。这里有两个消息量:一是“缓冲器里有物品”,二是“可把物品存入缓冲器”,这两个消息量对应需要两个信号量,SPut,和,SGet,。,SP,的初始值为,1,,如果初始时可用的缓冲器为,n,个,则,SP,n;SG,的初始值为,0,。生产者进程调用,P(SP),和,V(SG),消费者进程调用,P(SG),和,V(SP),,根据,SG,和,SP,的值来决定是否可以存或取物。,2,、正确使用,PV,操作实现进程同步。,(1),用一个信号量与一个消息联系起来,当信号量的值为,0,时表示期望的消息尚未产生,当信号量值为非,0,时表示期望的消息已经存在。,(2),在用,PV,操作实现同步时,一个信号量与一个消息量联系在一起,当有多个消息时必须定义多个信号量;测试不同的消息是否到达或发送不同消息时,应对不同的信号调用,P,操作或,V,操作。,3,、使用,PV,操作实现进程同步与互斥的混合问题。进程的同步与进程的互斥都涉及到并发进程访问共享资源的问题。可以看到进程的互斥实际上是进程同步的一种特殊情况。若干进程互斥使用资源时,一个等待使用资源的的进程在得到占用资源的进程发出“归还资源”的消息(调用了,V,操作)后,它就可去使用资源。因此,互斥使用资源的进程之间实际上也存在一个进程依赖另一个进程发出信息的制约关系。所以,也把进程的互斥与进程的同步称为进程的同步。,4,、,PV,操作实现进程同步与互斥时怎样定义信号量,信号量的物理含义及其作用,利用,PV,操作实现进程互斥时,用一个信号量与一组相关临界区对应,这些进程在同一个信号量上调用,P,操作和,V,操作来实现互斥。,利用,PV,操作实现进程同步时,每一个消息与一个信号量对应,进程在不同信号量上调用,P,操作以测试自己需要的消息是否到达,在不同信号量上调用,V,操作把不同的消息发送出去。,信号量的物理含义:,S,0,时表示可使用的资源数或表示可使用资源的进程数。,S,0,时表示无资源可供使用或不允许进程进入临界区。,S,0,时表示等待使用资源的进程个数或表示等待进入临界区的进程个数。,根据,PV,操作的性质,任何进程在使用共享资源前应调用,P,操作。当有可以使用的资源或允许使用资源时(,S,0,),调用,P(S),后不会成为等待,进程可以使用资源。当无资源可使用或不允许使用资源时(,S0,)调用,P(S),后必然等待。任何进程可调用,V,操作来归还共享资源的使用权,当,S,0,时调用,V,(,S,)后使可用资源数加,1,或使可用资源的进程数加,1,(也就是树上多挂上一个红灯笼)。当,S0,时调用,V(S),后将释放一个等待使用资源或者释放一个等待进入临界区者。,六、进程通信(领会),1,、进程通信的含义:通过专门的通信机制实现进程间交换大量信息的通信方式称为“进程通信”,2,、实现进程通信的基本原语:有两条:“,send,(发送)”和“,receive,(接收)”原语。,3,、利用信箱通信时“发送”和“接收”原语的功能。,send(N,M),功能:把信件,M,送到指定的信箱,N,中。,receive(N,X),功能:从指定信箱,N,中取出一封信,存放到指定的地址,X,中。,4,、信箱的基本结构:一个信箱由“信箱说明”和“信箱体”两部分组成。,七、线程的概念(识记),线程是进程中可独立执行的子任务,一个进程中可以有一个或多个线程,每个线程都有一个唯一的标识符。,支持线程管理的操作系统有,Mach,OS/2,WindowsNT,UNIX,等。,复习题,1,、为了使,A,、,B,两个进程互斥地访问单个缓冲区,应为之设置一个互斥信号量,S,,初值为,1,,相应在的,P,(,S,),,V,(,S,)操作必须分别安排在()的两端。,A,、该单缓冲区,B,、两进程的临界区,C,、两进程的程序段,D,、两进程的控制块,2,、一个进程可以包含多个线程,各线程(),A,、必须串行工作,B,、共享分配给进程的主存地址空间,C,、共享进程的,PCB,D,、是独立的资源分配单位,3,、,PV,操作所处理的变量是(),A,、锁变量,B,、整型信号量,C,、记录型信号量,D,、控制变量,4,、为了使两个进程能同步运行,最少需要()个信号量。,A,、,1,B,、,2,C,、,3,D,、,4,5,、共享变量是指()访问的变量。,A,、只能被系统进程,B,、只能被多个进程互斥访问的变量,C,、只能被用户进程,D,、可被多个进程,6,、临界区是指并发进程中访问共享变量的()。,A,、管理信息,B,、数据,C,、信息存储,D,、程序,7,、多项选择:线程是操作系统的概念,已具有线程管理的操作系统有()。,A,、,WINDOWS32,B,、,OS/2,C,、,Windows NT,D,、,DOS6.22,E,、,Mach,8,、多项选择:一个进程向其他进程发送消息时,应组织好一封信件,内容包括()。,A,、接收者名,B,、发送者名,C,、具体信息,D,、等不等回信标志,E,、回信存放地址,9,、在具有,n,个进程的系统中,允许,m,个进程(,nm1,)同时进入它们的临界区,
展开阅读全文