操作系统 第二章 进程管理第一部分

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

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

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

资源描述

第二章进程管理•进程是操作系统中最活跃最重要的概念,对处理器的管理就是对进程的管理•进程作为资源分配和处理器调度的基本单位,也是操作系统并发性、共享性、虚拟性和异步性的集中体现。第一部分进程和线程的描述与控制2.1概述2.2程序的执行方式2.3进程及其实现补充:前趋图Unix的进程描述和控制2.8线程及其实现★★2.1概述很多人在理解进程的概念时,往往只注重于它是一个运行的程序(或程序的运行)同一个程序同时被两次运行,那么它们就是两个独立的进程,代码相同,但所占用的系统资源,所处理的数据以及运行状态会有所不同在有限的软硬件资源上允许“同时”运行多个程序时,就需要进程管理——操作系统的核心功能之一现代操作系统中,线程代替进程成为CPU调度的基本单位2.2程序的执行•程序的执行是指将二进制代码文件(如*.exe等)装入内存,由CPU按程序逻辑运行指令的过程——顺序和并发两种方式•单道程序设计技术是指内存一次只能允许装载一个程序运行,在这次程序运行结束前,其它程序不允许使用内存•多道程序设计技术是现代操作系统普遍使用的,允许多个程序进驻内存,系统通过某种调度策略交替执行程序2.2.1程序的顺序执行在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。(早期的单道操作系统)顺序程序设计:将一个程序设计成为一个顺序执行的程序模块,不同的程序也是按顺序执行。2.2.1程序的顺序执行程序的执行在内部和外部都是顺序的•内部顺序性:在顺序处理器上的执行是严格按序的;•外部顺序性:完成一个任务的若干不同程序在时间上也按调用次序严格有序执行顺序程序设计的主要特性•执行的顺序性•环境的封闭性:环境是由程序本身决定的•执行结果的确定性•计算过程的可再现性程序及其执行(计算)是一一对应的,为程序的编制和调试带来很大方便,但是计算机系统效率不高顺序程序设计举例–某程序需要循环执行输入、计算、输出三个过程–while(TRUE){input;process;output;}–input78ms,process52ms,output20msI1P1O1I2P2O2…串行执行while(1){input,process,output}78输入机处理器磁带机130150228280300378430450时间处理器利用率:52n/(78n+52n+20n)≈35%2.2.2程序的并发执行与并行执行•并发性(Concurrency):一组进程的执行在时间上是重叠的。即一个进程执行第一条指令是在另一个进程执行的最后一条指令完成之前开始的。并发执行的表现•宏观:一个时间段中几个进程都在同一处理器上,处于运行还未运行结束状态;•微观:任一时刻仅有一个进程在处理器上运行。•实质是时分复用CPU问题:并发与并行的区别是什么?并发和并行的区别?•并行(ParallelParallel):两个或两个以上的活动或事件在同一时刻发生,并发性不仅体现在微观上,还体现在宏观上如何充分发挥设备之间的并行工作能力?•现代计算机硬部件能同时进行工作,但怎样才能充分发挥它们的并行工作能力还取决于程序的编制方法。•通常将一个程序分成若干个可同时执行的程序模块,每个程序模块和它执行时所处理的数据就组成了一个进程,它们可以并发执行。并发程序设计并发性程序设计举例某程序需要循环执行输入、计算、输出三个过程,设计为三个可并行执行的程序模块设计时可以分为三个可并行执行的程序模块while(1){input,process,output}while(1){input,send}78mswhile(1){receive,process,send}52mswhile(1){receive,output}20ms三个进程通过缓冲区交换信息Ii缓冲区1Pi缓冲区2OisendsendreceivereceiveIPOt1t2t3进程时间I1I2I3P1P2P3O1O2O3并发性程序设计举例一(相关进程)处理器利用率:(52*n)/(78*n+52+20)≈67%78输入机处理器磁带机130150228306208286384364时间2.3进程及其实现2.3.1进程的定义和属性2.3.2进程的状态和转换2.3.3进程的描述2.3.4进程切换与模式切换2.3.5进程的控制2.3.6操作系统的运行2.3进程及其实现2.3.1进程的定义和属性2.3.2进程的状态和转换2.3.3进程的描述2.3.4进程切换与模式切换2.3.5进程的控制2.3.6操作系统的运行为什么要引入进程?•进程是在多道程序背景下出现的新概念,用于刻画系统内部的动态状况,描述运行程序的活动规律。•原因1:刻画系统的动态性,发挥系统的并发性,提高资源利用率执行的连续性-执行的交错性和走走停停环境的封闭性-相互影响相互制约执行结果的确定性和过程的可再现-不确定和不可再现程序是完全静态的概念,反映不了系统中这种并发特征为什么要引入进程?•原因2:解决共享性,正确描述程序的执行状态“可再用”程序(自身修改)“可再入”程序(自身不改变)编译程序P程序与执行不再一一对应编译程序P(P的入口,处理源程序乙)(P把源程序甲的信息记盘等磁盘完成)AB源程序甲源程序乙进程甲进程乙为什么要引入进程?操作系统引入进程的概念:从理论角度看,是对正在运行的程序过程的抽象;从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。因此:进程既能描述程序的并发执行状态,又是共享资源的一个基本单位。进程的定义进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。也被称作“任务”属性:结构性,共享性,动态性,独立性,制约性,并发性进程的特征结构性:进程的组成(程序+数据+PCB)共享性:不同进程共享同一程序;不同进程共享公共变量动态性:进程是程序在数据集合上的一次执行过程,是动态的,有生命周期由创建而产生由调度而执行由事件而等待由撤消而消亡进程的特征•独立性:进程是资源分配的一个独立单位;每个进程以各自独立的速度向前推进•交互性:指进程在执行过程中可能与其他进程产生直接或间接的关系•异步性:每个进程都以其相对独立的、不可预知的速度向前推进•并发性:任何进程都可以同其他进程一起向前推进进程何时创建?•用户登录􀂄•提交一个程序执行􀂄•由OS创建,以向用户提供服务(如:打印文件)􀂄•由已存在的一进程创建一个用户程序可创建成多个进程进程何时终止?•程序执行Halt指令􀂄•用户退出登录􀂄•进程执行一个中止服务请求•出错及失败因素进程中止的原因•正常结束􀂄•给定时限到􀂄•缺少内存􀂄•存储器出界􀂄•保护性出错(如:写只读文件)算术错􀂄超出时间􀂄(如:进程等待超过对某事件的最大值)进程中止的原因•I/O失败•无效指令•操作系统干预•如当死锁发生时•父进程请求中止某一子进程•父进程中止,所以子进程也中止程序与进程之间的区别•进程更能真实地描述并发,而程序不能•进程是由程序、数据和PCB等部分组成的􀂄•程序是静态的,进程是动态的􀂄•进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的􀂄•一个程序可对应多个进程,反之亦然•进程具有创建其他进程的功能,而程序没有想一想:生活中有没有类似程序和进程关系的示例呢?举例•一位有一手好厨艺的计算机科学家正在为他的女儿烘制生日蛋糕:他有做生日蛋糕的食谱,厨房里有所需的原料:面粉、鸡蛋、糖、香草汁等等。食谱-程序各种原料-输入数据计算机科学家-处理器厨师阅读食谱、取来各种原料、以及烘制蛋糕的一系列动作的总和-进程•现在假设计算机科学家的儿子哭着跑了进来,说他被一只蜜蜂螫了。计算机科学家就记录下他照着食谱做到哪儿了(保存进程的当前状态),然后拿出一本急救手册,按照其中的指示处理螫伤。这里,我们看到处理机从一个进程(做蛋糕)切换到另一个高优先级的进程(实施医疗救治),每个(进程)拥有各自的程序(食谱和急救书)。当蜜蜂螫伤处理完之后,计算机科学家又回来做蛋糕,从他离开时的那一步继续做下去程序与进程之间的区别2.3进程及其实现2.3.1进程的定义和属性2.3.2进程的状态和转换2.3.3进程的描述2.3.4进程切换与模式切换2.3.5进程的控制2.3.6操作系统的运行•进程的三种基本状态:运行,就绪,等待•进程在生命消亡前处于且仅处于三种基本状态之一•不同系统设置的进程状态数目不同三态,五态,七态,九态进程的三态模型及其转换•运行态(Running):进程占有CPU,并在CPU上运行􀂄•就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)􀂄•等待态(Blocked):阻塞态、封锁态、睡眠态指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)进程的三态模型及其转换运行态就绪态等待态选中落选出现等待事件等待事件结束其他状态新建态,终止态•挂起(suspend)状态进程没有占用内存空间处在挂起状态的进程映像在磁盘上(调节负载,对换)新建态•OS已完成为创建一进程所必要的工作􀂄已构造了进程标识符已创建了管理进程所需的表格􀂄但还没有置为就绪态,没有提交到就绪队列因为资源有限终止态•进程完成任务,到达正常结束点•因出现无法克服的错误而异常终止•被操作系统及有终止权的进程终止•两个步骤:善后处理回收资源并删除进程五态模型及其转换运行态就绪态等待态选中落选出现等待事件等待事件结束新建态终止态进程的挂起为什么要引入挂起状态?由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。进程的挂起例如:(1)系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。(2)进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。(3)定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统负荷。(4)父进程要求挂起后代进程,以进行某些检查和改正。(5)用户要求挂起自己的进程,以便进行某些调试、检查和改正。……因为挂起增加的两个状态•挂起就绪态(readysuspend):表明进程具备运行条件但目前在二级存储器中,当它被对换到主存才能被调度执行。•挂起等待态(blockedsuspend):表明进程正在等待某一个事件且在二级存储器中。挂起等待事件结束出现等待事件解除挂起挂起落选选中运行态就绪态等待事件结束终止态新建态挂起就绪态解除挂起挂起挂起等待态等待态提交提交具有挂起功能的进程状态及其转换关键转换•等待-挂起等待:当前不存在就绪进程,系统根据资源分配状况和性能要求选择等待进程对换出去,以便接收新的进程•挂起等待-挂起就绪:等待的事件完成•挂起就绪-就绪:主存中不存在就绪态进程,或者挂起就绪态进程具有比就绪态进程更高的优先级关键转换•就绪-挂起就绪:资源有限•挂起等待-等待:主存拥有足够空间,而某个挂起等待态进程具有更高优先级别,且得知该等待事件也即将发生•运行态-挂起就绪态:具有更高优先级的挂起等待态进程所等待事件完成后,需要抢占CPU,而此时主存空间不够•新建态-挂起就绪态:资源有限挂起进程的特征•该进程不能立即被执行。•挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。•进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。•结束进程挂起状态的命令只能通过操作系统或父进程发出。2.3进程及其实现2.3.1进程的定义和属性2.3.2进程的状态和转换2.3.3进程的描述2.3.4进程切换与模式切换2.3.5进程的控制2.3.6操作系统的运行操作系统的控制结构•操作系统为了有效地管理进程和资源,

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

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

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

×
保存成功