《操作系统》第2章进程管理1.ppt_第1页
《操作系统》第2章进程管理1.ppt_第2页
《操作系统》第2章进程管理1.ppt_第3页
《操作系统》第2章进程管理1.ppt_第4页
《操作系统》第2章进程管理1.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

操作系统原理 Principles of Operating System,2,第2章 进程管理,2.1 进程与任务 处理机管理主要研究进程控制、进程和线程管理、提供进程同步机制和进程通信机制,进程调度和死锁等 。 我们可以把进程理解为操作系统的工作单元, 进程是正在执行的程序,进程的执行需要一定的资源。 操作系统主要研究进程与资源的关系。,3,2.1.1 前趋图,为了描述一个程序的各部分(程序段或语句)间的依赖关系 如图所示的前趋图中,P1为初始点,P7为终止点。前趋图存在下面的前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P3P6,P4P6,P5P7,P6P7。,4,前趋图中有两种元素: 节点。用圆圈表示,其内涵可以是一条语句、一个程序段或进程。 有向边。用箭头表示,表示两个节点之间存在的偏序(Partial_Order)或前趋关系(Precedence_Relation)。PiPj表示在Pj开始前Pi必须完成,即Pi是Pj的直接前趋,Pj是Pi的直接后继,前趋图中不存在循环。,5,2.1.2 程序的顺序执行,程序是指一个按严格次序执行的操作序列,执行的次序有顺序、分支和循环;操作是数据处理的一种规则,一经启动就需要在有限时间内完成。 一个程序中包括三部分。I:输入操作,C:计算操作,P:打印操作。这样多个程序的顺序执行次序如图所示。,6,顺序程序的特征如下:,顺序性:程序的执行是按照程序结构所指定的次序进行的。 封闭性:程序在封闭的环境下执行,即程序执行时独占全部系统资源。程序一旦开始执行,其计算结果不受外界因素影响,计算机的状态完全由该程序的控制逻辑所决定。 可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。程序的结果与它的执行速度无关,只要给定相同的输入,一定会得到相同的结果。,7,2.1.3 程序的并发执行,为提高系统资源的利用率和增强系统处理能力,在现代计算机中广泛采用并行操作技术和并发程序设计技巧。 程序的并发执行是指两个或两个以上程序段在执行时间上的重叠。 每个程序的输入操作、计算操作和打印操作必须顺序执行。对一批程序进行同时处理时,不同程序的各项操作可以并发执行。,8,如图2-3所示,存在以下的前趋关系:IiCi,CiPi,IiIi+1,CiCi+1,PiPi+1。故Pi-1和Ci以及Ii+1之间可以并发执行。,9,程序的并发执行的特征:,间断性:程序并发执行时,处理机交替执行多个程序,每个程序都是以“停停走走”的方式执行,可能走到中途停下来,而且程序无法预知每次执行和暂停的时间长度,失去原有的时序关系。 失去封闭性:由于程序的并发执行,打破了由一程序独占系统资源的封闭性。多个程序共享一个计算机系统的多种资源,每个程序的执行都会受其他程序的影响。 失去可再现性。程序并发执行时,由于失去了封闭性。由于程序每次执行的环境不同,程序执行的速度具有不可再现性。如果不采取制约措施,在不同执行环境下的程序的执行结果也将失去可再现特征。,10,程序执行是为了对输入信息进行处理,并得到相应的处理结果。为此,程序在并发执行时,必须保证程序执行结果可再现性。由于程序并发执行产生了一系列新特征,为了准确地描述并发程序的执行,必须引入进程的概念。,11,2.1.4 进程,进程是指程序在并发环境下的一次运行过程。 可并发执行的程序在一个数据集合上的运行过程 传统进程的两个属性: 进程是操作系统进行资源分配和处理机调度的基本单位。 现代操作系统引进线程之后,进程的两个属性发生分离,进程仅是操作系统进行资源分配基本单位,而线程是操作系统处理机调度的基本单位。,12,引入进程对操作系统的影响,进程是计算机系统资源的使用主体,进程与处理机、存储器和外设等资源的分配和回收相对应。操作系统引入进程,可以实现多个进程的并发执行,提高了系统资源的利用率,提高了系统的吞吐量。但由于每个进程配备PCB,增加了内存的空间开销。进程之间的切换、同步等需付出时间开销,引入进程会带来额外的时空开销,增加了操作系统的复杂性。,13,进程的特征,动态性 并发性 独立性 异步性 结构特征。,14,进程的程序段描述了进程所要完成的功能。如果一个程序能够被多个进程同时共享执行,那么,这个程序段就是纯代码(pure code),即可重入代码(reentry code)形式编写的,它是指进程执行时不可修改的部分。数据段是指进程执行时用到的数据。用户程序在此数据集合上进行操作,得到相应的结果。进程控制块包含进程的描述信息和控制信息,不同的操作系统其进程控制块的内容及信息量也不相同。,15,进程和程序的比较,程序是有序代码的集合,是一个静态的概念。进程是程序的一次执行过程,是一个动态概念。进程不可以在计算机之间迁移,而程序通常对应着文件,可以复制。 进程是一个状态变化的过程,是有生命期的。而程序是永久的,可以长久保存。 进程与程序的组成不同。进程由程序段、数据段和进程控制块组成,而程序仅是代码的有序集合。 进程与程序是密切相关的。通过多次执行,一个程序可对应多个进程。但进程与它本身所运行的程序只能是一对一的关系。 进程更能真实地描述并发,而程序不能。 进程可创建其他进程,而程序并不能形成新的程序。,16,2.1.5 任务与多任务,对于有多个CPU的计算机,同时在每一个CPU上执行进程称为多重处理。多重处理是针对多机系统定义的,这一点请读者注意理解。我们可以认为多重处理是多任务处理在多机系统中的一个特例,多重处理是多任务处理的子集。 多任务是指在同一时间间隔内系统执行多个进程,这里包含多重处理和多进程并发执行。任务是一个具有开始时间和完成时间的操作,任务是系统的基本工作单元,任务调度与进程调度的过程基本类似。在操作系统中,站在用户的角度上,任务可以理解为逻辑上的进程。不同的操作系统进程与任务的含义不同,在Linux系统中,进程与任务的含义是相同的。,17,2.2 进程的状态与进程控制块 2.2.1进程的基本状态,18,进程在运行过程中主要是在就绪、执行和阻塞三种基本状态间进行转换,创建(new)状态。进程正在创建过程中,但还未将它送入就绪队列时的状态。 就绪状态(Ready)。进程已得到必要的资源,唯缺处理机,等待处理机调度,一旦获得处理机便可立即执行。将处于就绪状态的那些进程排成队列就叫就绪状态队列。 执行状态(Running)。进程占用CPU资源并正在CPU上执行,处于此状态的进程数目小于等于CPU的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。在多机系统中,可以有多个进程处于执行状态。而在单机系统中,仅有一个进程处于执行状态。,19,等待状态(Waiting)。也称为阻塞(Blocked)状态,在执行过程中,因等待某一事件而暂时无法执行。将等待同一事件的阻塞进程排一个队列就叫该事件的等待队列。 退出(exit)状态。当一个进程已经正常结束或异常结束,系统回收资源。操作系统已将它从就绪队列中移出,正在将它撤消。,20,2.2.2进程的状态变迁机制,提交(Admit):完成一个新进程的创建过程,新进程进入就绪状态。由于性能、内存、进程总数等原因,系统会限制并发进程总数。 调度(Dispatch):按调度算法从就绪进程队列中选择进程,进入执行状态。 释放(Release):由于进程完成或异常终止进程运行,进入退出状态。状态变迁图中只画出了执行状态到退出状态间的释放转换。但实际上,还存在从就绪状态或阻塞状态到退出状态的释放转换。执行到退出的转换可分为正常退出(exit)和异常退出(abort)。,21,超时(Timeout):由于用完时间片或高优先级进程就绪等原因导致进程暂停执行。分配的时间片用完而发生时钟中断,或一个刚进入就绪队列的进程,其优先级高于处于执行状态的进程的优先级而抢占处理机,于是进程从执行状态到就绪状态的转变。 等待事件(Event Wait):进程要求的事件未出现而进入阻塞。可能的原因包括:申请系统服务或资源、通信、I/O操作等。 事件发生(Event Occurs):进程等待的事件发生。例如,操作完成、申请成功等。进程从等待状态转变为就绪状态,重新等待处理机调度。 操作系统中多个进程的并发执行是通过两套循环完成。一是通过调度与超时二种状态变迁原因的循环。二是通过调度、等待事件和事件发生三种状态变迁原因的循环。,22,2.2.4进程控制块,所谓进程控制块(Process Control Block,PCB)是由操作系统维护,用来记录进程相关信息的数据结构。每个进程在操作系统中都有对应的进程控制块。操作系统依据进程控制块对进程进行控制和管理,进程控制块中的内容会随进程的推进而动态改变。进程控制块通常不能由应用程序自身的代码来直接访问,而要通过系统调用进行访问。,23,2.2.5进程之间的上下文切换,在多进程并发执行中,将CPU切换到另一个进程需要保存原来进程的关联状态并装入新进程的关联状态。这一任务称为上下文切换当发生上下文切换时,内核会将旧进程的关联状态保存在其PCB中,然后装入经调度要执行的新进程的已保存的关联状态。上下文切换时间是系统额外开销,因为切换时系统并不能做什么有用的工作。 操作系统越复杂,上下文切换所要做的工作就越多。上下文切换问题可能会成为操作系统性能的瓶颈,我们可以采用线程减少或避免上下文切换时间,降低操作系统开销。,24,2.3 进程控制,链接方式,25,索引方式,26,2.3.3 进程控制原语,创建进程的典型事件 批处理系统中的作业调度。 用户登录。 用户启动应用程序。 由操作系统创建的系统服务。 创建新的进程。,27,撤消原语,撤消进程的典型事件: 正常结束:进程完成了程序的执行任务。 异常结束:出错或故障结束,有算术运算出错、I/O故障等。 被干预结束:包括操作员或操作系统干预结束、被父进程请求结束、父进程本身要结束而其子孙进程跟随结束。,28,阻塞原语,阻塞原语具体的操作过程是:查找到该被阻塞进程的PCB,剥夺其处理机,将其状态改为阻塞状态,转进程调度。根据阻塞事件的类型将该阻塞进程插入到相应阻塞队列中。阻塞原语的算法描述: void block(WQr) i=*EP;/*取得调用者进程的PCB*/ stop(i);/*剥夺CPU*/ i.status=”blocked”/*将进程i的状态置为阻塞状态*/ i.state=WQr;/*填入所在队列的首指针*/ insert(WQr);/*插入相应阻塞队列*/ scheduler;/*进程调度*/ ,29,唤醒原语,因事件发生,进程从阻塞状态转换到就绪状态,用唤醒原语完成。唤醒原语对PCB进行修改来实现其功能,在被唤醒的阻塞队列中,找到队首进程。并将该进程从阻塞队列移出,插

温馨提示

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

评论

0/150

提交评论