(1.24)--第2章1操作系统原理.ppt
第二章第二章 进程的描述与控制进程的描述与控制3本章主要内容本章主要内容进程的基本概念进程的基本概念进程控制进程控制进程同步进程同步经典进程的同步问题经典进程的同步问题进程通信进程通信线程线程程序的顺序执行及其特征程序的顺序执行及其特征前趋图前趋图程序的并发执行及其特征程序的并发执行及其特征进程的特征与状态进程的特征与状态进程控制块进程控制块42.1 2.1 前趋图前趋图3有向有向无循环无循环图图,记记DAG124567结点,可表示一语句、结点,可表示一语句、程序段或进程程序段或进程前趋关系前趋关系初始结点初始结点终止结点终止结点前趋关系前趋关系:P1P2,P2 P5,P5 P7 P1 P3,P3 P5 P1 P4,P4 P6,P6 P7直接前趋直接前趋直接后继直接后继52.1 2.1 前趋图前趋图作用作用描述进程之间执行的前后关系描述进程之间执行的前后关系图论概念图论概念集合表示法集合表示法有向无循环图有向无循环图结点:程序段、进程、语句结点:程序段、进程、语句有向边:偏序、前趋关系有向边:偏序、前趋关系前趋、后继前趋、后继初始结点、终止结点初始结点、终止结点不存在循环不存在循环=(Pi=(Pi,Pj)|Pi must Pj)|Pi must complete before Pj may complete before Pj may startstart,如果,如果(Pi(Pi,Pj)Pj),可写成可写成PiPjPiPj,称,称PiPi是是PjPj的直的直接前趋,而称接前趋,而称PjPj是是PiPi的直接后的直接后继。继。62.1 2.1 前趋图前趋图参考教材参考教材P33P33:图:图2-12-1(a a)、()、(b b)(会会用集合的方式表示出用集合的方式表示出(a)(a)图图对应的前趋关系)对应的前趋关系)72.1.2 2.1.2 程序的顺序执行及其特征程序的顺序执行及其特征顺序执行顺序执行 程序在执行时,必须按某种先后次序逐个执行,只有当程序在执行时,必须按某种先后次序逐个执行,只有当前一个操作执行完后,才能执行后一个操作。前一个操作执行完后,才能执行后一个操作。例:例:S1,S2,S3S1:a:xyS2:b:a5S3:c:b1S1S3S282.1.2 2.1.2 程序的顺序执行及其特征程序的顺序执行及其特征例:假定用例:假定用 I I、C C和和 P P分别表示输入、计算和输出操作。分别表示输入、计算和输出操作。I1C1P1I2C2P2(a)两个程序的)两个程序的前趋图(单道情况)前趋图(单道情况)S1S3S2(b)三个语句表示的三个语句表示的前趋图前趋图a=10;b=a+8;Print(b);S1:S2:S3:程程序序1 1程程序序2 29考虑时间上的关系,可以示例如下。考虑时间上的关系,可以示例如下。t输入:输入:计算:计算:输出:输出:I1C1P1I2C2P2I3C3P3 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10三个程序间顺序执行三个程序间顺序执行t程序程序1:I1C1P1程序程序2:程序程序3:I2C2P2I3C3P39个个t 结束结束2.1.2 2.1.2 程序的顺序执行及其特征程序的顺序执行及其特征10程序顺序执行特征:程序顺序执行特征:n 顺序性;顺序性;处理机的操作严格按照程序所规定的处理机的操作严格按照程序所规定的顺序执行,即每一个操作必须在上一个操作结束之顺序执行,即每一个操作必须在上一个操作结束之后开始。后开始。n 封闭性;封闭性;程序独占资源,只有程序本身可改变这程序独占资源,只有程序本身可改变这些资源;程序执行得到的最终结果由给定的初始条些资源;程序执行得到的最终结果由给定的初始条件决定,件决定,不受外界因素的影响不受外界因素的影响。n 可再现性;可再现性;只要输入的初始条件相同,则无论何只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。时重复执行该程序都会得到相同的结果。程序顺序执行的特性为程序员检测程序顺序执行的特性为程序员检测和校正程序错误带来很大的方便!和校正程序错误带来很大的方便!2.1.2 2.1.2 程序的顺序执行及其特征程序的顺序执行及其特征112.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征I1I2I3I4C1C2C3C4P1P2P3P4在处理一批作业时,有的程序之间可实现并发执行。在处理一批作业时,有的程序之间可实现并发执行。(P34),有三个程序:输入程序,计算程序和输出程序),有三个程序:输入程序,计算程序和输出程序并发性是增强计算机系统的处理能力和提高资源并发性是增强计算机系统的处理能力和提高资源利用率所采取的一种技术利用率所采取的一种技术122.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征 输入:输入:计算:计算:输出:输出:t0 t1 t2 t3 t4 t5 t6tttI1三个程序并发执行的前趋图三个程序并发执行的前趋图I2I3C1C2C3P1P2P3时间时间:5个个t并发并发并发并发并发并发前趋关系前趋关系执行顺序执行顺序132.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征n 程序内保持程序内保持 IiCiPi IiCiPi 程序逻辑顺序性。程序逻辑顺序性。n 存在存在IiIi+1IiIi+1;CiCi+CiCi+1;PiPi+1;1;PiPi+1;表明表明系统资源竞争系统资源竞争带来带来顺序顺序性前趋关系性前趋关系。n 不同程序之间不同程序之间 Ii+2Ii+2、Ci+1 Ci+1 和和PiPi ,没有前趋关系,说明可以,没有前趋关系,说明可以并发执行并发执行,这是,这是系统的并发性系统的并发性。I1I2I3C1C2C3P1P2P3142.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征S1:a:x2S2:b:Y4S3:c:abS4:d:cb参考教材参考教材P34P34:图:图2-42-4(请画出对应的前趋关系图)(请画出对应的前趋关系图)152.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征间断性间断性失去封闭性失去封闭性不可再现性不可再现性顺序执行的特征:顺序执行的特征:o 顺序性顺序性o 封闭性(资源独占)封闭性(资源独占)o 可再现性(结果的无关性)可再现性(结果的无关性)16n 间断性;程序在并发执行时具有间断性;程序在并发执行时具有执行执行-暂停暂停-执行执行的活动规律的活动规律。2.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征17n 失去封闭性;程序在并发执行时,是多个程序失去封闭性;程序在并发执行时,是多个程序共享系统中的各种资源共享系统中的各种资源,因而这些,因而这些资源的状态将由资源的状态将由多个程序来改变多个程序来改变,致使程序的运行失去了封闭性致使程序的运行失去了封闭性。当处理机资源被其它程序占用时,有条件运行的任当处理机资源被其它程序占用时,有条件运行的任何程序都必须等待。何程序都必须等待。n 不可再现性;程序在并发执行时,不可再现性;程序在并发执行时,由于失去了由于失去了封闭性,也导致失去了可再现性封闭性,也导致失去了可再现性。考察一个例子来。考察一个例子来说明这个问题:说明这个问题:2.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征18举例说明不可再现性举例说明不可再现性例:两个循环程序例:两个循环程序A和和B共享一个变量共享一个变量 N(当前值为当前值为 n)。程序程序A:N=N+1;程序程序B:print(N);N=0;在处理机上执行关于在处理机上执行关于N的的3条指令,由于并条指令,由于并发性,有理由假定发性,有理由假定3个可能的执行序列个可能的执行序列:N=N+1;print(N);N=0;(AB)print(N);N=0;N=N+1;(BA)print(N);N=N+1;N=0;(B,A交替运行交替运行)n1,n1,0,最终,最终N的结果为的结果为 0 n,0,1,最终最终N的结果为的结果为 1 n,n+1,0,最终,最终N的结果为的结果为 0 说明程序在并说明程序在并发执行时,由发执行时,由于失去了封闭于失去了封闭性,其性,其计算结计算结果与并发程序果与并发程序的的执行速度执行速度有有关了,关了,使程序使程序也也失去可再现失去可再现性性。下下一一步步2.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征19 前面例子说明了如下问题:在某些情况下,程序的前面例子说明了如下问题:在某些情况下,程序的并发执行使得执行结果不再具有封闭性和可再现性并发执行使得执行结果不再具有封闭性和可再现性,且可能造成出现错误(,且可能造成出现错误(执行结果受执行速度的影执行结果受执行速度的影响响)。)。为了使在并发执行时不出现错误结果,必须为了使在并发执行时不出现错误结果,必须采取某采取某些措施来制约、控制各并发程序段执行的速度些措施来制约、控制各并发程序段执行的速度。2.1.3 2.1.3 程序中的并发执行及其特征程序中的并发执行及其特征20补充:程序并发执行的条件 19661966年年Bernstein Bernstein 提出提出两相邻语句两相邻语句S1,S2可并发执行的条件:可并发执行的条件:将程序中任一语句将程序中任一语句Si划分为两个变量的集合划分为两个变量的集合R(Si)和和W(Si),分别为分别为 Si Si 的读集和写集。的读集和写集。R(Si)=a1 a2am,aj(j=1,m)是语句是语句Si在执行期间必在执行期间必须对其进行读的变量须对其进行读的变量.W(Si)是语句是语句Si在执行期间必须对其进行修改在执行期间必须对其进行修改的变量。的变量。21如果对于语句如果对于语句S1S1和和S2S2,有:,有:R(S1)W(S2)=R(S1)W(S2)=,即即S1S1读变量不是读变量不是S2 S2 修改的变量。修改的变量。W(S1)R(S2)=W(S1)R(S2)=,即即S2S2读变量不是读变量不是S1 S1 修改的变量。修改的变量。W(S1)W(S2)=W(S1)W(S2)=,即双方都不修改相同的变量。即双方都不修改相同的变量。同时成立同时成立,则语句,则语句S1S1和和S2S2是可以并发执行的。是可以并发执行的。补充:程序并发执行的条件22例例 S1:a:=x+2,S2:b:=z+4,S3:c:=a-b,S4:w:=c+1试利用试利用Bernstein条件证明:条件证明:(1)s1与与s2并发执行;(并发执行;(2)s1与与s3,s2与与s3,s3与与s4不能。不能。解:各语句的读、写集分别为:解:各语句的读、写集分别为:R(S1)=x,W(S1)=a,R(S2)=z,W(S2)=b,R(S3)=a,b,W(S3)=c,R(S4)=c,W(S4)=w,因为因为 R(S1)W(S2)=,R(S2)W(S1)=且且W(S1)W(S2)=所以由所以由Bernstein条件,条件,s1与与s2并发执行。并发执行。同理可证同理可证s1与与s3,s2与与s3,s3与与s4不能(略)。不能(略)。补充:程序并发执行的条件23 如果并发执行的各程序段中的语句或指令满足上如果并发执行的各程序段中的语句或指令满足上述述Bernstein Bernstein 的三个条件(同时成立),则认为并发执行不会的三个条件(同时成立),则认为并发执行不会对执行结果的封闭性和可再现性产生影响(证明对执行结果的封闭性和可再现性产生影响(证明略)。略)。但在一般情况下,但在一般情况下,这个条件对于软件设计(模块这个条件对于软件设计(模块化)过于苛刻,系统要判定并发执行的各程序段化)过于苛刻,系统要判定并发执行的各程序段是否满足是否满足Bernstein Bernstein 条件是相当困难的条件是相当困难的。补充:程序并发执行的条件24我们不能通过限制程序的编写方式和内容来获得我们不能通过限制程序的编写方式和内容来获得系统的可再现性,因此系统的可再现性,因此解决此问题需要依靠控制解决此问题需要依靠控制程序的执行过程来解决程序的执行过程来解决。怎么办呢怎么办呢?补充:程序并发执行的条件25引入进程的原因引入进程的原因 为了对并发执行的程序加以控制和描述,引入了为了对并发执行的程序加以控制和描述,引入了“进程进程”的概念。(的概念。(理解理解)程序程序A:N=N+1;发发消消息息给给B,可可以打印以打印N了了程序程序B:收收到到可可以以打打印印N的消息的消息print(N);N=0;程序程序A:上锁上锁N=N+1;解锁解锁程序程序B:上锁上锁print(N);N=0;解锁解锁 有前趋关系时有前趋关系时 无前趋关系时无前趋关系时262.2 2.2 进程的特征与状态进程的特征与状态1.特征特征结构特征结构特征动态性动态性并发性并发性独立性独立性异步性异步性程序段程序段数据段数据段进程控制块进程控制块PCBPCB独立运行独立运行独立分配资源独立分配资源独立接受调度的基本单位独立接受调度的基本单位最基本的特征最基本的特征272.2 2.2 进程的特征与状态进程的特征与状态结构特征:结构特征:PCB进程控制块进程控制块程序段程序段数据段数据段动态特征的集中反映动态特征的集中反映描述要完成的功能描述要完成的功能操作对象及工作区操作对象及工作区282.2 2.2 进程的特征与状态进程的特征与状态动态性:动态性:l进程是程序的一次执行过程,属进程是程序的一次执行过程,属动态动态概念,是进概念,是进程最基本的特征。程最基本的特征。l动态性还表现为动态性还表现为:“它由创建而产生,由调度而执它由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤消而消行,因得不到资源而暂停执行,以及由撤消而消亡亡”。即进程有一定的生命期。即进程有一定的生命期。l程序只是一组有序指令的集合,并长期存放在某程序只是一组有序指令的集合,并长期存放在某种介质上,本身并无运动的含义,因此,程序是种介质上,本身并无运动的含义,因此,程序是个静态实体。个静态实体。292.2 2.2 进程的特征与状态进程的特征与状态并发性:并发性:指多个进程实体同存在于内存中,能在一段时间指多个进程实体同存在于内存中,能在一段时间内同时运行。内同时运行。独立性:独立性:进程是一个能独立运行、独立分配资源和独立调进程是一个能独立运行、独立分配资源和独立调度的基本单位度的基本单位.异步性:异步性:进程按各自独立的、不可预知的速度向前推进。进程按各自独立的、不可预知的速度向前推进。30进程概念进程概念-举例举例阅读阅读菜谱菜谱准备原料准备原料烹制菜肴烹制菜肴饭菜饭菜阅读阅读洗衣机手册洗衣机手册准备衣服、洗衣粉准备衣服、洗衣粉设定参数,洗衣服设定参数,洗衣服干净衣服干净衣服程序程序程序程序分时切换分时切换洗衣进程洗衣进程做饭进程做饭进程输入数据输入数据输出数据输出数据运行运行31进程的核心思想进程的核心思想进程是某个程序在某个数据集合上的运行过程,进程是某个程序在某个数据集合上的运行过程,它有程序、输入、输出和状态。它有程序、输入、输出和状态。在分时操作系统中,单个在分时操作系统中,单个CPUCPU被若干进程共享,被若干进程共享,它使用某种它使用某种调度算法调度算法决定何时停止一个进程的运决定何时停止一个进程的运行,转而为其他进程提供服务。行,转而为其他进程提供服务。进程概念进程概念322.2 2.2 进程的特征与状态进程的特征与状态进程的定义:进程的定义:典型的进程定义典型的进程定义进程是程序的一次执行。进程是程序的一次执行。进程是一个程序及其数据在处理机上顺序执行时所进程是一个程序及其数据在处理机上顺序执行时所发生的活动。发生的活动。进程是程序在一个数据集合上运行的过程,它是系进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。统进行资源分配和调度的一个独立单位。进程是进程实体的执行过程,是系统进行资源分配进程是进程实体的执行过程,是系统进行资源分配和调度的一个独立单位。和调度的一个独立单位。332.2 2.2 进程的特征与状态进程的特征与状态进程与程序的区别进程与程序的区别 程序是静态的,进程是动态的程序是静态的,进程是动态的;程序是有序代码的集合;进程是程序的执行。程序是有序代码的集合;进程是程序的执行。进程是暂时的,程序是永久的:进程是暂时的,程序是永久的:进程只是程序的一次执行过程,有生命周期,有诞生有进程只是程序的一次执行过程,有生命周期,有诞生有消亡,是暂时的;而程序可作为软件资源长期保存,相消亡,是暂时的;而程序可作为软件资源长期保存,相对长久的对长久的;进程与程序的组成不同:进程与程序的组成不同:进程由程序、数据和进程由程序、数据和PCB三部分组成的三部分组成的.进程与程序的对应关系:进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可涉及多个程序。系,一个进程可涉及多个程序。342.2 2.2 进程的特征与状态进程的特征与状态关于程序和进程,以下哪种说法是正确关于程序和进程,以下哪种说法是正确的?的?A)程序是动态的,进程是静态的程序是动态的,进程是静态的 B)程序是静态的,进程是动态的程序是静态的,进程是动态的C)程序和进程都是动态的程序和进程都是动态的 D)程序和进程都是静态的程序和进程都是静态的352.2 2.2 进程的特征与状态进程的特征与状态2、进程的三种基本状态及其转换、进程的三种基本状态及其转换.就绪状态就绪状态(readyready)执行状态执行状态(runningrunning)阻塞状态阻塞状态(blockedblocked)362.2 2.2 进程的特征与状态进程的特征与状态就绪状态:就绪状态:当进程当进程已分配到除已分配到除CPUCPU之外的之外的所有必要资源所有必要资源后,只要再获后,只要再获得得CPUCPU,便可立即执行,进程,便可立即执行,进程这时的状态就称为就绪状态这时的状态就称为就绪状态。通常把处于就绪状态的进程通常把处于就绪状态的进程排成一个队列,称其为排成一个队列,称其为就绪就绪队列队列。372.2 2.2 进程的特征与状态进程的特征与状态执行状态:执行状态:进程正在处理机上运行进程正在处理机上运行的状态,该进程已获得的状态,该进程已获得必要的资源,也必要的资源,也获得了获得了处理机处理机,用户程序正在,用户程序正在处理机上运行。处理机上运行。382.2 2.2 进程的特征与状态进程的特征与状态阻塞状态阻塞状态:进程进程等待某种事件完成等待某种事件完成(例如,等待输入例如,等待输入/输出操作输出操作的完成)而暂时不能的完成)而暂时不能执行执行的状态,处于该状态的进的状态,处于该状态的进程程不能参加竞争处理机不能参加竞争处理机,此时,即使分配给它处理此时,即使分配给它处理机,它也不能机,它也不能执行执行。通常。通常把处于把处于阻塞阻塞状态的进程排状态的进程排成一个或多个队列,称其成一个或多个队列,称其为为阻塞阻塞队列队列。392.2 2.2 进程的特征与状态进程的特征与状态状态变化:状态变化:就绪状态就绪状态 执行状态执行状态 执行状态执行状态 就绪状态就绪状态 执行状态执行状态 阻塞状态阻塞状态 阻塞状态阻塞状态 就绪状态就绪状态402.2 2.2 进程的特征与状态进程的特征与状态状态变化状态变化原因:原因:就绪态变为执行态就绪态变为执行态调度程序选择一个新的进程分配给其处理机调度程序选择一个新的进程分配给其处理机执行态变为就绪态执行态变为就绪态执行进程用完了时间片执行进程用完了时间片执行进程被中断,因为一高优先级进程处于就绪状态(系执行进程被中断,因为一高优先级进程处于就绪状态(系统原因)统原因)执行态变为阻塞态执行态变为阻塞态 执行进程发生执行进程发生I/O请求或等待外部事件发生(自身原因)请求或等待外部事件发生(自身原因)阻塞态变为就绪态阻塞态变为就绪态 当当I/O完成或所等待的事件发生时;完成或所等待的事件发生时;41进程状态切换的思考进程状态切换的思考执行执行态态阻塞态阻塞态就绪态就绪态进程就绪,进程就绪,可以可以执行执行状态转换状态转换:进进程等待外部程等待外部事件,阻塞事件,阻塞OSOS决定由哪个决定由哪个进程占用进程占用CPUCPU,进程调度进程调度为什么不能从阻塞态变为为什么不能从阻塞态变为执行执行态呢?态呢?执行的进程变为阻塞状态后,调度程序立即执行的进程变为阻塞状态后,调度程序立即把处理机分配给另一个就绪进程;因此,阻把处理机分配给另一个就绪进程;因此,阻塞进程的事件消失后,进程不会立即恢复到塞进程的事件消失后,进程不会立即恢复到执行状态,而转变为就绪状态,重新等待处执行状态,而转变为就绪状态,重新等待处理机。理机。422.2 2.2 进程的特征与状态进程的特征与状态进程状态转换注意事项:进程状态转换注意事项:1、一个进程从阻塞态切换到执行态,必须经过就、一个进程从阻塞态切换到执行态,必须经过就绪态。绪态。2、进程由执行态到阻塞态通常由进程、进程由执行态到阻塞态通常由进程自身提出自身提出。3、进程由执行态到就绪态仅用于分时系统或可抢、进程由执行态到就绪态仅用于分时系统或可抢占式调度。占式调度。4、进程由阻塞态到就绪态,总是由外界事件引起、进程由阻塞态到就绪态,总是由外界事件引起的。的。432.2 2.2 进程的特征与状态进程的特征与状态 在进程状态转换时,下列转换不可发生的是在进程状态转换时,下列转换不可发生的是()。A)就绪态转为运行态)就绪态转为运行态 B)运行态转为就绪态)运行态转为就绪态C)运行态转为等待态)运行态转为等待态 D)等待态转为运行态)等待态转为运行态44网络工程师相关考题网络工程师相关考题某系统的进程状态转换如下图所示,图中某系统的进程状态转换如下图所示,图中 1、2、3 和和 4 分别表示引起状态转换的不同原因,原因分别表示引起状态转换的不同原因,原因 4 表示表示(23);一个进程状态转换会引起另一个进;一个进程状态转换会引起另一个进程状态转换的是程状态转换的是(24)。(23)A.就绪进程被调度就绪进程被调度 B.运行进程执行了运行进程执行了 P 操作操作 C.发生了阻塞进程等待的事件发生了阻塞进程等待的事件 D.运行进程的时间片到了运行进程的时间片到了(24)A.1 2B.2 1 C.3 2 D.2 4 答案:答案:CB45进程状态进程状态转换转换状态转换状态转换1不会立即不会立即引起其他状态转换引起其他状态转换2必然引起必然引起13可能引起可能引起14可能引起可能引起14可能引起可能引起1,246网络工程师相关考题网络工程师相关考题进程是操作系统中的一个重要概念。进程是一个具有一定独立功能的程序进程是操作系统中的一个重要概念。进程是一个具有一定独立功能的程序在某个数据集合上的一次在某个数据集合上的一次A。进程是一个进程是一个B的概念,而程序是一个的概念,而程序是一个C的概念。的概念。进程的最基本状态有进程的最基本状态有D。在一个单处理机中,若有。在一个单处理机中,若有6个用户进程,个用户进程,在非在非管态的某一时刻,处于就绪状态的用户进程最多有管态的某一时刻,处于就绪状态的用户进程最多有E个。个。供选择的答案供选择的答案A:单独操作单独操作关联操作关联操作运行活动运行活动并发活动并发活动B:静态静态 动态动态 逻辑逻辑物理物理C:物理物理 逻辑逻辑动态动态静态静态D:就绪、运行、隐蔽就绪、运行、隐蔽 停止、就绪、运行停止、就绪、运行 运行、就绪、阻塞运行、就绪、阻塞 就绪、撤消、运行就绪、撤消、运行E:5 6 1 4答案:答案:3243147网络工程师相关考题网络工程师相关考题在一单处理机中,若有在一单处理机中,若有 5 个用户进程,在非管态的某一时刻,处于就绪状态的个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有用户进程最多有_D_个,最少有个,最少有_E_个。个。供选择的答案供选择的答案D、E:1 2 3 4 5 0 答案:答案:46482.2 2.2 进程的特征与状态进程的特征与状态创建状态创建状态(在外存)(在外存)终止状态终止状态(不再具有运行资格)(不再具有运行资格)对于一个进程来说,创建状态和终止状态只有一对于一个进程来说,创建状态和终止状态只有一次。次。49五状态图五状态图502.2 2.2 进程的特征和状态进程的特征和状态 3.3.3.3.挂起状态(被换出内存的状态)挂起状态(被换出内存的状态)挂起状态(被换出内存的状态)挂起状态(被换出内存的状态)引入原因引入原因引入原因引入原因 终端用户请求终端用户请求终端用户请求终端用户请求 父进程请求父进程请求父进程请求父进程请求 负荷调节需要负荷调节需要负荷调节需要负荷调节需要 操作系统需要操作系统需要操作系统需要操作系统需要进程状态的转换进程状态的转换进程状态的转换进程状态的转换(图图图图2-7)2-7)2-7)2-7)活动就绪活动就绪活动就绪活动就绪 静止就绪静止就绪静止就绪静止就绪 活动阻塞活动阻塞活动阻塞活动阻塞 静止阻塞静止阻塞静止阻塞静止阻塞 静止就绪静止就绪静止就绪静止就绪 活动就绪活动就绪活动就绪活动就绪 静止阻塞静止阻塞静止阻塞静止阻塞 活动阻塞活动阻塞活动阻塞活动阻塞51活动就绪活动就绪(Readya):进程在内存且可立即进入运行状态;:进程在内存且可立即进入运行状态;活动阻塞活动阻塞(Blockeda):进程在内存,并等待某事件的出现;:进程在内存,并等待某事件的出现;静止阻塞(静止阻塞(Blockeds):进程在外存并等待某事件):进程在外存并等待某事件的出现;的出现;静止就绪静止就绪(Readys):进程在外存,但只要进入内存,):进程在外存,但只要进入内存,即可运行;即可运行;活动就绪活动就绪 静止就绪静止就绪活动阻塞活动阻塞 静止阻塞静止阻塞静止就绪静止就绪 活动就绪活动就绪静止阻塞静止阻塞 活动阻塞活动阻塞挂起(挂起(Suspend):把一个进程从内存转到外存):把一个进程从内存转到外存激活(激活(Activate):把一个进程从外存转到内存):把一个进程从外存转到内存52图图2 27 7具有挂起状态的进程状态图具有挂起状态的进程状态图执行执行活动活动就绪就绪静止静止就绪就绪活动活动阻塞阻塞静止静止阻塞阻塞激活激活挂起挂起激活激活挂起挂起释放释放释放释放挂起挂起请求请求I/O53程序程序A程序程序A I/O 请求请求程序程序A I/O 完成完成程序程序B程序程序B I/O 请求请求程序程序C程序程序C I/O 请求请求程序程序D程序程序D I/O 请求请求C I/O 完成完成 C 再被调度再被调度程序程序B I/O 完成完成程序程序A再被调度再被调度程序程序A程序程序B程序程序C程序程序D调度程序调度程序四道程序运行情况四道程序运行情况A完成完成表示获得表示获得CPU 请在并发运行示意图中标识程序请在并发运行示意图中标识程序请在并发运行示意图中标识程序请在并发运行示意图中标识程序A A A A、B B B B、C C C C、D D D D的状态的状态的状态的状态54七七状态状态图图552.2.4 2.2.4 进程控制块进程控制块思考:思考:在一个多道系统中,有两个进程正在运行,那他们具体是在一个多道系统中,有两个进程正在运行,那他们具体是如何实现的?如何实现的?双击第一个程序,操作系统把该程序从硬盘上调入到内存的某个位置,然后双击第一个程序,操作系统把该程序从硬盘上调入到内存的某个位置,然后分配资源及做相应的登记,创建进程并使之成为就绪态,当调度程序选中该分配资源及做相应的登记,创建进程并使之成为就绪态,当调度程序选中该进程的时候它占据进程的时候它占据CPU,56结构体结构体例子:一个学生的自然信息例子:一个学生的自然信息 姓名姓名性别性别出生日期出生日期专业专业班级班级57进程控制块进程控制块进程名进程名进程号进程号存储信息存储信息优先级优先级当前状态当前状态家族关系家族关系进程开始时间进程开始时间使用的使用的CPU时间时间资源清单资源清单消息队列指针消息队列指针当前打开文件当前打开文件582.2.4 2.2.4 进程控制块进程控制块当系统创建一个新进程时,就为它建立了一个当系统创建一个新进程时,就为它建立了一个PCB(Process Control Block);进程结束时又回收其);进程结束时又回收其PCB,进程也随之消亡。,进程也随之消亡。struct task_struct struct timer_list real_timer;/指向实时定时器的指针指向实时定时器的指针 struct tms times;/记录进程消耗的时间,记录进程消耗的时间,unsigned long start_time;/进程创建的时间进程创建的时间 long per_cpu_utimeNR_CPUS,per_cpu_stimeNR_CPUS;/记录进程在每个记录进程在每个CPU上所消耗的用户态时间和核心态时间上所消耗的用户态时间和核心态时间;592.2.4 2.2.4 进程控制块进程控制块struct task_structlong state;/进程状态进程状态int pid,uid,gid;/进程的标志符、用户标志符和组标志符进程的标志符、用户标志符和组标志符struct task_struct*parent,*child,*o_sibling,*y_sibling;/一些亲属关系一些亲属关系,分别是指向父进程、子进程、兄长进分别是指向父进程、子进程、兄长进程和弟进程的指针,这样就能很好的反映出父子、兄弟程和弟进程的指针,这样就能很好的反映出父子、兄弟进程间的关系。进程间的关系。;60 进程控制块进程控制块的作用的作用使一个多道程序环境下不能独立运行的程序(含数使一个多道程序环境下不能独立运行的程序(含数据)成为一个能够独立运行的基本单位,一个能与据)成为一个能够独立运行的基本单位,一个能与其它进程并发执行的进程。操作系统根据其它进程并发执行的进程。操作系统根据PCB来对并来对并发执行的进程进行控制和管理。具体如下:发执行的进程进行控制和管理。具体如下:61 进程控制块进程控制块的作用的作用当操作系统要调度某进程执行时,要从该进程的当操作系统要调度某进程执行时,要从该进程的PCB中查出其现行状态及其优先级。中查出其现行状态及其优先级。在调度到某进程后,要根据其在调度到某进程后,要根据其PCB中所保存的处理中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址,找到其程序和数据。中的程序和数据的内存始址,找到其程序和数据。进程在执行过程中,当需要和与之合作的进程实进程在执行过程中,当需要和与之合作的进程实现同步、通信或访问文件时,也都需要访问现同步、通信或访问文件时,也都需要访问PCB。当进程由于某种原因而暂停执行时,又须将其执当进程由于某种原因而暂停执行时,又须将其执行断点的处理机环境保存在行断点的处理机环境保存在PCB中。中。62PCBPCB是系统感知进程存在的唯一标志。是系统感知进程存在的唯一标志。PCBPCB可可以以被被操操作作系系统统中中的的多多个个模模块块读读或或修修改改,如如调调度度程程序序、资资源源分分配配程程序序、中中断断处处理理程程序序、监监督和分析程序等。督和分析程序等。PCBPCB全部或部分常驻内存。全部或部分常驻内存。系系统统将将所所有有的的PCBPCB组组织织成成若若干干个个链链表表(或或队队列列),存放在操作系统中专门开辟的),存放在操作系统中专门开辟的PCBPCB区内。区内。进程控制块进程控制块的特性的特性63PCBPCB中中包包含含有有进进程程的的描描述述信信息息、控控制制信信息息以以及及资源信息,是进程动态特征的集中反映。资源信息,是进程动态特征的集中反映。创创建建一一个个进进程程时时首首先先创创建建其其对对应应的的PCBPCB,当当一一个个进进程程完完成成功功能能后后,系系统统释释放放其其PCBPCB,进进程程随随之之消亡。消亡。系系统统根根据据PCBPCB感感知知进进程程的的存存在在,通通过过PCBPCB中中所所包包含含的的各各项项变变量量的的变变化化,掌掌握握进进程程所所处处的的状状态态,系系统统通通过过修修改改PCBPCB中中相相应应项项的的值值来来调调整整进进程程状状态态和和控制进程的活动。控制进程的活动。进程控制块进程控制块的特性的特性642.2.4 2.2.4 进程控制块进程控制块PCB中的信息中的信息标识符信息进程标识符进程名进程号用户标识用户名用户号家族联系父进程子进程处理机状态信息(现场)通用寄存器指令计数器程序状态字用户栈指针进程调度信息进程状态进程优先数(级/权)等待原因调度算法参数等进程控制信息程序和数据地址进程同步和通信机制资源清单链接指针65进程控制块进程控制块PCB中的信息中的信息标识符信息 进程标识符 进程号进程名用户标识 用户号用户名家族关系 父进程子进程66进程控制块进程控制块PCB中的信息中的信息处理机状态信息(现场)通用寄存器(暂存信息)指令计数器(存放要访问的下一条指令的地址)程序状态字(PSW)(状态信息,如执行方式,中断屏蔽标志等)用户栈指针(存放过程和系统调用参数及调用地址)67进程控制块进程控制块PCB中的信息中的信息进程调度信息 进程状态进程优先数(级/权)进程调度所需的其它信息(进程已等待时间,已运行时间总和等)事件(阻塞原因)68进程控制块进程控制块PCB中的信息中的信息进程控制信息 程序和数据地址进程同步和通信机制资源清单链接指针69进程控制块进程控制块PCB的的组织方式组织方式链接方式链接方式 把同一状态的把同一状态的PCB链接成一个队列,这样就形链接成一个队列,这样就形成了就绪队列、阻塞队列等。成了就绪队列、阻塞队列等。索引方式索引方式 将同一状态的进程组织在一个索引表中,索引表的将同一状态的进程组织在一个索引表中,索引表的表项指向相应的表项指向相应的PCB,不同状态对应不同的索引表。,不同状态对应不同的索引表。70进程控制块进程控制块执行指针执行指针就绪队列指针就绪队列指针阻塞队列指针阻塞队列指针空闲队列指针空闲队列指针.PCBPCB1 1PCBPCB2 2PCBPCB3 3PCBPCB4 4PCBPCB6 6PCBPCB7 7PCBPCB8 8PCBPCB9 9PCBPCB5 54308790i链接方式链接方式71等待队列示例等待队列示例struct wait_queue struct wait_queue struct task_struct*task;struct task_struct*task;struct wait_queue*next;struct wait_queue*next;PCBPCBPCB72进程控制块进程控制块索引方式索引方式就就绪索引表索引表阻塞索引表阻塞索引表73补充补充PCBPCBPCBPCB和进程的代码数据放在一起吗?和进程的代码数据放在一起吗?和进程的代码数据放在一起吗?和进程的代码数据放在一起吗?系统态和用户态系统态和用户态系统态和用户态系统态和用户态系统空间和用户空间系统空间和用户空间系统空间和用户空间系统空间和用户空间系统调用和普通调用的区别?系统调用和普通调用的区别?系统调用和普通调用的区别?系统调用和普通调用的区别?系统调用会引起从用户态进入核心态系统调用会引起从用户态进入核心态系统调用会引起从用户态进入核心态系统调用会引起从用户态进入核心态74补充补充:进程空间(虚拟地址空间)进程空间(虚拟地址空间)1 1 1 1定义定义定义定义 进程中所有能使用的地址集合。进程中所有能使用的地址集合。进程中所有能使用的地址集合。进程中所有能使用的地址集合。所有程序的执行都在自己的进程空间中进行。用户程序、进程所有程序的执行都在自己的进程空间中进行。用户程序、进程所有程序的执行