您好,欢迎访问三七文档
第二章进程描述与管理第二章进程描述与管理第二章进程管理2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程的同步问题2.5进程通信2.6线程第二章进程描述与管理第二章进程描述与管理前趋图前趋图(PrecedenceGraph)是一个有向无循环图,描述进程之间执行的前后关系。Pi→Pj,称Pi是Pj的直接前趋,称Pj是Pi的直接后继。2.1程序的顺序执行及其特征第二章进程描述与管理第二章进程描述与管理图2-2前趋图P1P3P8P9P4P2P5P6P7S1S2S3(a)具有九个结点的前趋图(b)具有循环的前趋图第二章进程描述与管理第二章进程描述与管理对于图2-2(a)所示的前趋图,存在下述前趋关系:P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,P4→P6,P4→P7,P5→P8,P6→P8,P7→P9,P8→P9P={P1,P2,P3,P4,P5,P6,P7,P8,P9}→={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)}第二章进程描述与管理第二章进程描述与管理2.1.1程序的顺序执行及其特征1.程序的顺序执行在未配置OS的系统中,程序的执行方式是顺序执行。仅当前一操作(程序段)执行完后,才能执行后继操作。例:在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。S1:a∶=x+y;S2:b∶=a-5;S3:c∶=b+1;(a)程序的顺序执行(b)三条语句的顺序执行I1C1P1I2C2P2S1S2S3第二章进程描述与管理第二章进程描述与管理2.程序顺序执行时的特征(1)顺序性:只有前一操作结束才能做后面操作(2)封闭性:程序独占资源,执行结果不受影响(3)可再现性:初始条件相同,结果相同第二章进程描述与管理第二章进程描述与管理2.1.3程序的并发执行程序的并发执行是指在一个CPU的前提下,两个或两个以上程序在一段时间内同时执行。它可以显著提高资源的利用率。第二章进程描述与管理第二章进程描述与管理1.程序的并发执行图2-3并发执行时的前趋图P1P2P3P4I1I2I3I4C1C2C3C4第二章进程描述与管理第二章进程描述与管理2.程序并发执行时的特征1)间断性2)失去封闭性3)不可再现性第二章进程描述与管理第二章进程描述与管理2.1.4进程的特征与状态(重点)进程(Process)意义:为了保证多个程序的并发执行,当某个程序进入内存开始运行时,将其改变为进程,从而保证与其他程序(进程)并发执行。进程是某个程序在一组OS数据集合基础上的一次运行过程。进程定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。第二章进程描述与管理第二章进程描述与管理进程运行所依赖的OS数据集合叫做“进程控制块”(PCB,ProcessControlBlock),即进程=程序+PCBPCB中存放了进程标识符、进程运行的当前状态、程序和数据地址、保存该进程运行时CPU的环境信息第二章进程描述与管理第二章进程描述与管理进程的特征动态性:是程序的一次并发执行过程,具有一定的生命周期。每个进程在执行过程中都会按“执行-暂停-执行”方式推进,因此可以对不同阶段的进程定义不同的状态。并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。引入进程的目的为了使进程与其它进程并发执行。第二章进程描述与管理第二章进程描述与管理独立性:任何进程都是一个程序的一次独立运行过程,也是系统进行资源分配和调度的单位。注意,同一个程序可以成为多个进程。异步性:进程按不可预知的速度向前推进,所以OS应提供相应的措施保证其并发性。结构性:每个进程都由代码、数据和PCB三部分组成。第二章进程描述与管理第二章进程描述与管理进程的三种基本状态就绪(Ready)状态:此时进程等待CPU,并获得了除CPU以外所有的运行所需资源。由于存在多个就绪进程,OS将它们排列成一个就绪队列。执行(Running)状态:进程获得了CPU,并正在运行的状态。单CPU系统中只能有一个进程处于执行状态。阻塞(Blocked)状态:进程因发生某事件而不能继续执行的状态。有时也称为“睡眠”或“等待”状态。由于存在多个不同原因的阻塞进程,系统将它们排列成多个队列第二章进程描述与管理第二章进程描述与管理进程的其它状态:为了更好地描述和管理进程,大多数OS都定义了更多的状态。(P39)新建状态(New):进程刚刚被创建时的状态,此时进程还没有进入就绪状态。终止状态(Terminated):进程运行结束(正常或非正常),但还没有最后消亡时的状态。第二章进程描述与管理第二章进程描述与管理进程状态之间的转换关系新建就绪结束进程调度时间片用完I/O操作或请求其它资源I/O操作结束或得到资源阻塞接纳运行结束执行第二章进程描述与管理第二章进程描述与管理调度程序进程C进程B进程A三个进程和调度程序之间的状态转换实例(多道程序+分时)=执行状态=就绪状态=阻塞状态第二章进程描述与管理第二章进程描述与管理3.挂起状态挂起状态(Suspended):将一个进程人为地停止下来,以便进行调试或进行其它处理。挂起状态和阻塞状态的区别:只有人为干预,才能让挂起状态的进程继续执行,而阻塞状态的进程可以自动转入执行状态。第二章进程描述与管理第二章进程描述与管理引入挂起状态的原因(1)终端用户的请求。(2)父进程请求。(3)负荷调节的需要。(4)操作系统的需要。第二章进程描述与管理第二章进程描述与管理进程状态的转换(1)活动就绪readya→静止就绪readys。(2)活动阻塞blockeda→静止阻塞blockeds。(3)静止就绪readys→活动就绪readya。(4)静止阻塞blockeds→活动阻塞blockeda。Suspend原语未被挂起的就绪状态Suspend原语Active原语第二章进程描述与管理第二章进程描述与管理具有挂起状态的进程状态转换活动就绪调度到时I/O操作或请求其它资源I/O操作结束或得到资源活动阻塞执行静止就绪静止阻塞挂起激活挂起I/O操作结束或得到资源激活挂起具体系统中转换关系定义不完全相同第二章进程描述与管理第二章进程描述与管理Windows系统的进程状态转换图活动就绪调度超时等待事件事件出现执行就绪挂起挂起提交激活挂起创建阻塞挂起阻塞提交事件出现激活挂起退出释放第二章进程描述与管理第二章进程描述与管理Unix系统进程状态转换关系的实质新建就绪结束调度I/O操作或请求其它资源I/O操作结束或得到资源阻塞接纳运行结束执行挂起挂起激活第二章进程描述与管理第二章进程描述与管理2.1.5进程控制块1.进程控制块的作用使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的单位,一个能与其它进程并发执行的进程。或者说OS是根据PCB来对并发执行的进程进行控制和管理。第二章进程描述与管理第二章进程描述与管理进程控制块(PCB)PCB是和内存中的程序并存的结构性数据,用来保存进程的所有动静态信息,PCB常驻内存。PCB是进程存在的唯一标志:创建进程时,首先建立PCB,然后才为程序分配内存。进程状态等信息都保存在PCB中,因此在调度进程时,OS根据PCB的内容确定进程的具体状态。进程切换时,当前进程的所有运行信息保存在PCB中。进程之间交互时,通过PCB传递信息。进程进入终止状态后,先释放内存,后释放PCB。第二章进程描述与管理第二章进程描述与管理PCB的内容进程标识信息:包括外部标识符(程序名称)和内部标识符(编号)。处理机状态信息:进程的执行被中断时,将CPU的通用寄存器、指令寄存器、程序状态字PSW以及用户栈指针保存在PCB中,以便在进程重新返回执行状态时恢复内容。进程调度信息:包括状态、优先级、阻塞原因(事件)、进程运行时间等。进程控制信息:包括程序和数据地址、进程同步和通信机制、资源清单、链接指针第二章进程描述与管理第二章进程描述与管理PCB和进程之间的关系程序数据PCB进程第二章进程描述与管理第二章进程描述与管理典型的PCB定义实例:structPCB{char*id1;longid2;structCSCPU;intstate;intpriority;char*code;char*data;…}structCS{/*处理机状态信息*/unsignedlongEAX;unsignedlongEBX;…unsignedlongPSW;unsignedlongIP;char*SP;…}第二章进程描述与管理第二章进程描述与管理链接形式PCB50PCB14PCB23PCB67PCB48PCB810PCB311PCB100PCB79PCB912PCB110…执行进程:5就绪队列:1阻塞队列:2空闲队列:6第二章进程描述与管理第二章进程描述与管理索引形式PCB5PCB1PCB2PCB6PCB4PCB8PCB3PCB10PCB7PCB9PCB11…执行进程指针就绪表指针阻塞表指针空闲表指针第二章进程描述与管理第二章进程描述与管理2.2进程的控制操作系统内核(Kernel)操作系统内核是操作系统最核心的部分,是计算机硬件的第一层扩充软件,包括中断处理程序、设备驱动程序、进程调度、时钟管理等程序,常驻内存。主要功能中断处理、时钟管理,原语管理,进程管理、存储器管理、设备管理。内核中有一部分过程是“原语操作”(AtomicOperation),即该过程的执行只要开始了,就不可以中断,直到该过程运行结束。操作系统内核不是一个个独立的进程,而是每个用户进程的组成部分。当执行用户进程的代码时,系统处在用户态;否则处在核心态。第二章进程描述与管理第二章进程描述与管理进程1进程2进程3…进程n操作系统内核程序低地址程序高地址核心态用户态系统调用或中断核心地址空间用户地址空间进程地址空间第二章进程描述与管理第二章进程描述与管理引起创建进程的事件(P44)(1)用户登录。(2)作业调度。(3)提供服务。(4)应用请求。第二章进程描述与管理第二章进程描述与管理进程的创建过程申请空白PCB,填写内部标识符为新进程分配内存资源填写PCB其它内容将新进程的PCB放到就绪队列末尾进程的终止过程查找PCB,读取其状态如果是执行状态,终止其执行,设置调度标志为真如果有子孙进程,将其全部终止回收内存及其它资源还给父进程或系统将PCB放入空闲队列第二章进程描述与管理第二章进程描述与管理进程的阻塞过程阻塞原因请求系统服务而得不到满足启动某种操作(如I/O)后需要等待完成等待合作进程的运行结果无事可做阻塞过程进程调用某种系统调用,而该系统调用判断出所要求的功能不能得到满足,进而调用阻塞原语block()阻塞原语将进程状态改为“阻塞”,并把对应的PCB放到与阻塞原因对应的阻塞队列末尾阻塞原语调度新的进程由此可见,一个进程阻塞,不是因为其它原因,而是执行过程中调用了阻塞原语。第二章进程描述与管理第二章进程描述与管理进程的唤醒过程阻塞进程等待的事件发生,并由某个进程去处理;事件处理代码调用唤醒原语Wakeup()唤醒原语将所有等待该事件的进程PCB移到就绪队列,并把状态改为就绪状态第二章进程描述与管理第二章进程描述与管理-当出现了引起进程挂起的事件时,系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。挂起原语的执行过程是:1、检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;2、对于活动阻塞状态的进程,则将之改为静止阻塞。3、若被挂起的进程正在执行,则转向调度程序重新调度。第二章进程描述与管理第二章进程描述与管理进程的激活过程当发生激活进程的事件时,系统将利用激活原语active()将指定进程激活。1、激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活
本文标题:进程管理 第2章
链接地址:https://www.777doc.com/doc-3837232 .html