资源预览内容
第1页 / 共58页
第2页 / 共58页
第3页 / 共58页
第4页 / 共58页
第5页 / 共58页
第6页 / 共58页
第7页 / 共58页
第8页 / 共58页
第9页 / 共58页
第10页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二课 进程的描述和控 制(Process Description and Control) 教学目的: 本课为描述程序并发执行引入进程的概念,描述进程 的特征、状态、状态的转换、进程控制块等基本概念 。描述控制进程状态转换的OS内核和进程控制原语的 功能。并发性是OS最重要的特征,进程是OS最基本最 重要的概念,进程管理是OS的重点和难点。教学要求: 熟悉进程引入的必要性;熟练掌握进程的定义和 特征,熟练掌握进程的三个基本状态、状态的转 换和状态转换的关系,熟练掌握进程存在的唯一 实体-进程控制块,熟悉进程上下文。 熟悉内核的功能,掌握增加“挂起”、 “激活” 操作的五个状态图和状态的转换,熟悉创建、撤 消、阻塞、唤醒、挂起和激活进程控制原语的功 能,了解线程的概念、引入线程的好处和线程的 应用 。 了解模块接口法、层次结构法和客户服务器结 构三种操作系统结构, WindowsNT框架图 。(一)进程的引入 (1)程序顺序执行(Sequential Execution)与特征 一个较大的程序通常都由若干个程序段组成,程序 在执行时,各程序段必须按照先后次序逐个执行。程序 各程序段先后执行次序关系可用前趋图表示。 前趋图(Predecessor Graph)是一个有向无循环图 ,图由结点和结点间有向边组成,结点代表各程序段操 作,而结点间的有向边表示两程序段操作之间存在的前 趋关系(“”)。两程序段Pi和Pj的前趋关系表示成 Pi Pj,Pi是Pj的前趋,Pj是Pi的后继。P1C1I1 I2C2P2进程的引入-1 程序顺序执行特征:顺序性:程序各程序段严格按照规定的顺序执行。封闭性:程序运行时机内各资源只受该程序控制而改变 ,执行结果不受外界因素影响。 可再现性:只要程序执行环境和初始条件相同,程序多 次执行,可获得相同结果。 (2)程序并发执行(Concurrent Execution)与特征在计算机系统支持并行操作时,如采用多道程序设 计技术,则内存中多道程序处于并发执行状态。如上述 有三个程序段的作业类,虽然每个作业有前趋关系的各 程序段不能在系统CPU和输入输出各部件并行执行,但 一个作业没有前趋关系的程序段或不同作业的程序段可 以分别在CPU和各输入输出部件上并行执行。进程的引入-2四个上述三个程序段类的作业并发执行的前趋图如下 图所示:C3I1I2I3I4C1C2C4P1P2P3P4进程的引入-3 程序并发执行特征: 间断性:程序在并发执行时,由于它们共享资源或为 完成同一项任务而相互合作,使在并发程序之间形 成了相互制约的关系。相互制约将导致并发程序具 有“执行-暂仃-执行”这种间断性活动规律。 失去封闭性:程序在并发执行时,是多个程序共享系 统中的各种资源,因而这些资源的状态将由多个程 序来改变,致使程序的运行已失去了封闭性。 不可再现性:程序在并发执行时,由于失去了封闭性 ,也将导致失去结果的可再现性。即程序经过多次 运行,虽然其各次的环境和初始条件相同,但得到 的结果却各不相同。 例:观察者/报告者进程的引入-4观察者: 报告者: begin beginrepeat repeatwait a car go through delay a timeN=N+1; Print N ;N=0 ;until until end end 初始N=n时不同执行序列:N=N+1; Print N; Print N ;Print N ; N=0 ; N=N+1 ;N=0 ; N=N+1 ; N=0 ; 结果各不相同: 打印n+1,N=0; 打印n,N=1; 打印n,N=0;(3)进程的引入 由于程序在并发执行时,各次执行的结果不同,所 以用“程序”这个概念已无法描述程序的并发执行 ,所以必须引入新的概念-进程来描述程序的并发执 行。进程这一术语最早由麻省理工学院著名的操作 系统MULTICS中提出。 进程(Process)定义:“可并发执行的程序在一个数 据集合上的运行过程”。 进程的特征: 动态性:动态性是进程的最基本特征,它是程序执行 过程,它是有一定的生命期。它由创建而产生、由 调度而执行,因得不到资源而暂仃,并由撤消而死 亡。而程序是静态的,它是存放在介质上一组有序 指令的集合,无运动的含义。进程的引入-1并发性:并发性是进程的重要特征,同时也是OS的重 要特征。并发性指多个进程实体同存于内存中,能 在一段时间内同时运行。而程序是不能并发执行。 独立性:进程是一个能独立运行的基本单位,即是一 个独立获得资源和独立调度的单位,而程序不作为 独立单位参加运行。 异步性:进程按各自独立的不可预知的速度向前推进 ,即进程按异步方式进行,正是这一特征,将导致 程序执行的不可再现性,因此OS必须采用某种措施 来限制各进程推进序列以保证各程序间正常协调运 行。 结构特征:从结构上,进程实体由程序段、数据段和 进程控制块三部分组成,UNIX中称为“进程映象” 。 (练习)(二)进程的描述 (1)进程状态及其转换(Process State and Transition)1. 进程的三个基本状态 运行态(Running):当一个进程在处理机上运行时,则 称该进程处于运行状态。 就绪态(Ready):一个进程获得了除处理机外的一切所 需资源,一旦得到处理机即可运行,则称此进程处于 就绪状态。 阻塞态(Blocked):(又称挂起状态、等待状态):一 个进程正在等待某一事件发生(例如请求IO而等待I O完成等)而暂时仃止运行,这时即使把处理机分配 给进程也无法运行,故称该进程处于阻塞状态。进程的描述-1运 行 态就 绪 态 阻 塞 态进程调度时间片已用完等待某一事件发生等待事件已发生2.进程状态的转换三个基本状态之间可能转换和转换原因如下: l 就绪态运行态:当处理机空闲时,进程调度程序必将 处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转 换为运行态。 l 运行态阻塞态:处于运行态的进程在运行过程中需要 等待某一事件发生后(例如因IO请求等待IO完成后), 才能继续运行,则该进程放弃处理机,从运行态转换为阻塞 态。 l 阻塞态就绪态:处于阻塞态的进程,若其等待的事件 已经发生,于是进程由阻塞态转换为就绪态。 l 运行态就绪态:处于运行状态的进程在其运行过程中 ,因分给它的处理机时间片已用完,而不得不让出(被抢占 )处理机,于是进程由运行态转换为就绪态。 而阻塞态运行态和就绪态阻塞态这二种状态转 换不可能发生。3.系统中各进程状态的分布和管理 处于运行态进程:如系统有一个处理机,则在任何 一时刻,最多只有一个进程处于运行态。 处于就绪态进程:一般处于就绪态的进程按照一定 的算法(如先来的进程排在前面,或采用优先权 高的进程排在前面)排成一个就绪队列。 处于阻塞态进程:处于阻塞态的进程排在阻塞队列 中。由于等待事件原因不同,阻塞队列也按事件 分成几个队列。系统中各进程状态的分布和管理-1系统中各进程状态的分布: (例:一个只有一个处理机的系统中,OS的进程有运行、就绪 、阻塞三个基本状态。假如某时刻该系统中有10个进程并发 执行,在略去调度程序所占用时间情况下试问: 这时刻系统中处于运行态的进程数最多有几个?最少有几个 ? 这时刻系统中处于就绪态的进程数最多有几个?最少有几个 ? 这时刻系统中处于阻塞态的进程数最多有几个?最少有几个 ? 解:因为系统中只有一个处理机,所以某时刻处于运行态的 进程数最多只有一个。而最少可能为0,此时其它10个进程一 定全部排在各阻塞队列中,在就绪队列中没有进程。而某时 刻处于就绪态的进程数最多只有9个,不可能出现10个情况, 因为一旦CPU有空,调度程序马上调度,当然这是在略去调度 程序调度时间时考虑。处于阻塞态的进程数最少是0个。(练习)4。系统中各进程状态转换影响运行 运 行 阻 塞就 绪阻 塞就 绪A进程B进程运行 运 行 阻 塞就 绪阻 塞就 绪C进程D进程系统中各进程状态转换影响-1 在一个多道程序设计的系统中,各进程状态转换会互相影响 。例如系统中一个运行态的进程A发生I/O请求后要等待I/O 完成,它的状态也由运行态转换为阻塞态,此时进程调度程 序就会按照一定的算法,在就绪队列中选一个进程B,将处 理机分给它,该B进程的状态也由就绪态转换为运行态。如 一个进程C等待的事件完成,则它的状态由阻塞态转换为就 绪态,它也从阻塞队列中抽出插入就绪队列中。如进程 C从 阻塞态转换为就绪态时,有一个进程D在CPU上运行。而系统 采用抢占式调度算法,进程C的优先级又高于正在CPU上运行 的进程D的优先级,则要发行抢占调度。即接下去的操作时 由进程调度程序将正在运行的进程D由运行态转换为就绪态 ,插入就绪队列。(练习)Fig.2.5 Five-State Process ModelRelease NewReadyRunningExitBlockedAdmitEvent OccursDispatchTime-outEvent Wait(2)进程控制模块PCB(Process Control Block)1进程控制块的作用进程存在的唯一实体由于进程控制块中记录进程存在和特性信息;PCB与进程同 生死,创建一个进程就是为其建立一个PCB,当进程被撤消时 ,系统就回收它的PCB;OS对进程的控制要是根据PCB来进行 ,对进程管理也通过对PCB管理来实现,所以进程控制块是进 程存在的唯一实体。 2. PCB的信息 进程标识符:它用于唯一地标识一个进程。它有外部标识符( 由字母组成,供用户使用)和内部标识符(由整数组成,为 方便系统管理而设置)二种。 (进程调度信息:它包括进程状态(running、ready、blacked )、队列(就绪、阻塞队列)、队列指针,调度参数:进程 优先级、进程已执行时间和已等待时间等。进程控制模块(PCB)-1(处理机状态信息:它由处理机各种寄存器(通用寄存器、指 令计数器、程序状态字PSW、用户栈指针等)的内容所组成, 该类信息使进程被中断后重新执行时能恢复现场从断点处继 续运行。 (进程控制信息:它包括程序和数据的地址、IO资源清单, 保证进程正常运行的同步和通信机制等。 (家族信息:它包括该进程的父、子进程标识符、进程的用户 主等。 UNIX的PCB由Proc和user两个结构组成,proc常驻主存的系统 区,是PCB中最基本和常用信息,而user可根据需要换进换出 。 (练习)(3)进程上下文(Process Context) 进程是由程序、数据和进程控制块组成。进程上下文实际 上是执行活动全过程的静态描述。具体说,进程上下文包括 系统中与执行该进程有关的各种寄存器(例如:通用寄存器 、程序计数器PC、程序状态寄存器PS等)的值,程序段在经 编译之后形成的机器指令代码集(或称正文段)、数据集及 各种堆栈值和PCB结构,如下图所示。 P C B各种控制表指针 各种寄存器正 文 集数 据 集栈区(4)UNIX进程结构 进程上下文:指进程的用户地址空间内容、寄存器内容及与 进程相关的核心数据结构;包括三部分“上下文“:用户级、 寄存器级、系统级 用户级上下文:正文段即代码(text);数据段(data);栈段(user stack):用户态执行时的
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号