《《进程基本概念》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《进程基本概念》PPT课件.ppt(34页珍藏版)》请在三一办公上搜索。
1、第二节 进程基本概念,上面所列的多道系统中的程序并发运行的新特点,程序本身是无法描述的,为此,当一个程序在并发系统中执行时,需引进一个新的数据结构来记录和描述这些特征。这样,新引进的数据结构与它所描述的程序便形成了一个有机体。这个有机体就是进程。,进程模型的提出:MIT(麻省理工学院),60年代初期进程的概念进程的状态及其转换进程控制块(Process Control Block),一、进程的概念,1、进程定义:Process 进程是具有独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。,此定义包含有如下的含义:(1)进程是一个动态的概念,而程序是静态的;(2)
2、进程包含了一个数据集合和运行其上的程序;(3)同一程序运行于若干不同的数据集合上时,它将属于若干个不同的进程,或者说,两个不同的进程可包含相同的程序;(4)系统分配资源是以进程为单位的,所以只有进程才可能在不同的时刻处于几种不同的状态,即等待、就绪、运行。(5)从微观上看,进程是轮换地占有处理机而运行的,从宏观上看,进程是并发地运行的。,对进程定义的进一步分析,2、进程的构成,进程=PCB+程序+数据 其中,PCB(process control block)为记录程序在并发系统中执行时的动态特性的数据结构。进程的这三部分构成进程在系统中存在和活动实体,称为-“进程映象”or“进程实体”。,并
3、发性:任何进程都可以同其他进程一起向前推进动态性:进程对应程序的执行;进程是动态产生,动态消亡的;进程在其生命周期内,在三种基本状态之间转换独立性:进程是CPU调度的一个独立单位异步性:每个进程都与其相对独立的不可预知的速度向前推进结构性:进程的组成:程序+数据+PCB,3、进程的特征,进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存。进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。进程与程序的对应关系:通过多
4、次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。,4、程序与进程之间的区别,系统进程 系统进程起着资源管理和控制的作用。或者:执行操作系统核心代码的进程。用户进程:执行用户程序的进程。(系统进程优先于用户进程)另一种分类:计算进程,I/O进程等。,5、进程的分类,1、系统进程被分配一个初始的资源集合,这些资源可以为它独占,也能以最高优先权的资格使用。用户进程通过系统服务请求的手段竞争使用系统资源;2、用户进程不能直接做I/O操作,而系统进程可以做显式的、直接的I/O操作。3、系统进程在系统态(管态)下活动,而用户进程则在用户态(目态)下活动。(当中央处理器处于管态时,可以
5、执行包括特权指令在内的一切面器指令,而在目态下工作时不允许执行特权指令。),系统进程与用户进程的区别,二、进程的状态及其转换,不同系统设置的进程状态数目不同1、三状态模型:进程的三种基本状态:运行状态、就绪状态、等待(阻塞)状态。进程在生命消亡前总是处于且仅处于三种基本状态之一。,运行态(Running):当进程由调度/分派程序(Dispatcher)分派后,进程占有CPU,并在CPU上运行。(注意:在系统中,总只有一个进程处于此状态)就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)等待态(Blocked):阻塞态、挂起态、封
6、锁态 冻结态、睡眠态 指进程因等待某种事件的发生(请求I/O、申请缓冲空间等)而暂时不能运行的状态(注意:即使CPU空闲,该进程也不可运行),在进程运行过程中,由于进程自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换 就绪运行 运行就绪 运行等待 等待就绪,进程状态转换:,就绪-运行调度程序选择一个新的进程运行运行-就绪运行进程用完了时间片运行进程被中断,因为一高优先级进程处于就绪状态运行-等待 当一进程必须等待时OS尚未完成服务对一资源的访问尚不能进行初始化I/O 且必须等待结果等待某一进程提供输入(IPC)等待-就绪当所等待的事件发生时,进程三状态模型的内存跟踪示意图
7、,进程之间的状态转换并非都是可逆的,进程既不能从等待变为运行,也不能从就绪变为等待;进程之间的状态转换并非都是主动的,在很多情况下是“它动的”,事实上,只有运行到等待的转换是进程的主动行为(主动调用调度管理程序),其它都是它动的,如,从执行到就绪,通常是时钟中断引起的,从等待到就绪,是一个进程把另一个进程唤醒。,进程三状态转换的再说明,当然,除某些比较特殊的进程以外,大多数进程有其发生、发展和消亡的过程,不会无休止地在上述三种状态中循环。对这些进程而言,还应该有其它状态,如:创建状态,终止状态挂起状态(调节负载,父进程,操作系统,终端用户),其他状态,引入了创建状态与终止状态创建(新new)状
8、态OS 已完成为创建一进程所必要的工作(包括已构造了进程标识符,已创建了管理进程所需的表格),但还没有允许执行该进程(尚未同意),因为资源有限终止(退出exit)状态 进程已结束运行,回收除PCB之外的其他资源,并让其他进程从PCB中收集有关信息 例:为处理用户帐单而累计资源使用情况的财务程序,当数据不再需要后,进程(和它的表格)被删除,2、五状态模型,五状态进程模型图,收容(Admit,也称为提交):收容一个新进程,进入就绪状态。由于性能、内存、进程总数等原因,系统会限制并发进程总数。释放(Release):由于进程完成或失败而中止进程运行,进入结束状态;运行到结束:分为正常退出Exit和异
9、常退出abort(执行超时或内存不够,非法指令或地址,I/O失败,被其他进程所终止)就绪或阻塞到结束:可能的原因有:父进程可在任何时间中止子进程;,该模型的出现是由于某些原因导致进程被对换至外存,成为挂起状态。包括:终端用户的需要:调试父进程请求:负荷调节的需要:内存等资源紧张OS的需要:检查资源使用情况等(如银行家算法),3、七状态模型(引入挂起状态),状态:就绪状态(Ready):进程在内存且可立即进入运行态;阻塞状态(Blocked):进程在内存等待某事件出现阻塞挂起状态(Blocked suspend):进程在外存并等待某事件的出现就绪挂起状态(Ready suspend):进程在外存
10、,但只要进入内存,即可运行,七状态进程模型图,1)挂起(Suspend):把进程从内存转到外存,可能有以下几种情况:阻塞到阻塞挂起:释放内存;就绪到就绪挂起:释放内存;运行到就绪挂起:对抢先式分时系统,当有高优先级阻塞挂起进程因事件完成而进入就绪时,系统可能会把运行进程转到就绪挂起状态;,新状态转换(中期调度),2)激活(Activate):把进程从外存转到内存,可能有以下几种情况:就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换;阻塞挂起到阻塞:当Blocked Suspend队列中有一个进程的阻塞事件可能会很快发生,则可将一个Blocked/Suspend进程
11、换入内存,变为Blocked,三、进程控制块Process Control Block,PCB,1、def:存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,在创建时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消;PCB就象我们的户口;系统用它来记录进程的外部特征,描述进程的运动变化过程;进程控制块是由OS维护的用来记录进程相关信息的一块内存。,系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。进程的状态转换、进程的推进也是以PCB体现出来的。,2、作用,注意:进程与PCB是一一对应的是每个进程在OS中的登记表项(可能有总数
12、目限制),OS据此对进程进行控制和管理(PCB中的内容会动态改变),不同OS则不同处于核心段,通常不能由应用程序自身的代码来直接访问,而要通过系统调用,或通过UNIX中的进程文件系统(/proc)直接访问进程映象(image)。文件名为进程标识(如:00316),权限为创建者可读写。,进程描述信息:进程标识符(process ID):唯一,通常是一个整数;(1)内部标识符。在所有的操作系统中,都为每一个进程赋予了一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。(2)外部标识符。它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为
13、了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。,3、PCB的内容,2)处理机状态处理机状态信息主要是由处理机的各种寄存器中的内容组成的。处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,所有这些信息都必须保存在PCB中,以便在该进程重新执行时,能从断点继续执行。这些寄存器包括:通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有 832个通用寄存器,在RISC结构的计算机中可超过100个;指令计数器,其中存放了要访问的下一条指令的地址;程序状态字PSW,其中含有状态信息,如条件码、执行方式
14、、中断屏蔽标志等;用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址,栈指针指向该栈的栈顶。,3)进程调度信息在PCB中还存放一些与进程调度和进程对换有关的信息,包括:进程状态,指明进程的当前状态,作为进程调度和对换时的依据;进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等;事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。,4)进程控制信息进程控制信息包括:程序和数据的地址,指进程
15、的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;进程同步和通信机制,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;资源清单,即一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;链接指针,它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。,系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度(注:多道程序中的多道与系统并发度的区别)PCB的组织方式:链表方式;索引表方式,4、PCB表,链表方式:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表:就绪链表、阻塞链表,索引表(常用方式):建立几个索引表(index table),记载相应状态进程的PCB,将状态相同的进程的PCB组织在同一表中,每个索引表的表目中存放该PCB的地址。各索引表在内存中的起始地址放在专用的指针单元中。CPU的调度根据相应的索引表进行的。各状态的进行形成不同的索引表:就绪索引表、阻塞索引表,