第二进程管理课件.ppt
《第二进程管理课件.ppt》由会员分享,可在线阅读,更多相关《第二进程管理课件.ppt(224页珍藏版)》请在三一文库上搜索。
1、,Page 1,2019/2/11,第二章 进程管理,操作系统,刘 刚 ,Page 2,2019/2/11,第二章 进程管理,重点 理解进程的含义 理解和掌握同步的概念及经典进程同步问题 ,是本课程的重点之一 难点 会写进程同步问题的算法 知识点 进程、线程、进程的特征、PCB、进程控制、进程状态转换、 进程同步、进程通信,Page 3,2019/2/11,第二章 进程管理,进程的基本概念 进程控制 进程同步 经典进程的同步问题 管程机制 进程通信 线程,Page 4,2019/2/11,进程的基本概念,程序的顺序执行及其特征 前趋图 程序的并发执行及其特征 进程的特征与状态 进程控制块,Pa
2、ge 5,2019/2/11,程序的顺序执行及其特征,两种方式 顺序执行:是单道批处理系统的执行方式,也用于简单的单片机系统 并发执行:现在的操作系统,具有许多新的特征。引入并发执行的目的是为了提高资源利用率 顺序执行的特征 顺序性:按照程序结构所指定的次序(可能有分支或循环) 封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定 可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系,Page 6,2019/2/11,程序的顺序执行及其特征,仅当前一操作(程序段)执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结果。
3、,语句s1,s2,s3必须按顺序执行,S1: a=x+y; S2: b=a-5; S3: c=b+1;,Page 7,2019/2/11,程序的顺序执行及其特征,IiCiPi和S1S2S3,程序的顺序执行,Page 8,2019/2/11,进程的基本概念,程序的顺序执行及其特征 前趋图 程序的并发执行及其特征 进程的特征与状态 进程控制块,Page 9,2019/2/11,前趋图,前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点间
4、的有向边则用于表示两个结点之间存在的偏序(Partial Order)或前趋关系(Precedence Relation)“” =(Pi, Pj)|Pi must complete before Pj may start, 如果(Pi, Pj),可写成PiPj,称Pi是Pj的直接前趋,而称Pj是Pi的直接后继。在前趋图中,把没有前趋的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点(Final Node),Page 10,2019/2/11,前趋图,每个结点还具有一个重量(Weight, 权值),用于表示该结点所含有的程序量或结点的执行时间,Page 11,2019/
5、2/11,前趋图,对于图(a)所示的前趋图, 存在下述前趋关系 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, P6), (P4, P7), (P5, P8), (P6, P8), (P7, P9), (P8, P9) 应当注意,前趋图中必须不存在循环,但在图(b)中却有着下述的前趋关系:S2S3, S3S2,Pag
6、e 12,2019/2/11,进程的基本概念,程序的顺序执行及其特征 前趋图 程序的并发执行及其特征 进程的特征与状态 进程控制块,Page 13,2019/2/11,程序的并发执行及其特征,并发执行时的前趋图,Page 14,2019/2/11,程序的并发执行及其特征,在该例中存在下述前趋关系: IiCi,IiIi+1, CiPi, CiCi+1,PiPi+1 而Ii+1和Ci及Pi-1是重迭的, 亦即在Pi-1和Ci以及Ii+1之间,可以并发执行。,Page 15,2019/2/11,程序的并发执行及其特征,对于具有下述四条语句的程序段 S1: a=x+2 S2: b=y+4 S3: c=
7、a+b S4: d=c+b,Page 16,2019/2/11,程序的并发执行及其特征,例如有两个循环程序A和B,它们共享一个变量N 程序A和B以不同的速度运行(失去封闭性,导致不可再现性) N=N+1在Print(N)和N=0之前,此时得到的N值分别为n+1, n+1, 0 N=N+1在Print(N)和N=0之后,此时得到的N值分别为n, 0, 1 N=N+1在Print(N)和N=0之间,此时得到的N值分别为n, n+1, 0,程序A:N=N+1;,程序B: Print(N); N=0 ;,Page 17,2019/2/11,程序的并发执行及其特征,N:n,程序A:N=N+1; /N =
8、 n+1,程序B: Print(N); /N=n+1 N=0 ; /N=0,N:n,程序B:Print(N); /N=n N=0 ; /N=0,程序A:N=N+1; /N = 1,N:n,程序B: Print(N); /N=n,程序A:N=N+1; /N = n+1,程序B:N=0; /N = 0,注意:A、B程序得到的共享变量结果不同,失去封闭性、不可再现性;要得到良好的控制,系统必须要进行管理进程控制管理,Page 18,2019/2/11,程序的并发执行及其特征,并发执行的特征 间断(异步)性 “走走停停“,一个程序可能走到中途停下来,失去原有的时序关系; 失去封闭性 共享资源,受其他程
9、序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。 失去可再现性 失去封闭性 失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征,Page 19,2019/2/11,程序的并发执行及其特征,并发执行失去封闭性的原因是共享资源的影响,去掉这种影响就行了。1966年,由Bernstein给出并发执行的条件。(这里没有考虑执行速度的影响。) 程序 P(i) 针对共享变量的读集和写集 R(i)和W(i) 条件:任意两个程序P(i)和P(j),有: R(i)W(j)=; W(i)R(j)=; W(i)W(j)=; 前两条保证一个程序的两次读
10、之间数据不变化;最后一条保证写的结果不丢掉,现在的问题是这个条件不好检查,Page 20,2019/2/11,程序并发执行的条件(1966年由Bernstein提出),若两个程序P1和P2满足下述条件,便能并发执行且有可再现性: R(P1)W(P2)R(P2)W(P1)W(P1)W(P2) = “读集” R ( Pi ) 为程序 Pi 在执行期间所需参考的所有变量的集合。 “写集” W ( Pi )为程序 Pi 在执行期间所需改变的所有变量的集合。 例如:S1: a := x + y S2: b := z + 1 S3: c := a - b S4: d := c + 1,Page 21,20
11、19/2/11,程序并发执行的条件(1966年由Bernstein提出),S1: a := x + y R(S1)= W(S1)= S2: b := z + 1 R(S2)= W(S2)= S3: c := a - b R(S3)= W(S3)= S4: d := c + 1 R(S4)= W(S4)= 语句S1、S2_并发,因为_。 语句S1、S3_并发,因为_。 语句S2、S3_并发,因为_。 语句S3、S4_并发,因为_。 语句S2、S4_并发,因为_。,x, y,a,z,b,a, b,c,c,d,可以,R(P1)W(P2)R(P2)W(P1)W(P1)W(P2) = ,不能,R(S3)
12、W(S1)=a ,不能,不能,可以,R(S3)W(S2)=b ,R(S4)W(S3)=c ,Page 22,2019/2/11,进程的基本概念,程序的顺序执行及其特征 前趋图 程序的并发执行及其特征 进程概念 进程的特征与状态 进程控制块,Page 23,2019/2/11,进程概念,何谓进程(Process) 如何理解进程概念? 进程与程序有何差别?,描述性定义:计算机中的所有程序(软件),按照某种顺序运行,这种运行的过程称之为进程。,Page 24,2019/2/11,进程概念,阅读菜谱,准备原料,烹制菜肴,饭菜,阅读洗衣机手册,准备衣服、洗衣粉,设定参数,洗衣服,干净衣服,程序,输入,运
13、行,输出,程序,输入,运行,输出,分时切换,洗衣进程,做饭进程,Page 25,2019/2/11,进程概念,进程的核心思想,进程是某种类型的一个活动,它有程序、输入、输出和状态。 在分时操作系统中,单个CPU被若干进程共享,它使用某种调度算法决定何时停止一个进程的运行,转而为其他进程提供服务。,Page 26,2019/2/11,进程概念,较典型的进程定义有: 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位,Page 27,2019/2/11,进程的基本概念,程序的顺序执行及其特征
14、前趋图 程序的并发执行及其特征 进程概念 进程的特征与状态 进程控制块,Page 28,2019/2/11,进程的特征与状态,动态性:进程具有动态的地址空间(数量和内容),地址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块的建立和系统收回) 独立性:各进程的地址空间相互独立,除非采用进程间通信手段; 并发性:多个进程实体同存于内存中,且能在一段时间内同时运行;引入进程实体的目的就是并发执行 异步性:各进程按各自独立的、不可预知的速度向前推进 结构性:程序段、数据段和PCB;程序文件中通常也划分了代码段和数据段,进程的创建与撤消就是PCB的创
15、建与撤消,Page 29,2019/2/11,2.1.4 进程的特征与状态,1. 进程的特征和定义,通常的程序是不能并发执行的。应为之配置进程控制块, 即PCB;而由程序段、相关的数据段和PCB三部分便构成 了进程实体。在许多情况下所说的进程,实际上是指进程 实体。所谓创建进程,实质上是创建进程实体中的PCB; 而撤销进程,实质上是撤销进程的PCB。,Page 30,2019/2/11,进程概念,较典型的进程定义有: 进程是程序的一次执行 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 在引入了进程实体的概
16、念后,我们可以把传统OS中的进程定义为:“进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”,Page 31,2019/2/11,进程与程序的区别,进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制 进程是暂时的,程序的永久的:进程是一个状态变化的过程,程序可长久保存 进程与程序的组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息) 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序,Page 32,2019/2/11,进程的特征与状态进
17、程的三种基本状态,就绪(Ready)状态 可运行,已获得除CPU外的所需资源,等待分配CPU 一个系统中多个处于就绪状态的进程排成就绪队列 执行(Running)状态 占用CPU运行;处于此状态的进程的数目=CPU的数目 没有其它进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的idle进程(相当于空操作) 阻塞(Blocked)状态 等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行 通常阻塞进程也排成一个阻塞队列,Page 33,2019/2/11,进程的特征与状态进程的三种基本状态,就绪,阻塞,执行,I/O完成
18、,I/O请求,进程调度,时间片完,Page 34,2019/2/11,进程的特征与状态进程的三种基本状态,问题1:为什么不能从阻塞态变为运行态呢? 问题2:为什么不能从就绪态变为阻塞态呢?,Page 35,2019/2/11,进程的特征与状态进程的三种基本状态,问题1:为什么不能从阻塞态变为运行态呢? 问题2:为什么不能从就绪态变为阻塞态呢? 答案: 三种状态的变换体现了OS的资源管理作用 进程的核心思想在于运行CPU资源的分配,状态不能够满足系统和用户需要!,Page 36,2019/2/11,创建状态和终止状态,4) 创建状态 进程刚建立,还未进入就绪队列。 5) 终止状态 进程已(正常或
19、异常)结束,已从就绪队列中移出,但尚未撤销。 暂留,以便其他进程收集该进程的有关信息。,Page 37,2019/2/11,图 2-5 进程的五种基本状态及其转换,Page 38,2019/2/11,进程的特征与状态挂起状态(静止状态),这个问题的出现是由于进程优先级的引入,一些低优先级进程可能等待较长时间,从而被对换至外存。这样做的目的是: 提高处理机效率:就绪进程表为空时,要提交新进程,以提高处理机效率; 为运行进程提供足够内存:资源紧张时,暂停某些进程,如:CPU繁忙(或实时任务执行),内存紧张 用于调试:在调试时,挂起被调试进程(从而对其地址空间进行读写),Page 39,2019/2
20、/11,进程的特征与状态挂起状态,引起进程挂起的原因有以下几种 终端用户的请求 当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时将自己的程序静止下来 父进程请求 父进程需要考查和修改子进程 负荷调节的需要 在实时系统中为了调整工作负荷可将不重要的进程挂起 操作系统的需要 如检查运行中的资源使用情况,Page 40,2019/2/11,进程的特征与状态状态转换,挂起(Suspend):进程从内存转到外存 就绪挂起:活动就绪到静止就绪,当有高优先级阻塞(系统认为会很快就绪的)进程和低优先级就绪进程时,系统会选择挂起低优先级就绪进程 阻塞挂起:活动阻塞到静止阻塞,无进程处于就绪状态或就绪进程
21、要求更多内存资源时,会进行这种转换,以提交新进程或运行就绪进程 运行到就绪挂起:对抢占式分时系统,当有高优先级阻塞挂起进程因事件出现而进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态,执行的进程暂停 就绪的进程暂不调度 阻塞的进程即使引起阻 塞的事件消失也不调度,Page 41,2019/2/11,进程的特征与状态状态转换,激活(Activate):进程从外存转到内存 就绪激活:静止就绪到活动就绪,没有就绪进程或挂起就绪进程优先级高于就绪进程时,会进行这种转换; 阻塞激活:静止阻塞到活动阻塞,当一个进程释放足够内存时,系统会把一个高优先级阻塞挂起(系统认为会很快出现所等待的事件)进程激活;
22、,Page 42,2019/2/11,进程的特征与状态转换,事件出现(Event Occurs) :进程等待的事件出现,如:操作完成、申请成功等; 可能的情况有: 阻塞到就绪:针对内存进程的事件出现; 阻塞挂起到就绪挂起:针对外存进程的事件出现; 收容(Admit):收容一个新进程,进入就绪状态或就绪挂起状态。进入就绪挂起的原因是系统希望保持一个大的就绪进程表(挂起和非挂起);,Page 43,2019/2/11,进程的特征与状态状态转换,具有挂起状态的进程状态图,I/O完成,Page 44,2019/2/11,进程的基本概念,程序的顺序执行及其特征 前趋图 程序的并发执行及其特征 进程概念
23、进程的特征与状态 进程控制块,Page 45,2019/2/11,进程控制块,进程控制块的作用 是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的 进程控制块中的信息 进程标识符 进程标识符用于惟一地标识一个进程。一个进程通常有两种标识符: 内部标识符 在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用 外部标识符 它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为了描述
24、进程的家族关系, 还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户,系统感知进程存在的惟一标志!,Page 46,2019/2/11,进程控制块,进程控制块中的信息 处理机状态(CPU现场保护区) 主要是由CPU的各种寄存器中的内容组成的: 通用寄存器 又称为用户可视寄存器,是用户程序可以访问的,用于暂存信息, 在大多数处理机中,有 832 个通用寄存器,在RISC结构的计算机中可超过 100 个; 指令计数器 其中存放了要访问的下一条指令的地址; 程序状态字PSW 其中含有状态信息,如条件码、执行方式、 中断屏蔽标志等; 用户栈指针 指每个用户进程都有一个或若干
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 进程 管理 课件
链接地址:https://www.31doc.com/p-2084694.html