资源预览内容
第1页 / 共141页
第2页 / 共141页
第3页 / 共141页
第4页 / 共141页
第5页 / 共141页
第6页 / 共141页
第7页 / 共141页
第8页 / 共141页
第9页 / 共141页
第10页 / 共141页
亲,该文档总共141页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 进程管理,2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 管程机制 2.6 进程通信 2.7 线程,2.1 进程的基本概念,2.1.1 程序的顺序执行及其特征,1. 程序的顺序执行 仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。 S1: a:=x+y; S2: b:=a-5; S3: c:=b+1;,2. 程序顺序执行时的特征,顺序性: (2) 封闭性: (3) 可再现性:,2.1.2 前趋图,前趋图(Precedence Graph)是一个有向无循环图,用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句; 前趋关系(Precedence Relation)“”: 若两个结点Pi、Pj,仅当Pi操作完成后,才能执行Pj结点的操作,称Pi、Pj结点间存在前趋关系。 =(Pi,Pj)|仅当Pi完成,才能执行Pj,每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。,存在下述前趋关系:,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.3 程序的并发执行及其特征,1. 程序的并发执行,存在下述前趋关系: IiCi,IiIi+1, CiPi, CiCi+1,PiPi+1 而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以并发执行。,对于具有下述四条语句的程序段: S1: a=x+2 S2: b=y+4 S3: c=a+b S4: d=c+b,2. 程序并发执行时的特征,间断性 2) 失去封闭性 3) 不可再现性,例如,两个进程分别对一个共享变量account执行加100和200的操作。设按下列执行顺序,account初值为0,则account的结果是多少? P1 P2,M=account;,M=M+100;,account=M,N=account;,N=N+200;,account=N;,较典型的进程定义有: (1) 进程是程序的一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 (3) 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。,2.1.4 进程的定义与特征,2.1.4 进程的定义与特征,进程的结构,程序、数据集合、进程控制块PCB。 PCB是进程存在的唯一标志。创建进程时,创建PCB;进程结束时,系统撤销其PCB。,PCB 进程控制块,程序段,数据段,动态特征的集中反映,描述要完成的功能,操作对象及工作区,1) 动态性:进程有生命周期。进程由创建而产生,由调度而执行,由撤销而消亡的过程 2) 并发性 :多个进程同在内存中,且能在一段时间内同时运行。 3) 独立性 :进程是一个能独立运行、独立分配资源、独立接受调度的基本单位。 4) 异步性:进程按各自独立的、不可预知的速度向前推进。,进程的特征,2. 进程的三种基本状态,就绪(Ready)状态 :准备执行 2) 执行状态:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机) 3) 阻塞状态 :等待某事件发生才能执行,如等待I/O完成等。,图 2-5 进程的三种基本状态及其转换,3. 挂起状态,多个进程竞争内存资源的后果 内存资源紧张 无就绪进程,处理机空闲 对换(Swapping)技术 将内存中暂时不能运行的进程(全部数据),或暂时不用的数据和程序(部分数据),换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,或进程所需要的数据和程序,换入内存。 换些什么东西?PCB能不能换出去?换出去的进程处于什么状态?,进程被交换到外存,状态变为挂起状态(Suspend) 引入挂起状态的原因 终端用户的请求。 (2) 父进程请求。 (3) 负荷调节的需要。 (4) 操作系统的需要,OS可能需要挂起一些后台进程或一些服务进程。,被挂起进程的特征 不能立即执行; 可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行; 使之挂起的进程:自身、父进程、OS; 只有挂起它的进程才能使之由挂起状态转为其他状态;,问题 是否只能挂起阻塞进程? 如何激活一个挂起进程? 区分两个概念 进程是否等待某个事件阻塞与否 进程是否被换出内存挂起与否,4种状态组合 活动就绪:进程在内存,准备执行; 活动阻塞:进程在内存,等待事件; 静止就绪:进程在外存,只要调入内存就可执行; 静止阻塞:进程在外存,等待事件;,注: 处理机调度执行的进程有两种: 新创建的进程; 换入一个以前挂起的进程; 通常为避免增加系统负载,系统会换入一个以前挂起的进程来执行。,3) 进程状态的转换,活动就绪静止就绪:腾出充分内存空间。 (2) 活动阻塞静止阻塞:腾出内存空间 (3) 静止就绪活动就绪:OS需跳入一个进程到内存。 (4) 静止阻塞活动阻塞:阻塞事件很快发生。 (5)执行静止就绪:时间片完,或高优先级的进程要执行,剥夺当前处理机并挂起。,图 2-6 具有挂起状态的进程状态图,具有创建、终止和挂起状态的进程状态图,2.1.5 进程控制块,1. 进程控制块PCB的作用,进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。,2. 进程控制块中的信息,1) 进程标识符 : 内部标识符和外部标识符 2) 处理机状态: 通用寄存器、 指令计数器、 程序状态字PSW、 用户栈指针; 3) 进程调度信息: 进程状态、 进程优先级、 进程调度所需的其它信息、 事件; 4) 进程控制信息: 程序和数据的地址、 进程同步和通信机制、 资源清单、 链接指针;,3. 进程控制块的组织方式,1) 链接方式,图 2-7 PCB链接队列示意图,2) 索引方式,图 2-8 按索引方式组织PCB,两种执行模式 系统模式(又称系统态)、控制模式或内核模式 具有较高特权 运行特定指令:读/写寄存器,基本的I/O操作,存储器管理 内核模式下处理机及其指令、寄存器和内存受到完全控制和保护 用户模式(或用户态) 具有较低的特权 用户程序一般运行在用户模式,2.2 进 程 控 制,模式切换 用户模式-系统模式 用户程序执行到一条系统调用 系统模式-用户模式 系统模式执行完系统调用 特殊情况:程序执行完,切换到系统模式,不再回到用户模式,2.2 进 程 控 制,内核,OS的核心,基于硬件的第一层软件扩充 包括 资源管理功能:进程管理、存储管理、I/O管理 支撑功能:中断、时钟、统计、监测、原语等,资源管理功能,进程管理 进程的创建和终止、进程调度和状态转换、进程的同步和通信、PCB的管理 存储器管理 内存地址空间分配、对换、段/页管理 I/O管理 缓存管理、分配通道和设备,2.2 进 程 控 制,进程控制 系统使用具有特定功能的程序段来创建、撤销进程以及完成进程各状态间转换的过程。通过进程控制,可以达到多进程高效率并发执行,同时也能很好地协调并发进程之间的推进速度,实现资源共享。 OS中是通过原语来完成对进程控制的。 原语:OS提供的为完成某系统功能的最基本的不可分割的操作。原语是不允许并发执行的。在核心态执行,用户程序不允许调用原语。,2.2.1 进程的创建,创建方式 由系统程序统一创建。(中断处理程序) 由父进程创建。 不管用哪种方式创建都是调用创建进程原语实现的。 进程图用于描述一个进程家族关系的有向树。,2. 引起创建进程的事件,用户登录。 (2) 作业调度。 (3) 提供服务。 (4) 应用请求。,3. 进程的创建(Creation of Progress),(1)申请空白PCB。 (2) 为新进程分配资源。 (3) 初始化进程控制块。 (4) 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程, 便将新进程插入就绪队列。,2.2.2 进程的终止,1、终止进程的原因 正常结束 超时终止,执行时间超过预计时间 内存不足,无法为进程分配所需的空间 越界访问 企图使用未允许用的数据 ,或操作方式错 计算错,如除零 超时等待某事件发生,2.2.2 进程的终止,1、终止进程的原因 I/O失败,如找不到文件 无效指令,企图执行不存在的指令 特权指令,企图执行特权指令 操作员或OS干预,如发生死锁的时候 父进程终止 父进程请求,2. 进程的终止过程 (1) 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。 (2) 若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。 (3) 若该进程还有子孙进程,还应将其所有子孙进程予以终止。 (4) 将被终止进程所拥有的全部资源,或者归还给其父进程, 或者归还给系统。 (5) 将被终止进程(它的PCB)从所在队列(或链表)中移出, 等待其他程序来搜集信息。,2.2.3 进程的阻塞与唤醒,1. 引起进程阻塞和唤醒的事件,请求系统服务 2) 启动某种操作 3) 新数据尚未到达 4) 无新工作可做,2. 进程阻塞过程 正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。进程的阻塞是进程自身的一种主动行为,把进程控制块中的现行状态由“执行”改为阻塞,并将PCB插入阻塞队列。保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU的环境。,3. 进程唤醒过程 当被阻塞进程所期待的事件出现时,则由有关进程调用唤醒原语wakeup( ),将等待该事件的进程唤醒,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。,2.2.4 进程的挂起与激活,1. 进程的挂起 当出现了引起进程挂起的事件时,系统将利用挂起原语suspend( )将指定进程或处于阻塞状态的进程挂起。 挂起原语的执行过程是:首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。 为了方便用户或父进程考查该进程的运行情况而把该进程的PCB复制到某指定的内存区域。,2. 进程的激活过程 当发生激活进程的事件时,例如,父进程或用户进程请求激活指定进程,若该进程驻留在外存而内存中已有足够的空间时,则可将在外存上处于静止就绪状态的进程换入内存。这时,系统将利用激活原语active( )将指定进程激活。 激活原语先将进程从外存调入内存,检查该进程的现行状态,若是静止就绪,便将之改为活动就绪;若为静止阻塞便将之改为活动阻塞。,正在执行的进程由于其时间片完而被暂停执行,此时进程应从运行态变为 A 状态;处于静止阻塞状态的进程,在进程等待的事件出现后,应转变为 B 状态;若进程正处于运行态时,应终端的请求而暂停下来以便研究其运行情况(执行挂起进程原语),这时进程应转变为 C 状态,若进程已处于阻塞状态,则此时应转变为 D 状态,若进程已处于就绪状态,则此时应转变为 E 状态;执行解除挂起进程原语后,如挂起进程处于就绪状态,则应转变为 F 态,如处于阻塞状态,则应转变为 G 态;一个进程刚被创建时,它的初始状态为 H 。,AH:(1)静止阻塞;(2)活动阻塞
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号