《进程的基本概念.ppt》由会员分享,可在线阅读,更多相关《进程的基本概念.ppt(62页珍藏版)》请在三一办公上搜索。
1、第2章 进程管理,2.1 进程的概念2.2 进程控制2.3 进程同步2.4 进程通信2.5 线程,目录,本章学习目标,在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。所以,本章的主要问题是:进程的概念:进程的状态、进程的调度、进程控制与协作、进程的通讯、进程的特征进程的同步:同步的概念、同步的实现进程通信,引言,处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业
2、管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。进程通常具有三种状态:运行状态(正在使用CPU)、阻塞状态(等待输入/输出)和就绪状态(等待分配CPU)。,2.0 前趋图(Precedence Graph),前趋图是一个有向无循环图,记为DRA(Drected Acyclic Graph)前趋图用来描述程序各部分间的依赖关系或一个大的计算各子部分间的因果关系 前趋图中的元素 结 点:表示一个语句、程序段、进程 有向边:表示结点间的偏序关系(前趋关系)=(Pi,Pj)|Pi must complete before Pj may s
3、tart 若(Pi,Pj),可写成 Pi Pj,称 Pi是 Pj的直接前趋,而 Pj是Pi的直接后继。,前趋图示例,2,3,1,6,7,4,5,7个结点的前趋图,前趋关系P1 P2,P1 P3P1 P4,P2 P5P3 P5,P4 P6P5 P7,P6 P7,2、1 进程的概念,进程的引入进程的定义,进程的引入,1程序的顺序执行及其特性2程序的并发执行及其特性,程序的顺序执行及其特性,顺序执行:一个具有独立功能的程序独占处理机直至得到最终结果的过程称为程序的顺序执行。,I代表输入操作,P代表计算操作,O为输出操作,程序顺序执行的例,程序顺序执行前趋图,I1,P1,O1,I2,P2,O2,语句的
4、执行顺序 S1:a=x+y S2:b=a-5 S3:c=b+1,说明,顺序执行是单道批处理系统的执行方式在单道程序工作环境中,我们把一个“程序”理解为“一个在时间上按严格次序前后相继的操作序列”由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,顺序程序特征:程序执行的顺序性程序执行的封闭性 独占资源,执行过程中不受外界影响程序执行结果的确定性程序结果的可再现性 程序运行结果与程序执行速度无关,只要初始状态相同,结果应相同,程序的并发执行及其特性,无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业调用,因
5、此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。并发执行:若干个程序段同时在系统中交替运行,这些程序段的执行在时间上是重叠的。,并发执行时的前驱图,并发执行的新特征,比顺序程序高得多的复杂性。失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。失去可再现性:失去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征间断性(共享性),失去可再现性例:,一飞机订票系统,两个终端,运行T1、T2进程T1
6、:T2:.Read(x);Read(x);if x=1 then if x=1 then x:=x-1;x:=x-1;write(x);write(x);.,程序与计算不再一一对应,无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。,程序的制约方式有如下两种:(1)间接制约方式。这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等
7、待,直至获得可用资源时再继续运行。(2)直接制约方式。这通常是在那些逻辑上相关的程序段之间发生的。一般是由于各种程序段要求共享信息引起的。,计算之间存在复杂的相互制约关系,2.1.4 进程(Process),进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。进程的特征(1)动态性程序是指令的集合,进程是指令的执行过程(2)并发性(3)独立性(4)异步性,进程的特征1动态性 程序是指令的集合,进程是指令的执行过程动态性是进程最基本的特征。2.并发性 这是指多个进程实体,同存于内存中,能在一段时间内同时运行。并发性是进程的重要特征,同时也成为O
8、S的重要特征。引入进程的目的也是为了使该进程的程序能和其它进程的程序并发执行。,3.独立性 进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。没有建立进程的程序,不能作为一个独立的单位参加运行。4.异步性 进程按各自独立的、不可预知的速度向前推进 5.结构特性 从结构上看,进程是由程序段、数据段及进程控制块三部分组成。,说明,进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。同一程序段可在不同数据集合上运行,可构成不同的进程,进程具有创建其他进程的功能进程是暂时的,程序的永久
9、的:进程是一个状态变化的过程,程序可长久保存。进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。操作系统中的每一个程序都是在一个进程现场中运行的。,进程的状态及状态变化图,(1)执行(运行)状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。多个就绪状态的进程形成就
10、绪队列。(3)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。可以有多个阻塞队列。,典型的进程状态演变图,运行,就绪,阻塞,进程的状态及其转换,状态变化:(1)就绪状态变化到运行状态。(2)运行状态变化到就绪状态。(3)运行状态变化到阻塞状态。(4)阻塞状态变化到就绪状态。,二、新状态和终止状态 1.新状态 是一个进程刚刚建立,但还没有将它送入就绪队列时的状态 2.终止状态 当一个进程已经正常结束或异常结束,OS已经将它从就绪队列中移出,但还没有将它撤消时的状态。建立进程 第一步为
11、新登陆的用户程序创建进程,并为他分 配资源,此时进程处于新状态 第二步把新创建的进程送入就绪队列,一旦进程进入 就绪队列,它便由新状态转变为就绪状态。撤销进程 第一步?第二步?,二、进程状态的转换 对于一个进程来说“新状态”和“终止状态”只有一次。1新状态 就绪状态 当就绪队列能够接纳新的进程时,OS便把处于新状态的进程移入就绪队列,此时进程由新状态转变为就绪状态。2就绪状态 执行状态 处于就绪状态的进程,当进程调度程序为它分配了处理机后,该进程便由就绪状态变为执行状态,正在执行的进程也称为当前进程。,3.执行状态 阻塞状态 正在执行的进程因发生某件事件而无法执行。例如:进程请求访问临界资源,
12、而该资源正被其它进程访问,则请求该资源的进程将由执行状态转变为阻塞状态。4执行状态 就绪状态 正在执行的进程,如果事件发生或中断而被暂停执行,该进程便由执行状态转变为就绪状态。(分时系统中,时间片用完;抢占调度方式中,优先权高抢占处理机)5执行状态 终止状态 当一个进程经完成或发生某事件,如程序中出现地址越界、非法指令等错误,而被异常结束时,进程将由执行状态转变为终止状态。,6.阻塞状态变化到就绪状态,3、进程的挂起状态,一、挂起状态的引入 1终端用户的需要 当终端用户在自己的程序运行期间,发现有可疑问题时,往往希望暂时使自己的进程静止下来。也就是说,如果进程处于执行状态,则暂停执行;如果进程
13、处于就绪状态,则暂时不接受调度,以便研究其执行情况或对程序进行修改。我们把这种静止状态称为挂起状态。,2.父进程的需求 父进程常常希望考察和修改子进程,或者当要协调各子进程间的活动时,要挂起自己的子进程。3.操作系统的需要 操作系统有时需要挂起某些进程,检查运行中资源的使用情况及进行记帐,以便改善系统的运行性能。4.对换的需要 为了缓和内存紧张的情况,将内存中处于阻塞状态的进程换至外存上。5.负荷调节的需要 当实时系统中的工作负荷较重,可能影响到对实时任务的控制时,可由系统把一些不重要或不紧迫的进程挂起,以保证系统仍然能正常运行。,二、进程状态的转换 在引入挂起状态后,又将增加从挂起状态(又称
14、静止状态)到非挂起状态(又称活动状态)的转换。或者相反,可以有以下几种情况:1活动就绪 静止就绪 当进程处于未被挂起的就绪状态时,称此为活动就绪状态,表示为Readya。当用挂起原语Suspend将该进程挂起后,该进程便转变为静止就绪状态。表示为Readys(处在Readys状态的进程,不再被调度执行),2活动阻塞 静止阻塞 当进程处于未被挂起的阻塞状态时,称为它处在活动阻塞状态(表示为Blockeda)。当Suspend原语将它挂起后,进程便转变为静止阻塞状态(表示为Blockeds)。处于该状态的进程,在其所期待的事件出现以后,他将从静止阻塞变为静止就绪。3静止就绪 活动就绪 处于Read
15、ys状态的进程,若用激活原语Active激活后,该进程将转变为Readya状态。4静止阻塞 活动阻塞 处于Blockeds状态的进程,若用激活原语Active激活后,进程将转变为Blockeda状态。,挂起,具有挂起状态的进程状态图,2.1.5 进程控制块(Process Control Block),概念:系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程 系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志 进程与PCB是一一对应的,进程映象(进程要素),用户程序用户数据栈用于过程调用和参数传递进程控制块PCB(执行上下文)控制进程
16、所需的数据(进程属性),包括:进程标识符信息处理器状态信息进程控制信息,进程控制块,为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图3.4(a)所示。程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。如图3.4(b)所示。,PCB用于对当前系统中的进程进行控制与管理,描述与记录了进程在它的整个生命周期内动态变化的数据结构特征。,说明,系统要创建一个进程时,首先创建PCB之后,根据PCB中信息对进程进行管理与控制例如:调
17、度到某进程后,根据其PCB中所保存的处理机状态信息去恢复运行现场当进程完成它的功能后,系统释放PCB,进程消亡在进程的整个生命周期中,系统总是通过其PCB对进程进行管理与控制PCB是进程存在的唯一标志,PCB的内容:调度信息:进程名;进程的内部标识;用户名;进程状态;进程优先级;进程的存储信息(起始地址,长度);进程资源清单;进程家族关系;进程的队列指针;进程的消息队列指针;进程当前打开的文件.现场信息:记录了重要的寄存器;(虚)时钟等内容,进程标识符(在PCB中),系统区分不同进程的唯一依据外部标识:创建者提供,由字母和数字组成内部标识:方便系统使用而设置,处理器状态信息(在PCB中),处理
18、器寄存器内容用户可见寄存器控制和状态寄存器栈指针程序状态字(PSW)包含状态信息例子:在Pentium机中的EFLAGS寄存器,进程控制信息(在PCB中),调度和状态信息进程状态(如:运行,就绪,阻塞.)进程优先级该进程在等待的事件(若被阻塞)数据结构信息进程可能需要有指向其他PCB的指针,父-子进程关系及其它结构,进程间通信IPC可能需要标志和信号进程特权如:访问特定的内存地址.存储管理指向赋予该进程的段/页表的指针所拥有的资源和使用情况使用中的资源:打开的文件,I/O设备.(CPU,I/O.)的时间使用史,进程控制信息(在PCB中),执行的方式,为了提供对PCB(和OS其它数据)的保护,多
19、数处理器支持至少两种执行方式:特权方式(又称作系统方式,内核方式,管理方式,控制方式)操作控制寄存器,基本 I/O指令,存储管理.用户方式为此,CPU提供一个(或一些)方式位,这些二进制位只能被中断、陷阱或OS调用所设置,PCB表:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表 PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度(注:多道程序中的多道与系统并发度不同),PCB表组织方式:,常用的组织方式有两种:链接方式、索引方式。1、链接方式:具有相同状态的PCB,用其中的链接字,链接成一个队列。这样就可以形成就绪队列、若干个阻塞队列和空白队列等。对
20、其中的就绪队列常按照进程优先权的大小排列,把优先权高的进程的PCB排在队列前面。进程队列:不同状态进程分别组成队列运行队列、就绪队列、等待队列,2.索引方式:系统根据所有进程的状态,建立几张索引表。例如:就绪索引表、阻塞索引表的国内。并把各索引表在内存的首地址记录在内存中的一些专用单元中。每个索引表的表目中,记录具有相同状态的某个PCB在PCB表中的地址。,进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维
21、护系统工作的依据。,总结控制块的作用:,进程何时创建?,提交一个批处理作业用户登录由OS创建,用以向一用户提供服务(如:打印文件)由已存在的一进程创建一个用户程序可创建成多个进程,批处理作业发出暂停(Halt)指令用户退出登录进程执行一中止服务请求出错及失败因素,进程何时中止?,进程中止的原因,正常结束给定时限到缺少内存存储器出界保护性出错例子:写只读文件算术错超出时间进程等待超过对某事件的最大值,进程中止的原因,I/O 失败无效指令如试图执行数据特权指令操作系统干预如当死锁发生时父进程请求中止某一子进程父进程中止,所以子进程也中止,【思考题】,1如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?2.有没有这样的状态转换,为什么?等待运行;就绪等待3.一个状态转换的发生,是否一定导致另一个转换发生,列出所有的可能4.举3个日常生活中类似进程的例子,