系统架构设计师教程进程管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

系统架构设计师系统架构设计师教程:进程管理操作系统的主要功能是进行处理机与进程管理、存储管理、设备管理、文件管理和作业管理,本节讨论操作系统是如何完成这些功能的。进程管理处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。随着计算机的迅速发展,处理机管理显得更为重要,这主要由于:计算机的速度越来越快,处理机的充分利用有利于系统效率的大大提高;处理机管理是整个操作系统的重心所在,其管理的好坏直接影响到整个系统的运行效率;而且操作系统中并发活动的管理和控制是在处理机管理下实现的,它集中了操作系统中最复杂的部分,它设计的好坏关系到整个系统的成败,进程(process)是处理机管理中最基本的、最重要的概念。进程是系统并发执行的体现。由于在多道程序系统中,众多的计算机用户都以各种各样的任务,随时随地争夺使用处理机。为了动态地看待操作系统,则以进程作为独立运行的基本单位,以进程作为分配资源的基本单位,从进程的观点来研究操作系统。因此,处理机管理也被称为进程管理。处理机管理的功能就是组织和协调用户对处理机的争夺使用,把处理机分配给进程,对进程进行管理和控制,以最大限度发挥处理机的作用。1.进程的概念用静态的观点看,操作系统是一组程序和表格的集合。用动态的观点看,操作系统是进程的动态和并发执行的。而进程的概念实际上是程序这一概念发展的产物。因此,可以从分析程序的基本特征入手,引出进程的概念。顺序程序是指程序中若干操作必须按照某种先后次序来执行,并且每次操作前和操作后的数据、状态之间都有一定的关系。在早期的程序设计中,程序一般都是顺序地执行的。在多道程序系统中,程序的运行环境发生了很大的变化。主要体现在:系统架构设计师(1)资源共享。为了提高资源的利用率,计算机系统中的资源不再由一道程序专用,而是由多道程序共同使用。(2)程序的并发执行或并行执行。逻辑上讲:允许多道不同用户的程序并行运行;允许一个用户程序内部完成不同操作的程序段之间并行运行;允许操作系统内部不同的程序之间并行运行。物理上讲:内存储器中保存多个程序,I/O设备被多个程序交替地共享使用;多处理机系统的情形下,表现为多个程序在各自的处理机上运行,执行时间是重叠的。单处理机系统时,程序的执行表现为多道程序交替地在处理机上相互空插运行。实际上,在多道程序系统中,程序的并行执行和资源共享之间是相辅相成的。一方面,只有允许程序并行执行,才可能存在资源共享的问题;另一方面,只有有效地实现资源共享,才可能使得程序并行执行。这样,可增强计算机系统的处理能力和提高机器的利用率。并发操作实际上是这样的事实:大多数程序段只要求操作在时间上是有序的,也就是有些操作必须在其他操作之前。这是有序的,但其中有些操作却可以同时进行。2.进程的定义与分类由于多道程序系统环境下并行程序执行的特征:并发性、动态性、开放性和相互制约,这样,使用程序的概念就不能如实地反映程序活动的这些特征,必须引入新的概念--进程。操作系统内在最本质的特征是动态性和并发性,而进程正反映了动态性和并发性等特征。程序的并行执行具有如下特征:(1)并发性。即并发程序的若干个程序段同时在系统中运行,这些程序段的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的一部分,也称这几个程序段是并发执行的。(2)动态性。指程序与其执行活动不再一一对应。并发程序中的并发活动是动态产生、系统架构设计师动态消亡的。如,几道并发执行的C语言程序共享C编译系统,在这种情况下,-个编译程序能同时为多道程序服务,每个程序调用-次就是执行一次,即这个编译程序对应多个执行活动。(3)开放性。指系统中并发执行的程序共享使用的资源,程序的执行与外部因素(如执行速度)相关,不再具有封闭性。(4)相互制约性。指程序的动态活动相互依赖、相互制约。其制约关系可分为间接制约关系和直接制约关系两种:间接制约关系是指相互无逻辑关系的用户程序之间竞争使用资源所发生的制约关系;直接制约关系是指存在逻辑关系的程序之间相互等待而发生的制约关系。通过程序活动的这种相互制约关系,才能保证程序的正确运行。系统中同时存在许多进程,它们依性质不同可分为各种不同的类别:(1)系统进程和用户进程。一般来讲,在管态下执行的进程称为系统进程;在目态下执行的进程称为用户进程。系统进程起着资源管理和控制的作用;用户进程是为用户任务而建立的进程。(2)父进程和子进程。系统或用户首先创建的进程称为父进程;在父进程下面的进程称为子进程。父子进程间存在着某些控制结构和控制关系,因此可以定义一个进程图。进程图是一棵有向的、包含一个根节点的树。节点表示进程,记为Pi,从节点Pi到节点Pj的一条边表示进程Pj是由进程Pi创建的。其中,称Pi是Pj的父进程,而Pj则是Pi的子进程。如图1-2所示。系统架构设计师进程图图1-2进程图进程图反映了进程间的父、子关系,创建与被创建关系,控制与被控制关系,反映了进程间的层次关系。同一个进程下属的所有进程称为一个进程族,即协调完成同一任务的进程集合同属于一个进程族。父、子进程间的关系主要如下:(1)进程控制。任何一个进程只能由其直接的父进程创建,进程也只能被其父进程删除。而且当删除某一中间进程(即非叶子节点)时,同时隐含地删除其所属的所有各级子进程。父进程能对其下属的各级子孙进程实施控制,如挂起某个子孙进程。而子进程无权对其父进程实施控制。(2)运行方式。父进程一旦创建了进程后,可以选择父、子进程同时运行的方式;父进程也可以等待子进程的运行,直至全部子进程结束后,才开始重新运行。(3)资源共享。可以选择两种不同的资源共享方式:一是子进程可共享父进程所拥有的全部资源;二是子进程仅能共享父进程的部分资源。3.进程的状态转换由进程运行的间断性,决定了进程至少具有下述三种状态:(1)就绪状态。当进程已分配了除CPU以外的所有必要的资源后,只要能再获得处理机,便能立即执行,把进程这时的状态称为就绪状态。在一个系统中,可以有多个进程同系统架构设计师时处于就绪状态,通常把它们排成一个队列,称为就绪队列。(2)执行状态指进程已获得处理机,其程序正在执行。在单处理机系统中,只能有一个进程处于执行状态。(3)阻塞状态进程因发生某事件(如请求I/O、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,有时也称为等待状态,或睡眠状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。进程的状态随着自身的推进和外界的变化而变化。例如,就绪状态的进程被进程调度程序选中进入执行状态;执行状态的进程因等待某一事件的发生转入等待状态;等待状态的进程所等待事件来到便进入就绪状态。进程的状态可以动态地相互转换,但阻塞状态的进程不能直接进入执行状态,就绪状态的进程不能直接进入阻塞状态。在任何时刻,任何进程都处于且只能处于某一状态。进程状态的变化情况如下:(1)运行态→等待态:一个进程运行中启动了外围设备,它就变成等待外围设备传输信息的状态;进程在运行中申请资源(主存储空间及外围设备因得不到满足)时,变成等待资源状态,进程在运行中出现了故障(程序出错或主存储器读写错等),变成等待干预状态。(2)等待态→就绪态:外围设备工作结束后等待外围设备传输信息的进程结束等待;等待的资源能得到满足时(另一个进程归还了资源),则等待资源者就结束等待;故障排队后让等待干预的进程结束等待,任何一个结束等待的进程必须先变成就绪状态,待分配到处理器后才能运行。(3)运行态→就绪态:进程用完了一个使用处理器的时间后强迫该进桂暂时让出处理器,当有更优先权的进程要运行时也迫使正在运行的进程让出处理器。由于自身或外界原因成为等待状态的进程让出处理器时,它的状态就变成就绪状态。(4)就绪态→运行态:等待分配处理器的进程,系统按一种选定的策略从处于就绪状系统架构设计师态的进程中选择一个进程,让它占用处理器,那个被选中的进程就变成了运行态。图1-3表示了进程的三种基本状态及各状态之间的转换。图1-3进程三态模型及其状态转换3.关于挂起状态在不少系统中,进程只有图1-3所示的三种状态。但在另一些系统中,又增加了一些新状态,其中最重要的是挂起状态。引入挂起状态的原因有:(1)对换的需要。为了缓和内存紧张的情况,而将内存中处于阻塞状态的进程换至外存上,使进程又处于一种有别于阻塞状态的新状态。因为即使该进程所期待的事件发生,该进程仍不具备执行条件而不能进入就绪队列,称这种状态为挂起状态。(2)终端用户的请求。当终端用户在自己的程序运行期间,发现有可疑问题时。往往希望使自己的进程暂停下来。也就是说,使正在执行的进程暂停执行,若是就绪进程,则不接受调度以便研究其执行情况或对程序进行修改。把这种静止状态也称为挂起状态。(3)父进程请求。父进程常希望挂起自己的子进程,以便考查和修改子进程,或者协调各子进程间的活动。(4)负荷调节的需要。当实时系统中的工作负荷较重,有可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。(5)操作系统的需要。操作系统希望挂起某些进程,以便检查运行中资源的使用情况及进行记账。系统架构设计师由上所述,不难了解挂起状态具有下述三个属性:(1)被挂起的进程,原来可能处于就绪状态,此时进程(被挂起)的状态称为挂起就绪;若被挂起的进程原来可能处于阻塞状态,此时的状态称为挂起阻塞。不论哪种状态。该进程都是不可能被调度而执行的。(2)处于挂起阻塞状态的进程,其阻塞条件与挂起条件无关;当进程所期待的事件出现后,进程虽不再被阻塞,但仍不能运行,这时,应将该进程从静止阻塞转换为挂起就绪。(3)进程可以由其自身挂起,也可由用户或操作系统等将之挂起。其目的都在于阻止进程继续运行,被挂起的进程是只能被用显式方式来激活,以便从挂起状态中解脱出来。图1-4示出了具有挂起操作的进程状态演变情况。图1-4进程状态转换4.进程互斥与同步进程互斥定义为:一组并发进程中一个或多个程序段,因共享某一共有资源而导致必须以一个不允许交叉执行的单位执行。也就是说互斥是要保证临界资源在某一时刻只被一个进程访问。进程同步定义为:把异步环境下的一组并发进程因直接制约而互相发送消息而进行互系统架构设计师相合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步。也就是说进程之间是异步执行的,同步即是使各进程按一定的制约顺序和速度执行。系统中有些资源可以供多个进程同时使用,有些资源则一次仅允许一个进程使用,将一次仅允许一个进程使用的资源称为临界资源(CriticalResourse),很多物理设备如打印机、磁带机等都属于临界资源,某些软件的变量、数据、表格也不允许两个进程同时使用,所以也是临界资源。进程在并发执行中可以共享系统中的资源。但是临界资源的访问则必须互斥进行,即各进程对临界资源进行操作的那段程序的执行也须是互斥的,只有这样才能保证对临界资源的互斥访问。把一个进程访问临界资源的那段程序代码称为临界区(Criticalsection)有了临界区的概念,进程间的互斥就可以描述为:禁止两个及以上的进程同时进入访问同一临界资源的临界区。为此,必须有专门的同步机构来协调它们,协调准则如下:(1)空闲让进。无进程处于临界区时,若有进程要求进入临界区则立即允许其进入;(2)忙则等待。

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功