进程和处理机管理.ppt
《进程和处理机管理.ppt》由会员分享,可在线阅读,更多相关《进程和处理机管理.ppt(104页珍藏版)》请在三一办公上搜索。
1、第3章 进程和处理机管理,目录,31 进程的概念和定义 32 进程的状态和进程控制块 3.3 进程控制 34 进程的互斥与同步 3.5 进程通信 36 进程调度 37 死锁 38 线程,31 进程的概念和定义,操作系统是一个动态系统,在持续的运动过程中完成各种使命、实现各项功能。因此,要了解操作系统各模块间的动态连接关系和相互制约关系就不能用静态的程序概念来刻画操作系统。因此引进一个新的观点进程观点,以便钻进操作系统内部去观察操作系统各模块的动态变化情况。311 为什么引入进程312 进程的定义,311 为什么引入进程,应该说,组织用户使用计算机的机制是随着计算机操作系统的发展而进化的。在监督
2、程序时代是以作业形势表示程序运行的。那时,作业以同步方式串行地运行每个作业步。当操作系统发展到分时系统时,为了开发同一个作业中不同作业步之间的并发,作业机制已不能满足需要,因而引进了进程机制,让进程来实现作业步的执行。但随着多处理机计算机的出现,用户希望一个作业步中的程序还能够同时在多个处理机上运行,因此进程的机制得到了进一步发展,让一个进程同时拥有多个线程,让多个线程在不同处理机上运行。,1.算法我们可以把算法定义为:问题求解步骤的精确描述。算法具有如下性质:解题算法是一个有穷动作序列;动作序列仅有一个初始动作;序列中每一个动作仅有一个后继动作;序列终止表示问题解决还是没有得到解决。,2.程
3、序程序是对一个复杂的计算(问题)用一种形式化的语言对其初始数据与操作进行形式化描述的一个算法。当一个程序在运行之际,可以区分出三个不同的实体。(1)用来描述过程的一组指令,即“过程”;(2)处理机,即执行该过程的机构;(3)环境,即处理机能够直接感知或能够加以改造的那个外部世界。“一切听从程序的指挥”。,2.程序,因此,程序的主要特点是:(1)按“过程”所规定的操作,以严格顺序来执行,每一步都应在下一步开始之前完成(不存在并行)。这一特点就是我们所说的程序的顺序性。(2)环境处在“程序”的完全控制之下,它决不以任何方式变化,除非这种变化是程序所采取的步骤导致的结果。这个特点被称为程序的封闭性。
4、(3)除了要求在合理的时间内获得结果外,任一操作所花费的时间对程序的运行而言是无关紧要的,即使在任一操作之间有一暂时间歇也没有关系。程序所产生的结果是其输入数据的函数而与时间无关。只要程序执行的初始条件相同,其结果是可以再现的。,3.程序的并行执行和资源的共享,为了合理地使用系统资源,充分发挥各种资源的作用,最大限度地提高系统的效率,引进多道程序设计技术。又由于计算机技术的不断发展而出现了中断技术、分时处理和各种新型结构,如多CPU系统的出现,导致现代操作系统出现了许多诸如并发性、资源共享性等许多新的特征。(1)并行操作(2)资源共享,4.程序并行执行的特征,程序的并行执行虽然增加了系统的处理
5、能力和机器的利用率,但也产生了与顺序程序不同的新特征。(1)失去了程序的封闭性(2)程序并行执行时的相互制约关系,312 进程的定义,通过上述分析可知,程序在并行执行时已不能描述不封闭性和“执行-暂停-执行”活动规律,需要有一种新的概念工具来描述下列特征:能描述“计算”这一现象;能描述“执行-暂停-再执行”这一活动规律;能为并行执行的“计算”的制约关系提供协调和共享资源的机构。这样的新概念称为进程或任务。,2.进程与程序的主要区别,(1)程序只是指令的有序集合,是静态的描述,没有运行的含义,所以程序是静止的;进程是程序的一次运行活动,是动态的概念。(2)进程是一个独立运行的单位,共享资源的实体
6、,能与其他进程并发执行,而程序则不然。操作系统中以资源管理的中心思想来看,进程可以看成是资源的顾客和使用者。(3)一个程序可以对应多个进程,反过来,一个进程至少对应一段程序。逻辑上,每个进程有自己的处理机和程序,实际上两个进程可以共享同一段程序或同一个处理机,所以进程不等价于程序,也不等价于处理机,它是执行期间的对。(4)静态地观察进程,其实体是由程序和数据两部分构成,与程序没有什么区别。,3.进程的特征,进程具有如下的特征:(1)动态特征进程的实质是并行程序的一次执行过程,因此,动态特征是进程的最基本的特征。其动态性表现在它可以由创建而产生、由调度而执行、由于得不到资源而暂停,由撤消而消亡。
7、进程存在一个生命周期。(2)并行特征引入进程的目的是使程序能并行执行,以提高资源的利用率。(3)独立特征进程是独立运行的单位,也是系统进行资源分配和调度的独立单位。(4)异步特征进程按照各自独立的,不可预知的速度向前推进,所以要求系统提供某种设施使进程间能协调操作和共享资源,保证它们协调运行。(5)结构特征进程是有结构的,体现在每个进程有一个记录进程当前信息的进程控制块(PCB Process Control Block)。每个进程都是由一个程序段和相应数据集以及进程控制块三部分组成。在UNIX操作系统中将这三部分称为“进程映象”,它把进程定义为:进程映象的执行。,引入进程这一概念后,就可以很
8、方便地动态地描述操作系统了,但引入进程也有不利之处:(1)必须为设置进程付出一定的空间开销,因为并行执行的操作系统本身就复杂,如,必须设置进程管理并为并行执行的各进程之间的同步和协调建立某些机构,由于并行执行就必须考虑避免死锁等问题而使系统复杂化。另外,每个进程都必须有一个进程控制块(PCB),它也占用了一部分内存空间。(2)必须为设置进程付出一定的时间开销,因为运行一个复杂的系统软件将花费更多的处理机时间。,32 进程的状态和进程控制块,321 进程的状态进程是动态的,它存在着生命周期。它有诞生(创建)和灭亡(撤消)过程,在它的生命周期中又反映出它的执行-暂停-再执行的活动规律,进程最主要的
9、特征是具有状态。进程在其活动期间具有两种状态:自由状态和等待状态。任一进程在任一时刻有且只有这两种状态之一。自由状态又可分为:运行状态和就绪状态。,321 进程的状态,就绪状态(Ready)该进程已经获得了除了处理机以外的全部资源并准备好运行,但由于进程数多于处理机数目,所以此进程不能占用处理机执行,一旦为其分配到处理机该进程便立即执行。,321 进程的状态,执行状态(Executive)进程获得了处理机等必要的资源,该进程已占用处理机,其程序正在处理机上执行。,321 进程的状态,阻塞状态(Block)正在执行中的进程,由于发生了某一事件而使之暂时无法执行下去(如,等待I/O操作完成,或由于
10、同步、互斥而等待)而处于暂停状态,即该进程的运行受到了阻塞(即等待状态或睡眠状态)。,进程的三种不同状态,322 进程的状态演变,进程的状态不是一成不变的,它是随着自身的推进和外界条件的变化而变化的。下图为简单的进程状态演变图及演变事由。,应该说明的是:(1)在进程的生命周期中,处于执行状态的进程因为某一事件(如I/O请求等事件)出现而变成阻塞状态,当该事件消除后,被阻塞的进程并不恢复到执行状态,而转变为就绪状态等待再一次重新被进程调度程序调度。这是因为当该进程被阻塞时,为了使处理机不空闲,进程调度程序立即将处理机分配给另一个处于就绪状态的进程。(2)当进程从运行状态变为就绪或阻塞状态时,必须
11、保留它的运行的现场信息,以便将来恢复运行。(3)处于同一状态的进程可以构成队列,系统中可以有一个运行队列、但是在只有一个处理机的情况下,任一时刻处于运行状态的进程只能有一个。系统中可以有一个或多个就绪队列和若干个等待队列,由于同一个原因而等待的进程应该属于同一个等待队列,相应每个队列设有指针,指向相应队列的首部。,323 进程控制块(Process control block),在进程的生命周期中,进程可以处于各种不同的状态,如何描述进程及其状态?进程控制块是表示进程存在的唯一实体。当创建一个进程时,必须为其设置一个进程控制块(PCB),由它对进程进行管理和控制。不同系统的进程控制块所包含的信
12、息不尽相同,大体上都包括以下几项:,(1)进程标识符(Identification)(2)现行状态(Status)(3)CPU状态保护区(4)进程程序的起始地址(5)资源清单(6)进程优先数(7)队列指针或队列表(8)进程的家族信息,3.3 进程控制,进程控制的功能是对系统中的全部进程实施有效的管理,它有创建进程和撤消进程的能力。1.进程家族与分类 2.进程控制的基本操作,331 进程家族与分类,1.进程家族进程的家族结构有两种:一种是非结构系统;另一种是树型结构系统。在非结构系统中管理程序直接对全部进程实施管理,它可以实施创建进程和撤消进程等操作。各进程之间的关系也是“平等”的。,在树型结构
13、的进程家族中,一个父进程可以创建一个子进程而形成一个进程家族。如图3-9(a)给出了非结构系统进程家族示意图;图3-9(b)给出了树型结构的进程家族的示意图。,1.进程家族,进程的家族结构有两种:一种是非结构系统;另一种是树型结构系统。在非结构系统中管理程序直接对全部进程实施管理,它可以实施创建进程和撤消进程等操作。各进程之间的关系也是“平等”的,如图3-9(a)所示。在树型结构的进程家族中,一个父进程可以创建一个子进程而形成一个进程家族。图3-9(b)给出了树型结构的进程家族的示意图。,1.进程家族,1.进程家族,树型结构的优点是:(1)资源分配严格,子进程可以分配到父进程所拥有的资源,用完
14、后立即归还,一个进程家族所占有的全部资源应该在其祖先所拥有的资源范围内。(2)进程的控制灵活,当一个进程被分配完成某一任务时,它能够创建若干进程去分别完成各子功能。(3)进程层次清晰,关系明确。所以,树型结构的系统获得了广泛应用。,2进程分类,进程按服务对象可分为:系统进程与用户进程。完成指定的系统功能的进程称为系统进程;完成用户作业所需做的工作的进程称为用户进程,如,编译、运行系统等。系统进程按其占内存的情况又可分为:长存进程和暂存进程两大类,长存进程的数据块、程序块等长期驻留在内存;暂存进程的程序块等不是长期驻留在内存中,需要时才把它们调入内存。,332 进程控制的基本操作,为了对进程进行
15、控制和通信,在系统中必须设置一个机构,它具有创建、撤消、进程通信和资源管理等功能,这样的机构称为操作系统的内核(Kernel),系统的其他部分是由它们建造的。内核本身并非一个进程,而是一组基本原语操作,是由软件实现的内核功能,内核通过执行各种原语操作来实现各种控制和管理功能。内核是硬件的首次延伸,它扩大了CPU的功能。,原语是机器指令的延伸,是由若干条机器指令构成的用以完成特定功能的一段程序,为了保证操作的正确性,原语在执行期间是不可分割的。引入原语的目的是允许进程内部并行操作,且可以动态地创建一个进程;允许系统生成许多不同的版本以适应不同用户的需要,系统执行时灵活组装成不同的操作系统;使系统
16、结构清晰。用于对进程进行管理和控制操作的基本原语有:,创建原语(Create)撤消原语(Destroy)以上两个原语使进程从无到有,从有到无。唤醒原语(Wakeup)阻塞原语(Block)以上两个原语使进程发生各种状态变化。挂起原语(Suspend)激活原语(Action)以上两个原语使进程从活动到静止,从静止到活动。,34 进程的互斥与同步,进程的状态是基于一定的原因和条件而变化的,而这些原因和条件又常常是由于进程之间的相互制约关系而引起的。系统中诸进程之所以有这种关系,主要原因是由于进程对资源的共享性,由于这种共享的特征,使系统中本来没有逻辑关系的进程因为互相竞争资源而产生了制约关系。这种
17、关系的基本形式是:“进程资源进程”,这是进程间通过资源而发生的一种间接关系。由于系统对进程所请求的许多资源常常是互斥满足的,所以这种关系表现为互斥关系(竞争关系)。,系统中为了完成同一个任务而创建了若干进程,它们之间必然是伙伴进程(进程合作),如某作业的一组并行进程共同完成一项任务,有时它们要在某点上互相等待和互通消息,这种关系的基本形式是:“进程进程”,这是进程之间的一种直接关系,表现了进程之间的协同工作的特性,称为进程间的同步关系。,341 临界区(Critical section),计算机中的某些资源是共享资源,但是有些共享资源具有如下特征:即一次仅允许一个进程使用,我们把一次仅允许一个
18、进程使用的资源称为“临界资源”(Critical resource)。例如,有两个进程A,B共享一台打印机,若让它们任意使用,则可能将两个进程的输出结果交织在一起,很难区分。为了解决这一问题,可以在A进程使用打印机时先申请,一旦系统将打印机分配给A进程后就由它一直占用,此时若B进程也要使用打印机就必须等待,直到A进程用完释放打印机后B进程方可使用,即它们必须互斥地使用打印机。这里打印机就是一种临界资源。,访问临界资源的那段程序称之为“临界区”。为了使临界资源互斥地被使用,必须使临界区互斥地被执行,即诸进程访问临界区时必须互斥。为了做到禁止一组进程同时访问它们的临界区,而提出了临界区的准则如下:
19、,(1)不能假设各并发进程的相对执行速度,即各并发进程享有平等的、独立的竞争共有资源的权利,且在不采取任何措施的条件下,在临界区内任一指令结束时,其他并发进程可以进入临界区。(2)当有若干进程欲访问它们的临界区时,应在有限时间内使一个进程访问临界区,不应互相阻塞而彼此都无法访问,这就是有空让进的原则,使共享资源能够充分利用。(3)每次至多有一个进程处于临界区内,这体现了互斥的基本含义。(4)进程仅在临界区内逗留有限时间,使等待访问临界区的进程是有限等待。,由上述准则得临界区的调度原则如下:(1)当无进程访问临界区时,允许一个进程立即访问其临界区。(2)当某一进程已访问了它的临界区时,其他试图访
20、问临界区的进程必须等待。(3)当某一进程离开临界区时,若有等待访问临界区的进程,则允许其中的一个进程进入临界区访问。,342 进程互斥,1.互斥的加锁实现这是一种借助一条硬指令Test和Set来实现互斥的一种同步机构。此方法是对临界区加锁以实现互斥。当某个进程进入临界区之后,为了阻止其他进程进入临界区,它将锁上临界区,直到它退出临界区时为止。并发进程在申请进入临界区时,首先测试该临界区是否是上锁的。如果该临界区已被锁住,则该进程要等到该临界区开锁之后才有可能进入临界区。为此设置一个变量W,代表临界区的状态,W也称为锁或锁位。当W=0时,表示临界区可以进入;当W=1时,表示临界区已被占用,企图进
21、入临界区的进程必须等待。,关锁原语Lock w:关锁原语 l:if w=1 then goto l else w:=1;开锁原语开锁原语 unlock w:w:=0下面的程序表示了两个并行的循环进程用关锁和开锁原语实现互斥的情况(CS1和CS2表示两个进程的各自临界区)。,Begin integer w;W:=0;Cobegin process1 Begin L1:lock w;CS1;Unlock;Program1;Goto L1;End Process2 Begin L2:lock w;CS2;Unlock;Program2;Goto L2;EndCoendEnd,这样的一个同步机构能有效
22、地保证进程互斥地访问临界区,但对于不能进入临界区的进程却在不断地测试锁位W,以等待它为零,这就造成了处理机时间的浪费。改进的方法是将忙式等待改成忙式挂起,当某进程所需临界资源被占用时,应使该进程阻塞,把它插入到等待队列中,此时CPU分配给其他进程,一旦该资源被释放就立即检查等待队列,若等待队列空,则开锁表示资源可以使用;若等待队列不空,则从该等待队列中移出一个进程,将其置于就绪状态并插入就绪队列。修改后的关锁和开锁原语如下:,关锁原语Lock w:if w=1 then 测试W的值 Begin Block(n);insert(wl,n);scheduler 若临界区中有进程,则阻塞自己并插入到
23、等待队列中,此时CPU空闲,引起进程调度。End Else w:=1;若临界区中无进程,则关锁表示占用开锁原语 临界区;Unlock w:if wlnull then 若等待队列不空,则 Begin Remove(wl,q);从等待队列中移出q,Status(q):=ready;将进程q置于就绪状态,Insert(rl,q);将其插入就绪队列。End W:=0;开锁。,2信号量和P,V操作荷兰计算机科学家E.W.Dijkstra于1965年提出了信号量的概念,并引入两个新的原语操作P和V(P和V分别是荷兰语Passeren和Verhoog的第一个字母,相当于英文的Pass和Increment的
24、意思)。采用P,V操作原语,大大简化了进程的同步和互斥的实现。P和V这两个原语操作在非负整形变量上,这些变量称为信号量。,信号量是表示资源的物理实体,是一个与队列有关的整形变量,其值仅能由P和V操作来改变。操作系统利用它的状态对进程和资源进行管理。按信号量的用途不同可将其分为:公用信号量。它联系着一组并行进程,初始值为1,每个进程都可以对它施加P或V操作,通常它是为实现进程的互斥而设置。私用信号量。它联系着一组共行进程,初始值为0或某个正整数n,仅允许拥有它的进程对它施加P操作,通常用来实现进程的同步。,P操作P操作记为P(S),其中S为一个信号量的值,每执行一次P操作,就意味着申请一个单位的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 处理机 管理
链接地址:https://www.31ppt.com/p-5320197.html