三章进程管理.ppt
《三章进程管理.ppt》由会员分享,可在线阅读,更多相关《三章进程管理.ppt(98页珍藏版)》请在三一办公上搜索。
1、2023/9/6,1,第三章 进程管理-1,3.1 进程的基本概念 3.2 进程的基本状态 3.3 进程的描述与管理 3.4 进程控制,重点:本章为本书的重点,难点,2023/9/6,2,3.1 进程的基本概念,3.1.1 进程概念的引入,C编译程序,C,C,程序A,程序B,时间片用完,中断,可再入程序,2023/9/6,3,进程:一段功能完整的程序在处理机上的执行过程。,3.1.2 进程与程序的区别,进程是动态的,程序是静态的进程是暂时的概念,程序是永久的概念进程有自己的数据结构PCB进程和程序不是一一对应的。,2023/9/6,4,3.1.3 进程的定义,进程:是一个具有独立功能的程序对某
2、个数据集在处理 机上的执行过程和分配资源的基本单位.,程序:指一组操作序列.,数据集:接受程序规定操作的一组存储单元的内容.,进程的特征,动态性,并行性,独立性,异步性,2023/9/6,5,进程的结构特征:PCB,程序代码段,数据段,程序,数据,PCB,进程的结构特征,2023/9/6,6,进程与程序的区别与联系,2023/9/6,7,3.2 进程的基本状态,为了描述和控制进程的运行,系统为每个进程定义了一个数据结构,即进程控制块PCB(Process Control Block),系统根据PCB,感知该进程的存在,故亦称PCB是进程存在的标志.,PCB的作用:,感知进程的存在记录进程的状态
3、或有关信息,通常在一个实际系统中,PCB的总数是固定的,该数目规定了系统所允许拥有的进程数目,同时将所有的PCB形成一个结构数组(或称PCB表),存放在系统的数据区中.,一个进程的PCB机构全部或部分常驻内存.,2023/9/6,8,3.2.1 进程的基本状态,1.进程状态,就绪态:等待系统分配处理机以便执行时 所处的状态.即获得了除处理机之外的所以资源,一旦由调度 程序选中得到处理机就可以立即执行的状态.运行态:正在处理机上执行时所处的状态.在单CPU情况下,处于该状态的进程数只有一个.等待态:等待某个事件的完成时进程所处的状态.除了 CPU之外其他的资源也没有得到满足,2023/9/6,9
4、,运行,就绪,等待,进程调度策略,时间片用完,等待某一事件发生,等待事件结束,剥夺处理机,创建,撤销,进程的三种基本状态及其转换,2023/9/6,10,进程控制块,3.3 进程的描述与管理,1.OS感知进程存在的唯一标识-PCB,2.记录了OS所需的用于描述进程及控制进程全部信息.在PCB中主要包括下面信息:1)进程描述信息 2)进程控制信息 3)资源信息 4)现场保护信息,1)进程描述信息:进程名或进程标识符.家族关系.,2023/9/6,11,2)进程控制信息,进程的当前信息:指明进程的当前状态,作为进程调度和对换的依据.进程优先级:调度依据,是进程占有处理机的重要依据.程序开始地址:便
5、于执行这段程序.各种计时信息:记录资源占用的信息.通信信息:保证进程之间相应的联系.,3)资源管理信息,占用内存大小及其管理用数据结构指针.对换或覆盖用的有关信息.共享程序的大小及起始地址.I/O设备号,传送的数据长度,缓冲区地址,缓冲区长度及所有设备的有关数据结构指针.指向文件系统的指针及有关标识符.,2023/9/6,12,4)CPU现场保护信息(进程上下文),通用寄存器的用户PCPSW:含状态信息(条件码的执行方式,中断屏蔽标识)。用户栈指针:为每个用户进程有一个或若干隔与之相关的系统栈,用于存放过程和系统调用参数和调用地址。,当处理机被中断时,各种寄存器的内容都必须保存在被中断进程的P
6、CB中,以便在该进程重新执行时,能从断点继续执行.,由于PCB中包含较多的信息(占几百几千BYTE),在有的系统中只含PCB中最常用部分(CPU现场保护部分,进程描述信息,控制信息)常驻内存,其他部分则放在外存中,待该进程将要执行时与其他数据一起装入内存。,2023/9/6,13,*进程上下文,是对进程动态活动的静态描述,进程的上下文是其相应的程序地址空间的内容,硬件寄存器的内容以及与该进程有关的核心数据结构(系统堆栈,用户堆栈)构成的。,包括:计算机系统中与执行该进程有关的各种寄存器值;程序段经过编译连接后形成的机器指令代码段(text);数据段以及各种堆栈的值和PCB块)。,例:UNIX进
7、程上下文,用户级上下文,系统级上下文,寄存器上下文,*进程上下文,2023/9/6,14,*进程的组成,进程PCB程序(代码和数据),进程的表记,PCB,程序,PCB,程序,代码,2023/9/6,15,*PCB的组成方式,在一个系统中,通常可以拥有数十个以及若干个PCB,为了能对他们进行有效的管理,应当用适当的方式将他们组织起来。,PCB目前常用的组织方式:链接方式;索引方式,系统中进程队列分类:就绪队列,等待队列,运行队列。就绪队列:整个系统一个 等待队列:每一个等待事件一个。运行队列:单机系统中整个系统一个。,2023/9/6,16,链接方式,PCB链接队列示意图,把具有相同状态的PCB
8、,用其中的链接字链接成一个队列.,线性表,2023/9/6,17,按索引方式组织PCB,2.索引方式,系统根据所有进程的状态,建立几张索引表,如就绪索引表,阻塞索引表,并把各索引表在内存的首地址记录于内存中的一些专用库文件中.,2023/9/6,18,3.4 进程控制,为了防止OS及关键数据如PCB等,受到用户程序有意或无意的破坏,通常将处理机的执行状态分为:系统态和用户态.,系统态(核心态):具有较高的特权,能执行一切指令,访问所有的寄存器和存储区.用户态:具有较低特权的执行状态,只能执行规定的指令,访问指定的寄存器和存储区.,进程控制:就是系统使用一些具有特定功能的程序段来创建、撤销进程以
9、及完成进程状态间的转换,从而达到多进程高效率并发执行和协调实现资源共享的目的。,原语(Atomic Operation):系统态下执行的某些具有特定功能的程序段。,2023/9/6,19,.创建原语,为此进程分配进程控制块,为此进程分配资源,把此进程插入到就绪队列中,等待CPU的调度,.引起创建进程的事件,用户登陆作业调度提供服务应用请求,3.4.1.进程的创建,2023/9/6,20,1.引起进程终止的事件,正常结束异常结束外界干预,3.4.2.进程的终止,Procedure Destroy(n)begin sched=false;i=获取n进程内部名 kill(i);if(sched)sc
10、hedure else continue(当前正在执行的进程);end,2023/9/6,21,.进程创建原语的描述形式,create(n,So,Po,Mo,Ro,acc)Begin i=get internal name(n);/*获得内部名*/i.id=n;/*填外部名*/i.priority=Po;/*设优先级*/i.Cpustate=So;/*填CPU初始状态*/i.mainstore=Mo;/*填写主存区域*/i.resource=Ro;/*填写资源清单*/i.status=readys;/*填写进程状态*/j=EP;/*获取调用者内部标识*/i.parent=j;/*填写i进程的父
11、进程j*/j.progency=;/*置i的家族指针为空*/i.progency=i;/*把i填入其父进程PCB的家族指针处*/i.state=RQ;/*置i所在状态队列首指针*/insert(RQ,i);/*把i进程插入到RQ对尾*/End,i,2023/9/6,22,Procedure kill(i)begin if i-status=“running”begin stop(i);sched=true;end remove(i-state,i);将被撤销进程i从i.state所指示的队列中去掉.for all s(i.progency)do kill(s);for all r(i.main
12、storeUi.resoure)do if owner(r)insert(r.semaphore,r.data);归还属于父进程资源且插入父资源清单.for all Rcreated resoure(i)do remove descriptor(R);撤销自己的资源清单并归还系统 remove process control block(i);END,2023/9/6,23,根据被终止进程的标识符,从PCB链表中检索出该进程的PCB,从中读出该进程的状态。若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。若该进程还有子孙进程,还应将其所
13、有子孙进程予以终止,以防他们成为不可控的进程。将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统。将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。,2.进程的终止过程,2023/9/6,24,3.4.3 进程的挂起和激活,挂起:让进程暂时不参与资源的竞争,1.挂起原语的方式,把挂起原语调用者本身挂起,即自己挂起自己挂起某个标识符的进程将某个指定标识符的进程及其全部或部分子孙挂起.挂起用以保存N进程的PCB副本的内存区,以备参考.,Procedure suspend(n,a)Begin i=get internal name(n);s=i.status
14、;if i.status=“running”stop(i);a=copy pcb(i);/*相应的PCB保留起来以便查看是属于哪一种挂起.if s=blocka i.status=Blocks else i.status=readys;if s=running schedule else continue;End,2023/9/6,25,当出现了引起进程挂起的事件时,比如,用户进程请求将自己挂起,或父进程请求将自己的某个子进程挂起,系统将利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起。挂起原语的执行过程是:首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于
15、活动阻塞状态的进程,则将之改为静止阻塞。为了方便用户或父进程考查该进程的运行情况而把该进程的PCB复制到某指定的内存区域。最后,若被挂起的进程正在执行,则转向调度程序重新调度。,2.进程的挂起,2023/9/6,26,.激活原语的激活方式,激活指定标识符的进程激活某进程及其子孙,Procedure active(n)Begin i=get internal name(n);if i.status=“readys”i.status=readya else i.status=blocka;if i.status=“readya”scheduler;else continue;End,2023/9/
16、6,27,当发生激活进程的事件时,例如,父进程或用户进程请求激活指定进程,若该进程驻留在外存而内存中已有足够的空间时,则可将在外存上处于静止就绪状态的进程换入内存。这时,系统将利用激活原语active()将指定进程激活。激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新调度;否则,立即剥夺当前进程的运行,把处理机分配给刚被激活的进程。,.进程的激活,202
17、3/9/6,28,.挂起引起的原因,协调负载过重某些设备故障 调试程序,具有挂起状态的进程状态图,2023/9/6,29,1.引起阻塞和唤醒的事件,请求系统服务启动某种操作新数据尚未到达无新工作可作.,3.4.4 进程的阻塞与唤醒,Procedure Block(n)Begin i=EP;从执行进程的指针EP获得调用者内部标识符 stop(i);i.status=blocka;修改该进程的状态 i.state=WQ(r);找到相应的插入队列 insert(WQ(r),i);把i插入到WQ队尾 scheduler;转调度程序End,.阻塞原语,2023/9/6,30,正在执行的进程,当发现上述某
18、事件时,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。可见,进程的阻塞是进程自身的一种主动行为。进入block过程后,由于此时该进程还处于执行状态,所以应先立即停止执行,把进程控制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列。如果系统中设置了因不同事件而阻塞的多个阻塞队列,则应将本进程插入到具有相同事件的阻塞(等待)队列。最后,转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换,亦即,保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU的环境。,2.进程阻塞的过程,2023/9/6,31,唤醒原语:由于资源的释放才能利
19、用此资源把某些因等待 此资源而被阻塞的进程唤醒,Procedure Wakeup(n)Begin i=get internal name(n);找到相应的给定资源进程N并获取N进程的内部名 remove(WQ(r),i);把i进程从等待队列r中去除.i.status=readys;置i进程为就绪状态 i.state=RQ;把i进程插入到就绪队列 insert(RQ,i);把i插入到RQ队尾 continue;End,2023/9/6,32,当被阻塞进程所期待的事件出现时,如I/O完成或其所期待的数据已经到达,则由有关进程(比如,用完并释放了该I/O设备的进程)调用唤醒原语wakeup(),将等
20、待该事件的进程唤醒。唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。,3.进程唤醒过程,2023/9/6,33,相交进程:多个并发进程在逻辑上存在着相互关系,无关进程(不相交进程):在逻辑上无任何联系的进程,.进程间的作用,直接作用:进程间的相互联系是有意识的安排的.,间接作用:进程间要通过某种中介发生联系,是无意识的.,3.5 进程间的相互作用,.进程间的联系,相交进程:多个并发进程在逻辑上存在着相互关系,无关进程(不相交进程):在逻辑上无任何联系的进程,进程间的联系,进程的同步机制-信号量及P.V
21、操作(解决进程同步互斥问题),2023/9/6,34,进程间的相互联系,2023/9/6,35,3.5.1 进程的互斥,由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系未进程的互斥.反映在资源的使用本身时排它的,从而引起进程间资源的竞争.,临界资源(critical resource):,一次只允许一个进程使用的资源(或者排它性使用的资源),2023/9/6,36,与时间有关的错误,.顺序程序特征,.程序的顺序执行 一条指令执行结束之后,下一条指令才开始.或者说一条指令的执行应该在它前一条指令的执行结果的基础之上才能进行。,顺序性,允许环境的封闭性,
22、运行结果的确定性,运行结果的可再现,2023/9/6,37,例:,同学甲,同学乙,if 有空椅子 then 坐下,if 有空椅子 then 搬走,造成的结果,运行结果的不确定性不能保证运行环境的封闭性不能保证顺序性运行结果的不可再现性,2023/9/6,38,.并行程序的特征,共享性并发性随机性,主机,A,B,C,D,时间片到,A进程,B进程,if(x0)x=x-1;.,if(x0)x=x-1;.,.例1:民航售票,2023/9/6,39,.临界区(互斥区):Critical Section,把程序当中具有共享资源并且对共享资源进行操作的这段程序,或者说在进程中涉及到临界资源的程序段叫做临界区
23、.,a=a+1print(a),a=a-1print(a),P1,P2,P3,If a0 a=a+1;Else a=a-1;,2023/9/6,40,程序段1,程序段2,程序段3,共享变量,2023/9/6,41,使用临界区的原则,有空让进:当临界区中无进程时,任何有权使用临界区的进程可进入,无空等待:不允许两个以上的进程同时进入临界区.,多中选一:当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中一个进入临界区,其他进程必须等待.,有限等待:任何进入临界区的进程要求在有限的时间内得到满足.,让权等待:处于等待状态的进程应该放弃占用CPU,以便使得其他进程 有机会得到CPU的使用权
24、.,2023/9/6,42,3.5.2 进程互斥的两种解决方法,.由竞争各方平等协商,.引人一进程管理者,由管理者来协调竞争各方对互斥资源的使用.,具体办法:硬件(当一个进程进入临界区,就屏蔽所有中断)软件(用编程解决,但常常忙等待),2023/9/6,43,进程互斥的软件方法,通过平等协商方式实现进程互斥的最初方法是软件方法.,软件方法1:,While(free)free=true;,free=false;,临界区,free:表示临界区标志 true:有进程在临界区 false:无进程在临界区(初值),其基本思路:是在进入临界区检查和设置一些标志,如果已有进程在临界 区,则在进入区通过循环检
25、查进行等待;在退出区修改标志。,问题:设置什么标志和如何检查标志。,2023/9/6,44,软件方法2:,While(not turn);,Turn=false,临界区,turn:true表示P进入临界区 false表示Q进程临界区,P:,While(turn);,Turn=true,临界区,Q:,2023/9/6,45,软件方法3:,Pturn=true;While(qturn);,Pturn=false,临界区,Pturn,qturn:初值为false P进入临界区的条件:pturn not qturn Q进入临界区的条件:not Pturn qturn,P:,Qturn=true;Whi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 管理
链接地址:https://www.31ppt.com/p-5937799.html