《进程管理传》PPT课件.ppt
《《进程管理传》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《进程管理传》PPT课件.ppt(181页珍藏版)》请在三一办公上搜索。
1、2023/8/2,1,2.1 进程的概念2.2 进程控制2.3 进程同步2.4 经典进程的同步问题2.5 管程机制2.6 进程通信2.7 线程,第二章 进程管理,2023/8/2,2,计算机系统中,最宝贵的资源是CPU。为了提高它的利用率,需要引入多道程序设计的概念。当内存储器中同时有多个程序存在时,如果不对人们熟悉的“程序”概念加以扩充,就无法刻画多个程序共同运行时系统呈现出的特征。因此,在本章将给出操作系统中的重要概念:“进程”。它将是在多道程序运行环境下,系统资源分配和独立运行的基本单位。,退出,2023/8/2,3,2.1 进程的概念,2.1.1 程序的顺序执行及其特点 前趋图 程序并
2、发执行及其特征2.1.4 进程的特征与状态2.1.5 进程控制块,2023/8/2,4,2.1.1程序的顺序执行,程序的顺序执行如图在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。一道程序执行完后另一道才能开始。,2023/8/2,5,2.1.1程序的顺序执行,仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。S1:a=x+y;S2:b=a-5;S3:c=b+1;,2023/8/2,6,程序顺序执行的特点,顺序性:一个程序开始执行必须要等到前一个程序已执行完成。绝对不可能出现在
3、一个程序运行过程中,又夹杂进另一个程序执行的现象存在。,2023/8/2,7,程序顺序执行的特点,封闭性:程序一旦开始执行,其计算结果不受外界因素影响。任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争。,2023/8/2,8,程序顺序执行的特点,可再现性:程序的结果与它的执行速度无关(即与时间无关),只要执行环境和初始条件相同,当多次重复执行一个程序时,无论不停的执行还是“走走停停”,一定会得到相同的结果。,2023/8/2,9,前趋图,概念:前趋图是一个有向无循环图。要求每个结点可用于表示一条语句、一个程序段或进程等 结点间的有向边表示在两个结点之间存在的前趋关系
4、-=(Pi,Pj)|Pi必须在Pj开始之前完成用途:表示程序的执行顺序,2023/8/2,10,前趋图,把没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node)。每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或结点的执行时间。,2023/8/2,11,前趋图,P1P2,P1P3,P1P4,P2P5,P3P5,P4P6,P4P7,P5P8,P6P8,P7P9,P8P9或表示为:P=P1,P2,P3,P4,P5,P6,P7,P8,P9=(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,
5、P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)应当注意,前趋图中必须不存在循环,但在图2-2(b)中却有着下述的前趋关系:S2S3,S3S2 这种前趋关系是不可能满足的。,对于图 2-2(a)所示的前趋图,存在下述前趋关系:,2023/8/2,12,练习,习题2S1:a:=x+y;S2:b:=z+1;S3:c:=a-b;S4:w:=c+1;,2023/8/2,13,2.1.3程序的并发执行及其特征,所谓程序的并发执行是指:若干个程序同时在系统中执行,这些程序的执行在时间上是重叠的,一个程序的执行尚未结束,另一个程序的执行已经开始。,并发与并行概念的区别?
6、Concurrency,parallel,2023/8/2,14,程序并发执行的特征,间断性失去程序的封闭性不可再现性,任何并发执行都是不可再现的吗?,2023/8/2,15,间断性:“执行的顺序性”被打破了。例:从上图中可以看出,时刻6程序A打印完毕,按说应该继续执行,但是CPU已经分配给了程序B,因此程序A只能等到时刻9在程序B请求打印时,才能重新获得CPU。这就是说,在程序A执行过程时,夹杂进了程序B的执行,打破了程序执行的顺序性,内存中多个程序的执行过程被交织在一起。从宏观上看,好几个程序都在运行着(比如,在时间区间412,程序A和程序B都在做着自己的事情;在时间区间1217,程序B和
7、程序C都在做着自己的事情);而从微观上看,每个时刻CPU只能为一个程序服务,因此运行着的程序都是走走停停。总之,在程序并发执行时,各个程序的执行已经不再可能完全依照自己的执行次序执行了。,2023/8/2,16,封闭性被打破:程序并发执行时,多个程序共享系统中的资源,其状态可有多个程序来改变。因此,某程序在执行时必然受其他程序的影响。如可能有多个程序竞争cpu。,2023/8/2,17,不可再现性:“结果的再现性”被打破了。举例:有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时,都要做N=N+1操作;程序B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B
8、以不同的速度运行。(1)N=N+1在Print(N)和N=0之前,此时得到的N值分别为n+1,n+1,0。(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。,2023/8/2,18,2.1.4 进程的特征与状态,为了对并发执行的程序加以描述和控制,人们引入了“进程”。,2023/8/2,19,进程的特征(五个基本特征),结构特征:进程是由程序段、数据段、进程控制块三部分组成,2023/8/2,20,进程的特征(五个基本特征),动态性:(最基本特征)进程是程序的一次执行过程。“进程”
9、是一个动态的概念。程序是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,因此是一个静态的概念。可以这么来理解,一套电影拷贝相当于一个程序,它可以长期保存;该拷贝在电影院的一次放映,就相当于一个进程。进程有生命周期。进程既然是程序的执行,或者说是“一次运行活动”。因此当系统要完成某一项工作时,它就“创建”一个进程,以便能去执行事先编写好的、完成该工作的那段程序。程序执行完毕,完成了预定的任务后,系统就“撤消”这个进程,收回它所占用的资源。一个进程创建后,系统就感知到它的存在;一个进程撤消后,系统就无法再感知到它。于是,从创建到撤消,这个时间段就是一个进程的“生命期”。进程的存在是暂时
10、的。而程序的存在是永久的。,2023/8/2,21,进程的特征(五个基本特征),并发性:多个进程可同存于内存中,能在一段时间内同时运行(重要特征,也是os重要特征)。这正是引入进程的目的,而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确的并发执行。,2023/8/2,22,进程的特征(五个基本特征),独立性:独立运行的基本单位,独立获得资源和调度的基本单位。(目前有些变化)。而因程序(在没有为它创建进程时)不具有PCB,所以它是不可能在多道程序环境下独立运行的。,2023/8/2,23,进程的特征(五个基本特征),异步性:各进程按各自独立的不可预知的速度向前推进进程与程
11、序的区别动态,静态有生命周期,永久的组成不同不是一一对应的。,2023/8/2,24,进程定义,进程有很多各式各样的定义,如:进程是程序的一次执行进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。,2023/8/2,25,进程的三种基本状态,进程间由于共同协作和共享资源,导致生命期中的状态不断发生变化。比如一个进程在等待输入/输出的完成,这时它不能继续运行。另一种情形是一个进程是可以运行的,但由于操作系统把处理机分配给了别的进程使用,于是它也只能
12、处于等待。只有当前占有CPU的进程,才真正在处于运行。进程有三种基本状态:就绪、执行、阻塞,2023/8/2,26,进程的三种基本状态,就绪状态(Ready):存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行。这些进程所处的状态为就绪状态。(可有多个进程)执行状态(Running):正在运行的进程所处的状态为执行状态。(只有一个进程)阻塞状态(Blocked):正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃CPU而处于暂停状态,称该进程处于等待状态、阻塞状态。典型事件:请求I/O,申请缓冲空间等。(可有多个队列),2023/8/2,27,一个进程的状
13、态,可以随着自身的推进和外界环境的变化而变化,从而使其从一种状态变迁到另一种状态。下图是进程状态变迁图,箭头表示的是状态变迁的方向,旁边标识的文字是引起这种状态变迁的原因。,2023/8/2,28,处于就绪状态与阻塞状态的进程,虽然都“暂时无法运行”,但两者有着本质上的区别。前者已做好了运行的准备,只要获得CPU就可以投入运行;而后者要等待某事件(比如输入/输出)完成后才能继续运行,因此即使此时把CPU分配给它,它也无法运行。,2023/8/2,29,练习,进程与程序的主要区别在于进程是_的,而程序是_的,一个程序可以对应_进程。下列进程状态转换中,绝对不可能发生的状态转换是(),一般不会发生
14、的状态转换是()A 就绪执行,B 执行就绪 C 就绪阻塞D 阻塞就绪 D 阻塞执行 E 执行阻塞,2023/8/2,30,练习,D 阻塞执行:是可能的,如果一个进程因等待I/O而产生阻塞,在I/O资源释放后,若CPU处于休眠状态,此进程就可以直接从阻塞状态迁移到执行状态。C 就绪阻塞:是不可能的,一个就绪的进程不会遇到其I/O或其它资源的阻塞,只有一个处于执行状态的进程才会阻塞。,2023/8/2,31,练习,分配到必要的资源并获得处理机时的进程状态是_。A、就绪状态 B、执行状态 C、阻塞状态D、撤消状态 当_时,进程从执行状态转变为就绪状态。A、进程被调度程序选中 B、时间片到C、等待某一
15、事件 D、等待的事件发生,2023/8/2,32,练习,下面对进程的描述中,错误的是:A、进程是动态的概念 B、进程执行需要处理机C、进程是有生命周期的 D、进程是指令的集合进程是基本状态有_、_、_。进程的基本特征是_、_、_、_、_。,2023/8/2,33,进程的挂起状态,引入挂起状态主要 原因:用户的需求 父进程的需求 负荷调节的需要操作系统的需求,引入挂起状态后的进程状态转换 执行状态静止就绪 活动就绪静止就绪 活动阻塞静止阻塞静止阻塞静止就绪静止就绪活动就绪静止阻塞活动阻塞,2023/8/2,34,具有挂起状态的进程状态图,调度,时间片用完,I/O完成,I/O完成,2023/8/2
16、,35,练习,正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为()状态;处于静止阻塞状态的进程,在进程等待的事件出现后,应变为()状态;若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为()状态;若进程已处于阻塞状态,则此时应转变为()状态。,2023/8/2,36,进程的创建状态,创建状态:创建一个进程一般要通过两个步骤:为一个新进程创建PCB,并填写必要的管理信息;把该进程转入就绪状态并插入就绪状态之中。,引入创建状态,是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。,2023/8/2,37,进程的终止状态,终
17、止状态:终止一个进程一般要通过两个步骤:等待操作系统进行善后处理;将PCB清零,并将PCB空间返还系统。,增加的状态NULL-创建创建-活动就绪创建-静止就绪执行-终止,2023/8/2,38,2.1.5 进程控制块(Process Control Block),一个进程创建后,需要有自己对应的程序以及该程序运行时所需的数据。但仅有程序和数据还不行,我们知道,进程在其生命期内是走走停停,停停走走的,暂时停下来以后,至少应该要有一个属于它专用的地方,来记录它暂停时的运行现场。否则,它再次被投入运行时,就无法从上次被打断的地方继续运行下去。,2023/8/2,39,因此,为了管理和控制进程,系统在
18、创建每一个进程时,都为其开辟一个专用的存储区,用以随时记录它在系统中的动态特性。而当一个进程被撤消时,系统就收回分配给它的存储区。通常,把这一存储区称为该进程的“进程控制块”PCB(Process Control Block)。,2023/8/2,40,进程控制块(Process Control Block),为了描述和控制进程的运行,系统为每个进程定义了一个数据结构-进程控制块,它是进程实体的一部分,是操作系统中最重要的记录型数据结构。,2023/8/2,41,进程控制块的作用,进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进
19、程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志进程与PCB是一一对应的,2023/8/2,42,这样,在计算机系统内部,一个进程要由3个部分组成:程序、数据集合以及进程控制块PCB。下图表示了进程3个组成部分的可能关联情形。其中图(a)表示程序和数据集合存放在一个连续存储区的情形;图(b)表示程序和数据集合在不连续存储区的情形;图(c)表示同一个程序运行在不同数据集合上时,形成两个进程的情形。,2023/8/2,43,2023/8/2,44,随操作系统的不同,PCB的格式、大小以及内容也不尽相
20、同。一般地,在PCB中大致应包含4方面的信息。,PCB中的信息,2023/8/2,45,PCB中的信息,进程描述信息:进程标识符(process ID),用于惟一地标识一个进程。一个进程通常有两种标识符。内部标识符:在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。外部标识符:它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。,2023/8/2,46,PCB中的信息,CPU状态信息(现场):
21、各种寄存器值 通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,;指令计数器,其中存放了要访问的下一条指令的地址;程序状态字PSW,其中含有状态信息,如条件码、执行方式、中断屏蔽标志等;用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。,2023/8/2,47,进程调度信息:(与进程调度与进程对换有关的信息)进程状态,指明进程的当前状态,作为进程调度和对换时的依据;进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;进程调度所需的其它信息,它们与所采用的进程调度算法
22、有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等;事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。,PCB中的信息,2023/8/2,48,进程控制信息:程序和数据的地址,是指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;进程同步和通信机制,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;资源清单,是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;链接指针,它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。,PCB中
23、的信息,2023/8/2,49,在多道程序设计环境里,同时会创建多个进程。当计算机系统只有一个CPU时,每次只能让一个进程运行,其他的进程或处于就绪状态,或处于阻塞状态。为了对这些进程进行管理,操作系统要做两件事。(1)把处于相同状态的进程的PCB,通过各自的队列指针链接在一起,形成一个个队列。,PCB表组织方式,2023/8/2,50,(2)为每一个队列设立一个队列头指针,它总是指向排在队列之首的进程的PCB。注:排在队尾的进程的PCB,它的“队列指针”项内容应该为“-1”,或一个特殊的符号,以表示这是该队的队尾PCB。,2023/8/2,51,在单CPU系统,任何时刻系统中都只有一个进程处
24、于执行状态,因此执行队列中只能有一个PCB;系统中所有处于就绪状态的进程的PCB排成一队,称其为“就绪队列”。一般地,就绪队列中会有多个进程的PCB排在里面,它们形成处理机分配的候选对象。如果就绪队列里没有PCB存在,则称该队列为空;所有处于阻塞状态进程的PCB,应该根据阻塞的原因进行排队,每一个都称为一个“阻塞队列”。比如等待磁盘输入/输出进程的PCB排成一个队列,等待打印机输出进程的PCB排成一个队列等。所以,系统中可以有多个阻塞队列,每个阻塞队列中可以有多个进程的PCB,也可以为空。下图是进程各队列的示意图。,2023/8/2,52,2023/8/2,53,从图上可以看出,现在名为PCB
25、1的进程正在CPU上运行,因为它的PCB排在执行队列中。现在就绪队列中有四个进程排在里面,它们分别是PCB2、PCB3、PCB7和PCB6。系统正常运行时,谁的PCB排在队列的前面,谁的PCB排在队列的后面,那是无法预料的。现在进程PCB5和PCB8排在阻塞队列1中,它们被阻塞的原因相同。现在进程PCB10、PCB9和PCB4排在阻塞队列2中,它们被阻塞的原因相同。,2023/8/2,54,PCB表:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表 PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度,PCB组织方式总结,2023/8/2,55,链接结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程管理传 进程 管理 PPT 课件
链接地址:https://www.31ppt.com/p-5611272.html