您好,欢迎访问三七文档
第二章进程管理2020/2/25太湖学院机电系22.1.1程序的顺序执行及特征一、程序执行有固定的时序。(P34,图2-1)二、特征:•顺序性、封闭性、可再现性2.1进程的基本概念I1C1P1I2C2P22020/2/25太湖学院机电系32.1.2前趋图定义•有向无循环图•表示方式:•(1)p1p2•(2)={(p1,p2)|p1必须在p2开始前完成}•(图2-2P35)•节点表示:一条语句,一个程序段,一进程。P1P2P3P42020/2/25太湖学院机电系4•试画出下面几条语句的前趋图:S1:a=5-x;S2:b=a*x;S3:c=4*x;S4:d=b+c;S5:e=d+3。2020/2/25太湖学院机电系52.1.3程序的并发执行一、多个程序的并发执行(可行性分析)I1I2I3I4C1C2C3C4P1P2P3P4t思考:①哪些程序段的执行必须是顺序的?为什么?②哪些程序段的执行是可并行的?为什么?2020/2/25太湖学院机电系6程序的并发执行(2)•二、特征•间断性•失去封闭性:主要由共享资源引起•不可再现性:P37例,设N的初值为n。有2个循环程序A和B,它们共享一个变量N,程序A每执行一次时,都要做N:=N+1;B则每次要执行Print(N),然后再做N:=0.若程序A,B以不同的速度运行有以下三种不同的结果:N:=N+1在print(N)和N:=0之前,则N值分别为n+1,n+1,0.N:=N+1在print(N)和N:=0之后,则N值分别为n,0,1.N:=N+1在print(N)和N:=0之间,则N值分别为n,n+1,0.2020/2/25太湖学院机电系72.1.4进程的特征和状态1.进程的特征和定义一、定义:•1978年,全国操作系统会议:进程是一个具有一定独立功能的程序(关于某个数据集合的一次运行活动)对某个数据集在处理机上的执行过程和分配资源的基本单位。•进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。(P38)•系统中能独立运行并作为资源分配的基本单位。*程序是指一组操作序列*数据集则是指接受程序规定操作的一组存储单元的内容2020/2/25太湖学院机电系82.1.4进程的特征和状态(2)二、特征:1.结构特征•进程:由程序段、数据段及进程控制块三部分构成,总称“进程映像”。2.动态性•由“创建”而产生,由“调度”而执行;由得不到资源而阻塞;由撤消而消亡。(而程序是静态的)。3.并发性•只有建立了进程,才能并发执行。4.独立性•独立运行,独立获得资源,独立接受调度5.异步性(断断续续向前推进)2020/2/25太湖学院机电系9进程与程序的区别进程程序动态静态暂时永久并行(宏观)微观(并发)串行PCB---------多个一个一个多个2020/2/25太湖学院机电系10例题:设有2个程序,程序P打印工资报表的程序,程序C是计算1000以内所有素数并显示最后结果的程序。(1)在不支持进程运行环境的操作系统下运行。(2)在支持进程运行的操作系统环境下运行。运行过程如下:①在不支持进程运行的环境下:依次运行程序P、程序C。可以看到先是打印机不停地打印工资报表,打完后,接着运行程序C,不停地计算,最后显示计算结果。②在支持进程运行的环境下:创建进程P和C,由于两个进程分别是I/O量较大和计算量较大的进程,故在系统进程调度的控制下,两个进程并发执行。可以看到打印机不断地打印工资报表,而处理机不停地计算,最后屏幕显示计算的结果。2020/2/25太湖学院机电系112.1.4进程的特征和状态(3)为了描述和控制进程的运行,系统为每一个进程定义了一个数据结构,即进程控制块PCB(ProcessControlBlock),系统根据PCB,感知该进程的存在,故称PCB是进程存在的标志。通常在一个实际系统中,PCB的总数时固定的,该数目规定了系统所允许拥有的进程数目,同时将所有的PCB形成一个结构数组(或称PCB表),存放在系统的数据区里。一个进程的PCB机构全部或部分常驻内存。进程的静态描述由三部分组成:PCB,有关程序段,数据集。2020/2/25太湖学院机电系122.1.4进程的特征和状态(3)2.进程的三种基本状态就绪状态、执行状态、阻塞(等待)状态就绪态:等待系统分配处理机以便运行。即获得了处理机以外的所有资源,一旦由调度选中得到处理机可以立即执行的状态。运行态:占有处理机正在执行。在单处理机的情况下,该状态的进程只有一个。等待态:等待某个事件的完成。进程因等待某事件而放弃处理机进入等待该事件的状态。2020/2/25太湖学院机电系13就绪阻塞运行时间片完(剥夺处理机)进程调度发生等待事件等待事件结束图2-5进程的三种基本状态及其转换创建2020/2/25太湖学院机电系142143执行态就绪态等待态1、某系统的进程状态转换图如上图所示,请回答:(1)引起各种状态转换的典型事件有哪些?(2)当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一个进程作一次状态转换。在什么情况下,当一个进程发生转换3时,能立即引起另一进程发生转换1?试说明是否会发生这些因果转换:2→1;3→2;4→1。2020/2/25太湖学院机电系152.1.4进程的特征和状态(4)3.挂起状态(被换出内存的状态,它所要解决的问题就是某些进程不参与资源竞争,挂起就是静止)•引入原因:•终端用户请求•父进程请求(考察、修改、协调子进程)•负荷调节需要(符合过重,把暂时不要的进程挂起)•操作系统需要(检查资源使用情况)•进程状态的转换•活动就绪静止就绪•活动阻塞静止阻塞•静止就绪活动就绪•静止阻塞活动阻塞2020/2/25太湖学院机电系16图2-6具有挂起状态的进程状态图运行活动就绪静止就绪活动阻塞静止阻塞激活挂起激活挂起唤醒唤醒挂起请求I/O2020/2/25太湖学院机电系172.1.5进程控制块1.进程控制块的作用•是进程存在的唯一标志;•记录进程的信息PCB(processcontrolblock)常驻内存2.进程控制块中的信息•标识(描述信息)、处理机状态(CPU现场保护)、进程调度信息、进程控制信息pid进程状态现场优先级阻塞原因程序地址同步机制资源清单链接指针2020/2/25太湖学院机电系18⑴描述信息(标识)•进程名或进程标识符•用户名或用户标识符(指示拥有该进程的用户)•家族关系(父进程和子进程的标识符)⑵调度信息•进程的当前状态•优先级•调度所需的其他信息•事件(执行-等待)2020/2/25太湖学院机电系19⑶控制信息•程序和数据的地址•进程同步和通信机制•资源清单•链接指针(同一队列的下一个PCB的首地址)⑷处理机状态(CPU现场保护)•通用R•PC指令计数器•程序状态字PSW•用户栈指针2020/2/25太湖学院机电系20CPU现场保护信息(进程上下文)当处理机被中断时,各种Register的内容都必须保存在被中断进程的PCB中,以便在改进程重新执行时,能从断点继续执行。(1)通用R(用户可视寄存器)8-32个(在RISC结构中,可超过100)(2)PC(next)(3)PSW:含状态信息(条件码的执行方式,中断屏蔽标志)(4)用户栈指针:每个用户进程有一个或若干个与之相关的系统栈,用户存放过程和系统调用参数和调用地址。由于PCB中包含较多的信息(占几百-几千Byte),在有的系统中只含最常用部分(标识、进程状态信息、用于调度的信息)常驻内存,其它部分则存在于外存之中,待该进程将要执行时,与其它数据一起装入内存。2020/2/25太湖学院机电系21进程上下文进程上下文实际上是进程执行活动全过程的静态描述。进程的上下文是其相应的程序地址空间的内容,硬件R的内容以及与该进程有关的核心数据结构组成的。具体包括:计算机系统中与该进程有关的各种R值,程序段经过编译,连接后形成的机器指令代码段(text)数据段及各种堆栈的值和PCB块。2020/2/25太湖学院机电系223.PCB的组织方式在一个系统中,通常可拥有数十个、数百个,乃至数千个PCB:为能对它们进行有效的管理,应当用适当的方式将它们组织起来。•目前常用的组织方式有两种:链接方式,索引方式。•系统中进程队列分类:就绪队列、等待队列、运行队列。就绪队列:整个系统一个。等待队列:每个等待事件一个。运行队列:单机系统中整个系统一个。2020/2/25太湖学院机电系232.1.5进程控制块(2)•链接方式把具有相同状态的PCB,用其中的链接字,链接成一个队列。执行指针就绪队列指针阻塞队列指针空闲队列指针PCB14PCB23PCB30PCB48PCB5PCB67PCB79PCB80PCB911多个2020/2/25太湖学院机电系242.1.5进程控制块(3)•索引方式系统根据所有进程的状态,建立几张索引表,例如,就绪索引表,阻塞索引表等,并把各索引表在内存的首地址记录于内存中的一些专用库文件中,在内存索引表的表目中,记录具有相应状态的PCB在PCB表中的地址。2020/2/25太湖学院机电系25PCB1PCB2PCB3PCB4PCB5PCB6PCB7执行指针就绪表指针阻塞表指针就绪索引表阻塞索引表2020/2/25太湖学院机电系262.2进程控制为了防止操作系统及关键数据如PCB等,受到用户程序有意或无意的破坏,通常将处理机的执行状态分成系统态和用户态两种:(1)系统态,又称核心态。它具有较高的特权,能执行一切指令,访问所有寄存器和存储区。(2)用户态,具有较低特权的执行状态,它只能执行规定的指令,访问指定的寄存器和存储区。OS内核通常是运行在系统态的,而进程控制是由OS内核实现的。OS内核:运行在系统态的,包括对进程操作和控制的最基本的原语和数据结构。2020/2/25太湖学院机电系27概念进程控制:就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成各进程状态间的转换,从而达到多进程高效率并发执行和协调,实现资源共享的目的。原语(AtomicOperation):系统态下执行的某些具有特定功能的程序段称为原语。机器指令级:不可分割,不允许初始化功能级:不允许并发执行(原语本身由若干条指令组成,要么全做,要么全不做)在os中,大都把进程控制用程序段做成原语。比如:创建原语、撤消原语、阻塞原语、唤醒原语、挂起原语、激活原语2020/2/25太湖学院机电系282.2.1进程的创建一、进程树:•描述了进程的家族关系•子进程可继承父进程的资源,撤消时应归还给父进程,父进程在撤消时也应该撤消全部子进程。(递归)二、引起创建进程的事件:1.用户登录:•为终端用户建立一进程2.作业调度:(不是进程调度)•为被调度的作业建立进程3.提供服务:•如要打印时建立打印进程4.应用请求:•由应用程序建立多个进程2020/2/25太湖学院机电系292.2.1进程的创建(2)三、进程的创建:(creat原语)•1.申请空白PCB(一个系统的PCB是有限的)•2.为新进程分配资源(不同于一般的分配,PCB-LIST在一个特殊区域)•3.初始化PCB•4.将新进程插入就绪队列。2020/2/25太湖学院机电系30创建原语Procedurecreate(n,s0,P0,m0,R0,acc)begini:=getinternalname(n);获得内部名i.id:=n;填外部名i.priority:=P0;填优先级表i.CPUstate:=s0;填CPU初始状态i.mainstore:=m0;填写主存区域i.resources:=R0;填写资源清单i.status:=readys;填写进程状态j:=EP;获取调用者内部标识i.parent:=j;填入i进程的父进程jj.progeny:=φ;i的家族指针为空i.progeny:=i;把i填入其父进程PCB的家族指针处i.state:=RQ;i所在状态队列首指针insert(RQ,i);把i进程插入RQ队尾end2020/2/25太湖学院机电系312.2.2进程的撤消(终止)(一)、引起
本文标题:第二章 进程管理
链接地址:https://www.777doc.com/doc-3995613 .html