《操作系统汤子英第二章进程管理-高中信息技术课件教案-人教版.ppt》由会员分享,可在线阅读,更多相关《操作系统汤子英第二章进程管理-高中信息技术课件教案-人教版.ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2/13/2023第三章第三章进程管理概述概述进程的描述进程的描述进程控制进程控制线程线程进程互斥和同步进程互斥和同步进程间通信进程间通信死锁问题死锁问题进程其他方面的举例进程其他方面的举例为了描述程序在并发执行时对系统资源的共享,需要为了描述程序在并发执行时对系统资源的共享,需要一个一个描述程序执行时动态特征描述程序执行时动态特征的概念,这就是的概念,这就是进程进程。本章将讨论本章将讨论进程概念、进程控制进程概念、进程控制和和进程间关系进程间关系。前趋图前趋图:是一个有向无循环图。前趋图前趋图用于描述进程之间执行的前后关系。图中的每个结点结点可用于描述一个程序段或进程,乃至一条语句一个程序段
2、或进程,乃至一条语句;结点间的有向边有向边则用于表示两个结点之间存在的偏序或前趋关系“”。节点节点概述:概述:图21(a)中存在着这样的前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6P8,P7P9,P8P9图2-1前趋图或表示为:P=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(b)中却有着下述的前
3、趋关系:S2S3,S3S2图2-1前趋图3.1.1程序的顺序执行程序的顺序执行图2-2程序的顺序执行S1:a=x+y;S2:b=a-5;S3:c=b+1;试想S1、S2、S3三条语句以何顺序执行?3.1.1程序的顺序执行程序的顺序执行程序顺序执行时的特征程序顺序执行时的特征(1)顺序性顺序性:按照程序结构所指定的次序(2)(2)封闭性封闭性(运行时候独占处理机资源,运行结果不受外界影响)程序可再现性:(3)(3)可再现性可再现性(初始条件相同,结果相同)3.1.2程序的并发执行及其特征程序的并发执行及其特征3.1.2程序的并发执行程序的并发执行程序并发执行的程序并发执行的目的目的:提高计算机的
4、处理能力提高计算机的处理能力提高资源利用率提高资源利用率分为两种分为两种形式形式:多道程序环境下的多道程序的并发执行多道程序环境下的多道程序的并发执行在某道程序的几个程序段中,包含可同时执在某道程序的几个程序段中,包含可同时执行或可颠倒顺序执行的代码行或可颠倒顺序执行的代码。3.1.2程序的并发执行程序的并发执行定义定义:程序的并发执行是指一组在逻辑上互相独:程序的并发执行是指一组在逻辑上互相独立的程序或程序段在立的程序或程序段在执行时间上客观上互相重叠执行时间上客观上互相重叠,即一个程序或程序段的执行尚未结束,另一个程即一个程序或程序段的执行尚未结束,另一个程序(段)的执行已经开始的执行方式
5、序(段)的执行已经开始的执行方式。并发并发:在一段时间内的同时并行:在一段时间内的同时并行并行并行:在同一物理时刻的同时:在同一物理时刻的同时3.1.2程序的并发执行程序的并发执行CPU外设外设请求带输入请求带输入启动带启动带磁带输入磁带输入 结束中断结束中断中断处理中断处理请求磁盘输入请求磁盘输入启动盘启动盘结束中断结束中断中断处理中断处理CPU外设外设请求盘输入请求盘输入启动盘,调度启动盘,调度B请求带输入请求带输入启动带启动带结束中断结束中断中断处理中断处理调度调度A结束中断结束中断中断处理中断处理调度调度B时间时间t用户程序用户程序监督程序监督程序磁盘设备磁盘设备磁带设备磁带设备用户程
6、序用户程序A用户程序用户程序B监督程序监督程序磁盘设备磁盘设备磁带设备磁带设备3.1.2程序的并发执行程序的并发执行图2-3并发执行时的前趋图在该例中存在下述前趋关系:IiCi,IiIi+1,CiPi,CiCi+1,PiPi+1而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行并发执行。如何实现并如何实现并发执行?发执行?对于具有下述四条语句的程序段:S1:a=x+2S2:b=y+4S3:c=a+bS4:d=c+b请画出前趋关系图。3.1.2程序并发执行时的特征程序并发执行时的特征1)间断性间断性(相互制约性相互制约性)“走走停停”,一个程序可能走到中途停下
7、来,失去原有的时序关系;2)失去封闭性失去封闭性:多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。3)不可再现性不可再现性:程序在并发执行时,由于失去了封闭性,也将导致失去其可再现性下面看个小例子:例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N=N+1操作;程序B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。(1)N=N+1在Print(N)和N=0之前,此时得到的N值值分别为n+1,n+1,0。
8、(2)N=N+1在Print(N)和N=0之后,此时得到的N值值分别为n,0,1。(3)N=N+1在Print(N)和N=0之间,此时得到的N值值分别为n,n+1,0。结结论论:程序在并发执行时,由于失去了封闭性,其计算结果已经和并发执行速度有关,从而使程序失去了可再现性,亦即,程序经过多次执行后,虽然他们执行时的环境和初始条件相同,但得到的结果却不相同。顺序执行顺序执行:并发执行:并发执行:程序具有封闭性程序具有封闭性 程序失去封闭性程序失去封闭性独享资源独享资源 共享资源共享资源(互为存在条件互为存在条件)可再现性可再现性 程序与程序与“计算计算”不再一一对不再一一对应应有相互制约有相互制
9、约3.1概述概述3.1.1程序的顺序执行和并发执行程序的顺序执行和并发执行程序的并发程序的并发执行执行并发执行的条件并发执行的条件:达到封闭性和可再现性:达到封闭性和可再现性并发执行失去封闭性的原因是共享资源的影响,去掉这种并发执行失去封闭性的原因是共享资源的影响,去掉这种影响即可。影响即可。1966年,由年,由Bernstein给出并发执行的条件给出并发执行的条件。(这里没有考虑执行速度的影响。)。程序(这里没有考虑执行速度的影响。)。程序P(i)针对的针对的读读变量变量集和集和写变量写变量集为集为R(i)和和W(i)。任意两个程序任意两个程序P(i)和和P(j)可并发的条件:可并发的条件:
10、R(i)W(j)=W(i)R(j)=保证一个程序的两次读之间数据不变化保证一个程序的两次读之间数据不变化W(i)W(j)=保证写的结果不丢掉保证写的结果不丢掉现在的问题是这个条件现在的问题是这个条件不好检查。怎么办?不好检查。怎么办?3.1概述概述3.1.1程序的顺序执行和并发执行程序的顺序执行和并发执行程序程序的并发执行的并发执行程序活动不再处于一个封闭系统中,呈现了独立程序活动不再处于一个封闭系统中,呈现了独立程序活动不再处于一个封闭系统中,呈现了独立程序活动不再处于一个封闭系统中,呈现了独立性、并发性、动态性以及它们之间的相互制约性。性、并发性、动态性以及它们之间的相互制约性。性、并发性
11、、动态性以及它们之间的相互制约性。性、并发性、动态性以及它们之间的相互制约性。“程序程序程序程序”这个静态概念已经不能如实地反映程序这个静态概念已经不能如实地反映程序这个静态概念已经不能如实地反映程序这个静态概念已经不能如实地反映程序活动的这些特征,为此,引入活动的这些特征,为此,引入活动的这些特征,为此,引入活动的这些特征,为此,引入“进程进程进程进程”这一动态这一动态这一动态这一动态概念来描述系统和用户的程序活动。概念来描述系统和用户的程序活动。概念来描述系统和用户的程序活动。概念来描述系统和用户的程序活动。程序程序进程进程3.1概述概述3.1.2进程的定义进程的定义进程是程序的一次执行进
12、程是程序的一次执行;一一个具有一定独立功能的个具有一定独立功能的程序程序在一个在一个数据集合数据集合上的上的一次一次动态执行动态执行过程。简言之,进程是程序的一次执过程。简言之,进程是程序的一次执行活动行活动进程是程序在一个数据集合上运行的过程,它进程是程序在一个数据集合上运行的过程,它是系统进是系统进行资源分配和调度的一个独立单位行资源分配和调度的一个独立单位;进程是一个程序及其数据在处理机上顺序执行进程是一个程序及其数据在处理机上顺序执行时所发生的活动时所发生的活动;3.1概述概述3.1.2进程的定义进程的定义进程的特征进程的特征动态性动态性:进程对应程序的执行进程对应程序的执行进程是动态
13、产生:创建进程是动态产生:创建运行运行消亡消亡进程在其生命周期内,在三种基本状态之间转换进程在其生命周期内,在三种基本状态之间转换独立性独立性:各进程的:各进程的地址空间相互独立地址空间相互独立,除非采用进,除非采用进程间通信手段程间通信手段;并发性并发性:指多个进程实体同存于内存中,且能在一段指多个进程实体同存于内存中,且能在一段时间内同时运行时间内同时运行;异步性异步性:每个进程都以其相对独立的不可预知的速:每个进程都以其相对独立的不可预知的速度向前推进度向前推进;结构化结构化:进程:进程=代码段代码段+数据段数据段+PCB;3.1概述概述3.1.2进程与程序的区别进程与程序的区别进程是动
14、态的,进程是动态的,程序是静态的程序是静态的:炒菜炒菜菜谱菜谱进程是暂时的,进程是暂时的,程序的永久的程序的永久的:进程是一个状态:进程是一个状态变化的过程,程序可长久保存。变化的过程,程序可长久保存。进程与程序的进程与程序的组成不同组成不同:进程的组成包括程序、:进程的组成包括程序、数据和进程控制块(即进程状态信息)。数据和进程控制块(即进程状态信息)。进程与程序的进程与程序的对应关系对应关系:通过多次执行,一个程:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可序可对应多个进程;通过调用关系,一个进程可包括多个程序。包括多个程序。进程具有进程具有并行特征并行特征,程序没有程序
15、没有。进程是进程是竞争计算机资源的基本单位竞争计算机资源的基本单位。程序与进程的类比程序与进程的类比程程序序进进程程唱歌的曲谱或音乐乐器的乐谱唱歌的曲谱或音乐乐器的乐谱演出或演奏演出或演奏剧本剧本演出演出火车火车列车列车1、判断题:、判断题:进程是一个程序在某数据集上的一次执进程是一个程序在某数据集上的一次执行,所以不同进程对应不同的程序行,所以不同进程对应不同的程序。分析分析:进程是程序在某数据集上得一次执行,但是:进程是程序在某数据集上得一次执行,但是不不同进程可以对应同一程序。同进程可以对应同一程序。2、程序顺序执行与并发执行有什么不同?、程序顺序执行与并发执行有什么不同?3、用户程序必
16、须在进程中运行。、用户程序必须在进程中运行。正确4、判断题:、判断题:两次打开两次打开Word字处理程序,编辑同一篇文章,字处理程序,编辑同一篇文章,因为程序因为程序一样一样(Word2003),数据一样,数据一样(同一篇文章同一篇文章),所以,所以系统中运行的这两个系统中运行的这两个Word字处理程序是同一个进程。字处理程序是同一个进程。错误,运行的是错误,运行的是2个不同的进程个不同的进程3.1概述概述3.1.2进程的定义进程的定义进程与程序的区别进程与程序的区别用户用户作业作业由用户创建由用户创建由用户指定由用户指定由系统创建由系统创建作业步作业步作业步作业步.线程线程线程线程.进程进程
17、进程进程.3.2.1进程的组成进程的组成进程进程=程序程序+数据数据+进程控制块进程控制块PCB有人把这三部分称为有人把这三部分称为”进程映像进程映像”.程序程序是进程的不可缺少的组成部分;如果一个程序段允许被共享,是进程的不可缺少的组成部分;如果一个程序段允许被共享,则它应该是则它应该是可重入的可重入的,或,或纯代码段纯代码段数据数据是进程处理的对象是进程处理的对象进程控制块进程控制块是进程的控制结构,包含了进程的是进程的控制结构,包含了进程的描述信息描述信息、控制信息控制信息和和资源信息资源信息以及以及现场保护区现场保护区,是进程的,是进程的唯一标识唯一标识,系统通过,系统通过PCB管管理
18、和控制进程。理和控制进程。通常的程序是不能通常的程序是不能并发执行并发执行的的,为使程序能并发执行为使程序能并发执行,应应为之配置一进程控制块为之配置一进程控制块,即即PCB;所谓所谓创建进程是指创建进程实体中的创建进程是指创建进程实体中的PCB,撤销亦如此。,撤销亦如此。3.2进程的描述进程的描述3.2.2进程控制块进程控制块PCB(ProcessControlBlock)进程控制块是由进程控制块是由OS维护维护的用来记录的用来记录进程相关信进程相关信息和管理进程息和管理进程而设置的一个专门的而设置的一个专门的数据结构数据结构包含了进程的描述信息、控制信息和资源信包含了进程的描述信息、控制信
19、息和资源信息以及现场保护区息以及现场保护区PCB是进程动态特性的集中反映是进程动态特性的集中反映系统通过系统通过PCB感知进程的存在,通过感知进程的存在,通过PCB中中所包含的各项变量的变化,掌握进程的状态所包含的各项变量的变化,掌握进程的状态以达到控制进程活动的目的以达到控制进程活动的目的3.2进程的描述进程的描述3.2.2进程控制块进程控制块PCB(ProcessControlBlock)PCB结构的全部或部分常驻内存;结构的全部或部分常驻内存;PCB随进程的创建而填写,随进程的撤消随进程的创建而填写,随进程的撤消而释放而释放,有生命周期;有生命周期;系系统统利利用用PCB来来控控制制和和
20、管管理理进进程程,所所以以PCB是系统感知进程存在的唯一标志是系统感知进程存在的唯一标志进程与进程与PCB是一一对应的是一一对应的3.2.3进程控制块的内容(进程控制块的内容(数据结构很复杂数据结构很复杂)进程标识符进程标识符:内部进程标识符(processID),唯一,通常是一个整数;进程名(外部标识符),通常基于可执行文件名(不唯一);用户标识符(userID);进程组关系(processgroup)进程控制信息进程控制信息:当前状态;优先级(priority);代码执行入口地址;程序的外存地址;运行统计信息(执行时间、页面调度);进程间同步和通信;阻塞原因进程调度信息进程调度信息:进程状
21、态、进程优先级、资源信息等处理机状态处理机状态:寄存器值(通用、程序计数器PC、状态PSW,地址包括栈指针)3.2.4PCB的组织方式链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表各状态的进程形成不同的链表:就绪链表、阻塞链表索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表各状态的进行形成不同的索引表:就绪索引表、阻塞索引表OS是是根根据据PCB来来对对并并发发执执行行的的进进程程进进行行控控制制和和管管理理的。的。简单题:进程控制块的作用(要扩展)?简单题:进程控制块的作用(要扩展)?判断题:进程控制块是进程存在的唯一
22、标志。判断题:进程控制块是进程存在的唯一标志。运行运行Running就绪就绪Ready等待等待BlockedDispatchTimeoutEventWaitEventOccurs3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换进程的三种基本状态进程的三种基本状态基本状态间的转换基本状态间的转换图2-5进程的三种基本状态及其转换(教材讲5种)结束结束新进程新进程接纳完成作业后备队列进程就绪队列 外存外存外存外存 内存内存内存内存 作业调度作业调度一些一些处理器处理器处理器处理器(CPU)(CPU)(CPU)(CPU)阻塞队列阻塞队列处理机调度器(进程调度进程调度):是操作
23、系统中的一段代码,它完成如下功能:1)把处理机从一个进程切换到另一个进程;2)防止某进程独占处理机3.2.5进程的进程的三种基本状态三种基本状态1)就绪就绪(Ready)(Ready)状态状态:已分配到除已分配到除CPU以外的所有必要的资以外的所有必要的资源,源,只要能再获得处理机,便,便可立即执行的状态。多个排成。多个排成一队称为就绪队列。一队称为就绪队列。2)执行状态执行状态:指进程已获得处理机,其程序指进程已获得处理机,其程序正在执行正在执行;在单处理机系统中,只能有一个进程处于执行状态在单处理机系统中,只能有一个进程处于执行状态;在多处理机系统中,则可能多个进程处于执行状态。在多处理机
24、系统中,则可能多个进程处于执行状态。3)阻塞状态阻塞状态:进程因发生某事件进程因发生某事件(如请求如请求IO、申请缓冲空、申请缓冲空间等间等)而而暂停执行时的状态,亦即进程的执行受到阻塞,故称,亦即进程的执行受到阻塞,故称这种暂停状态为阻塞状态,有时也称为这种暂停状态为阻塞状态,有时也称为“等待等待”状态或状态或“睡睡眠眠”状态。状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。在有的系统中,按阻塞原因的不同而将处于阻塞状态的列。在有的系统中,按阻塞原因的不同而将处于阻塞状态的进程排成多个队列。进程排成多个队列。3.2进程的描述进程的描述
25、3.2.5进程的状态及其转换进程的状态及其转换进程的三种基本状态进程的三种基本状态在进程运行过程中,由于进程自身进展情况及外界环境在进程运行过程中,由于进程自身进展情况及外界环境的变化,这三种基本状态可以依据的变化,这三种基本状态可以依据一定的条件相互转换一定的条件相互转换就绪就绪运行:运行:调度程序选择一个新的进程运行调度程序选择一个新的进程运行运行运行就绪:就绪:运行进程用完了时间片运行进程用完了时间片运行进程被中断,因为一高优先级进程处于就绪状态运行进程被中断,因为一高优先级进程处于就绪状态运行运行等待:等待:当一进程等待某一事件的发生时,如当一进程等待某一事件的发生时,如请求系统服务请
26、求系统服务无新工作可做无新工作可做等待等待就绪:就绪:当所等待的事件发生时当所等待的事件发生时初始化初始化I/O且必须等待结果且必须等待结果等待某一进程提供输入等待某一进程提供输入(IPC)3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换五状态进程模型五状态进程模型RunningNewExitReadyBlockedCreateAdmitDispatchTimeoutReleaseEventWaitEventOccurs五状态进程模型(五状态进程模型(单队列结构单队列结构)AdmitReadyQueue就绪队列就绪队列DispatchTime-out超时超时EventW
27、aitReleaseCPUBlockedQueue等待队列等待队列EventOccurs提交提交调度调度Processor释放释放等待事件等待事件事件事件发生发生五状态进程模型(五状态进程模型(多队列结构多队列结构)AdmitReadyQueueDispatchTime-outReleaseProcessorEvent1WaitEvent1QueueEvent1OccursEvent2WaitEvent2QueueEvent2Occurs3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换其它状态其它状态创建状态:创建状态:创建创建(新新new)状态状态OS已完成为创建一进
28、程所必要的工作已完成为创建一进程所必要的工作已构造了进程标识符已构造了进程标识符已创建了管理进程所需的表格已创建了管理进程所需的表格终止状态(终止状态(Exit)终止后进程移入该状态终止后进程移入该状态它不再有执行资格它不再有执行资格表格和其它信息暂时保留表格和其它信息暂时保留实用程序为了分析性能和利用率,可能要提取程序的实用程序为了分析性能和利用率,可能要提取程序的历史信息历史信息挂起状态:挂起状态:把一个进程从内存转到外存把一个进程从内存转到外存3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换其它状态其它状态导致导致进程创建进程创建的原因的原因批处理批处理环境中,选
29、择一新作业即将进入内存执行环境中,选择一新作业即将进入内存执行交互环境中,新用户登录到系统交互环境中,新用户登录到系统操作系统因提供一项服务而创建。如:用户请求操作系统因提供一项服务而创建。如:用户请求打印一个文件,打印一个文件,OS可创建严格管理打印的进程,可创建严格管理打印的进程,使请求进程可继续执行,与完成打印任务的时间使请求进程可继续执行,与完成打印任务的时间无关无关由现有进程生成,父进程由现有进程生成,父进程-子进程子进程3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换其它状态其它状态导致导致终止进程终止进程的原因的原因含一个含一个HALT指令或用于终止的指令
30、或用于终止的OS显式服务调用显式服务调用分时系统中,用户的行为可指示终止,如:用户退分时系统中,用户的行为可指示终止,如:用户退出系统或关闭自己的终端,该用户的进程将被终止出系统或关闭自己的终端,该用户的进程将被终止PC机环境中,用户结束一应用程序机环境中,用户结束一应用程序出现某些错误时,如,出现某些错误时,如,I/O失败,无效指令等失败,无效指令等父进程可请求它的某个子进程终止父进程可请求它的某个子进程终止父进程终止,父进程终止,OS自动终止所有后代进程自动终止所有后代进程3.2.5挂起进程模型挂起进程模型这个问题的引入是由于进程优先级的引入,一些低优先这个问题的引入是由于进程优先级的引入
31、,一些低优先级进程可能级进程可能等待较长时间等待较长时间,从而被,从而被对换至外存对换至外存。目的目的是:是:提高处理机效率:就绪进程表为空提高处理机效率:就绪进程表为空时,时,OS将阻塞进程将阻塞进程从内存中从内存中“挂起挂起”到磁盘的到磁盘的“挂起队列挂起队列”,再从该队,再从该队列选另一进程进入内存,或接受一个新进程的请求。列选另一进程进入内存,或接受一个新进程的请求。为运行进程提供足够内存:为运行进程提供足够内存:资源紧张时,暂停某些进资源紧张时,暂停某些进程,如:程,如:CPU繁忙(或实时任务执行),内存紧张繁忙(或实时任务执行),内存紧张用于调试:用于调试:在调试时,挂起在调试时,
32、挂起被调试进程被调试进程(从而对其地(从而对其地址空间进行读写)址空间进行读写)3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换单挂起进程模型单挂起进程模型RunningNewExitReadyBlockedBlockedSuspendAdmitDispatchTimeoutReleaseEventWaitSuspendActivateEventOccurs3.2.5进程的状态及其转换进程的状态及其转换双挂起进程模型双挂起进程模型RunningReadySuspendExitReadyBlockedBlockedSuspendNewAdmitAdmitSuspendRe
33、leaseDispatchTimeoutActivateSuspendEventWaitActivateSuspendEventOccursEventOccurs外存内存3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换挂起进程模型挂起进程模型挂起进程模型的状态需考虑二方面:挂起进程模型的状态需考虑二方面:是否就绪,是否就绪,是否在内存是否在内存就绪状态就绪状态(Ready):进程在内存且可立即进入运行进程在内存且可立即进入运行状态;状态;阻塞状态阻塞状态(Blocked):进程在内存,并等待某事件进程在内存,并等待某事件的出现;的出现;就绪挂起状态(就绪挂起状态(Rea
34、dy,suspend):):进程在外存,进程在外存,但只要进入内存,即可运行;但只要进入内存,即可运行;阻塞挂起状态(阻塞挂起状态(Blocked,suspend):):进程在外存进程在外存并等待某事件的出现;并等待某事件的出现;3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换挂起进程模型挂起进程模型状态间的转换状态间的转换挂起(挂起(Suspend):把一个进程从内存转到外存;可能把一个进程从内存转到外存;可能有以下几种情况:有以下几种情况:阻塞到阻塞挂起:阻塞到阻塞挂起:没有进程处于没有进程处于就绪状态就绪状态或就绪进或就绪进程要求更多内存资源时,会进行这种转换,以
35、纳入程要求更多内存资源时,会进行这种转换,以纳入新进程或运行就绪进程;新进程或运行就绪进程;就绪到就绪挂起:就绪到就绪挂起:当有当有高优先级阻塞高优先级阻塞(系统认为会(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程;选择挂起低优先级就绪进程;运行到就绪挂起:运行到就绪挂起:对对抢先式抢先式分时系统,当有分时系统,当有高优先高优先级级阻塞挂起进程因事件出现而进入就绪挂起时,系阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态;统可能会把运行进程转到就绪挂起状态;3.2进程的描述进程的描述3.2
36、.5进程的状态及其转换进程的状态及其转换挂起进程模型挂起进程模型状态间的转换状态间的转换激活(激活(Activate):把一个进程从外存转到内存;把一个进程从外存转到内存;可能有以下几种情况:可能有以下几种情况:就绪挂起到就绪:没有就绪进程就绪挂起到就绪:没有就绪进程或或挂起就绪进程挂起就绪进程优先级高优先级高于就绪进程时,会进行这种转换;于就绪进程时,会进行这种转换;阻塞挂起到阻塞:阻塞挂起到阻塞:当一个进程当一个进程释放足够内存释放足够内存时,时,系统会把一个高优先级阻塞挂起(系统认为会很系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程转为阻塞状态;较少快出现所等待的事件
37、)进程转为阻塞状态;较少出现。出现。3.2进程的描述进程的描述3.2.5进程的状态及其转换进程的状态及其转换挂起进程模型挂起进程模型状态间的转换状态间的转换事件出现(事件出现(EventOccurs):):进程等待的事件出现;进程等待的事件出现;如:操作完成、申请成功等;可能的情况有:如:操作完成、申请成功等;可能的情况有:阻塞到就绪:阻塞到就绪:针对内存进程的事件出现;针对内存进程的事件出现;阻塞挂起到就绪挂起:阻塞挂起到就绪挂起:针对外存进程的事件出现;针对外存进程的事件出现;收容收容(Admit):收容一个新进程,进入就绪状态或就收容一个新进程,进入就绪状态或就绪挂起状态。绪挂起状态。各
38、种状态各种状态-退出:退出:被父进程终止或父进程本身终止。被父进程终止或父进程本身终止。练习思考题练习思考题如果系统中有如果系统中有N个进程,运行的进程最多几个,个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?进程最多几个,最少几个?有没有这样的状态转换,为什么?有没有这样的状态转换,为什么?等待等待运行;运行;就绪就绪等待等待自主设计题自主设计题进程的进程的3个基本状态:执行、就绪、等待,其转换标识分个基本状态:执行、就绪、等待,其转换标识分别为别为1、2、3、4(如图)。编程模拟进程状态转换过程,(如图)。
39、编程模拟进程状态转换过程,要求:分别建立等待队列和就绪队列(单队列、结构不要求:分别建立等待队列和就绪队列(单队列、结构不限),初始状态时,限),初始状态时,1个进程处于执行状态,个进程处于执行状态,7个进程在个进程在等待队列中,等待队列中,7个进程在就绪队列中。手工触发任意一种个进程在就绪队列中。手工触发任意一种转换,显示转换发生后的执行进程和两个队列的进程。转换,显示转换发生后的执行进程和两个队列的进程。执行执行1234等待等待就绪就绪3.3进程控制的功能进程控制的功能:完成进程状态的转换。原语(primitive):由若干条指令构成的“原子操作(atomicoperation)”过程,作
40、为一个整体而不可分割要么全都完成,要么全都不做。许多系统调用就是原语。注意:系统调用并不都是原语。进程A调用read(),因无数据而阻塞,在read()里未返回。然后进程B调用read(),此时read()被重入。系统调用不一定一次执行完并返回该进程,有可能在特定的点暂停,而转入到其他进程。3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程创建进程创建原语原语进程树进程树ABCDJFGHIEKLM进程树是有向树进程树是有向树父子关系表示创建父子关系表示创建与被创建的关系与被创建的关系父子关系不表示执父子关系不表示执行的先后关系行的先后关系3.3进程控制进程控制3.3.2进
41、程控制的主要原语进程控制的主要原语进程创建进程创建原语原语子进程的创建的子进程的创建的3种形式种形式产生新进程产生新进程不产生新进程不产生新进程复制现有进程复制现有进程的上下文的上下文fork(新进程的系(新进程的系统上下文会有不统上下文会有不同)同)加载程序加载程序spawn(创建新进(创建新进程并加载新程序程并加载新程序)exec(加载新程(加载新程序并覆盖自身)序并覆盖自身)3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程创建进程创建原语原语创建原语描述创建原语描述ProcedureCreate(n,S0,P0,M0,R0)Begini:=GetInternalN
42、ame(n);i.id:=n;i.priority:=P0;/*初始化初始化PCB*/i.CPU_State:=S0;i.Mainstore:=M0;i.resources:=R0;i.status:=Ready;j:=EP;i.parent:=j;/*插入家族队列插入家族队列*/i.progeny:=;j.progeny:=i;i.sdata:=RQ;insert(RQ,i);/*插入就绪队列插入就绪队列*/End;查找查找PCB集合,返回集合,返回PCB的内部标识符的内部标识符i被创建进程的外部标识符被创建进程的外部标识符处理机的初始状态处理机的初始状态进程优先级进程优先级初始内存数初始内
43、存数所需资源清单所需资源清单进程状态有关的指针进程状态有关的指针3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程创建进程创建原语原语进程创建需要的参数:进程创建需要的参数:被创建进程的外部标识符被创建进程的外部标识符n处理机的初始状态处理机的初始状态S0(包括包括CPU的工作方式、进程起的工作方式、进程起始地址及屏蔽码等);始地址及屏蔽码等);进程优先级进程优先级P0;初始内存数初始内存数M0;其它所需资源清单其它所需资源清单R0i.sdata是一个与进程状态有关的指针。是一个与进程状态有关的指针。3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程
44、撤销进程撤销原语原语Destroy也称为“终止”或主程序返回:调用exit()可终止进程。释放资源:释放内外存空间关闭所有打开文件释放共享内存段和各种锁定lock3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程撤销进程撤销原语原语Destroy撤消原语的描述撤消原语的描述ProcedureDestroy(n)BeginSched:=false;i:=GetInternalName(n);Kill(i);ifSchedthenSchedulerelsecontinue;End;ProcedureKill(i)Beginifi.status=“Running”thensto
45、p(i);Sched:=True;remove(i.sdata,i);forallSi.progenydoKill(S);forallrMainstorei.resourcesdoRelease(r);Release(PCB(i)End;(Kill是可递归的)是可递归的)调用者提供的进程的调用者提供的进程的外部标识外部标识如果进程如果进程正在运行,正在运行,则立即停则立即停止其运行,止其运行,并设置调并设置调度标志为度标志为真真3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程阻塞进程阻塞原语原语Block阻塞原因:阻塞原因:当进程期待的某事件尚未出现时,该进当进程期待的
46、某事件尚未出现时,该进程调用阻塞原语把自己阻塞起来。程调用阻塞原语把自己阻塞起来。具体事件如下:具体事件如下:请求系统服务启动某种操作新数据尚未到达无新工作可做注意:注意:由自己阻塞自己,但该进程的唤醒则是在该由自己阻塞自己,但该进程的唤醒则是在该进程所期待的事件发生后,由进程所期待的事件发生后,由“发现者发现者”进程调用进程调用唤醒原语实现唤醒原语实现3.3.2.进程阻塞过程进程阻塞过程正正在在执执行行的的进进程程,当当发发现现上上述述某某事事件件时时,无无法法继继续续执执行行,于于是是进进程程调调用用阻阻塞塞原原语语block把把自自己己阻阻塞塞。可可见见,进进程程的的阻阻塞塞是是进进程程
47、自自身身的的一一种种主主动动行行为为。进进入入block过过程程后后,由由于于此此时时该该进进程程还还处处于于执执行行状状态态,所所以以应应先先立立即即停停止止执执行行,把把进进程程控控制制块块中中的的现现行行状状态态由由“执执行行”改改为为阻阻塞塞,并并将将PCB插插入入阻阻塞塞队队列列。如如果果系系统统中中设设置置了了因因不不同同事事件件而而阻阻塞塞的的多多个个阻阻塞塞队队列列,则则应应将将本本进进程程插插入入到到具具有有相相同同事事件件的的阻阻塞塞(等等待待)队队列列。最最后后,转转调调度度程程序序进进行行重重新新调调度度,将将处处理理机机分分配配给给另另一一就就绪绪进进程程,并进行切换
48、。并进行切换。3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程阻塞进程阻塞原语原语Block阻塞进程的描述阻塞进程的描述Procedureblock(r)Begini:=EP;stop(i);i.status:=“blocked”;i.sdata:=WQ(r);insert(WQ(r),i);scheduler;End;r为指向等待原因的对为指向等待原因的对应等待队列的指针应等待队列的指针从执行进程的指针获从执行进程的指针获得进程的内部标识符得进程的内部标识符i停止进程停止进程i进程调度程序进程调度程序3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语
49、进程唤醒进程唤醒原语原语Wakeup唤醒原因:唤醒原因:进程等待的事件发生,等待队列中的进程唤醒。进程等待的事件发生,等待队列中的进程唤醒。唤醒进程的两种方法:唤醒进程的两种方法:由系统进程唤醒。由系统进程唤醒。系统进程统一控制事件的发生,并系统进程统一控制事件的发生,并将将“事件发生事件发生”这一消息通知等待进程。等待的是公这一消息通知等待进程。等待的是公共资源。共资源。由事件发生进程唤醒。由事件发生进程唤醒。事件发生进程与被唤醒的进程事件发生进程与被唤醒的进程是合作关系,是合作关系,等待私有资源。等待私有资源。3.3进程控制进程控制3.3.2进程控制的主要原语进程控制的主要原语进程唤醒进程
50、唤醒原语原语Wakeup)唤醒原语的描述唤醒原语的描述Procedurewakeup(n)Begini:=GetInternalName(n);remove(WQ(r),i);i.status:=“Ready”;i.sdata:=RQ;insert(RQ,i);continue;End;从相应的等待队列中从相应的等待队列中摘下被唤醒的进程摘下被唤醒的进程状态置为状态置为“就绪态就绪态ready”插入就绪队列插入就绪队列唤醒进程返回或转进程调度唤醒进程返回或转进程调度3.3.2进程控制的主要原语进程控制的主要原语挂起原语挂起原语Suspend引起进程挂起的事件引起进程挂起的事件:挂起原语的执行过