




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1操作系统原理操作系统原理Principles of Operating System第三章第三章进进 程程 管管 理理2第三章第三章 进程管理进程管理n3.1 进程的概念进程的概念n3.2 进程的描述进程的描述n3.3 进程状态及其转换进程状态及其转换n3.4 进程控制进程控制n3.5 进程互斥进程互斥n3.6 进程同步进程同步n3.7 进程通信进程通信n3.8 死锁问题死锁问题n3.9 线程的概念线程的概念n3.10 线程分类与执行线程分类与执行 进程是进程是OS最基本最重要的概念,进最基本最重要的概念,进程管理是程管理是OS的重点和难点。的重点和难点。33.1 进程的概念进程的概念3.1
2、.1 程序的并发执行程序的并发执行3.1.2 进程的定义进程的定义43.1.1 程序的并发执行程序的并发执行n1. 程序程序(program)n2. 程序的顺序执行程序的顺序执行n3. 多道程序系统中程序执行环境的变化多道程序系统中程序执行环境的变化n4. 程序的并发程序的并发(concurrent)执行执行51. 程序程序(program)程序完成独立的功能,是在时间上按严格次程序完成独立的功能,是在时间上按严格次序前后相继的操作序列的集合,是一个静序前后相继的操作序列的集合,是一个静态的概念。态的概念。n程序的执行分程序的执行分:n顺序执行顺序执行n并发执行并发执行62. 程序的顺序执行程
3、序的顺序执行n程序的顺序执行:程序的顺序执行:一个具有独立功能的程一个具有独立功能的程序独占处理机直至最终结束的过程称为序独占处理机直至最终结束的过程称为程程序的顺序执行序的顺序执行。n顺序执行是顺序执行是单道批处理系统单道批处理系统的执行方式,的执行方式,也用于也用于简单的单片机简单的单片机系统。系统。72. 程序的顺序执行程序的顺序执行程序的顺序执行程序的顺序执行C1P1I1I2C2P2I为输入操作;为输入操作;C为计算操作;为计算操作;P为打印操作。为打印操作。 程序程序1 程序程序2 一个程序由若干程序段组成,这些程序段的执行必一个程序由若干程序段组成,这些程序段的执行必须是顺序的;同
4、时程序与程序之间也必须顺序执行。须是顺序的;同时程序与程序之间也必须顺序执行。82. 程序的顺序执行程序的顺序执行n计算机计算机 CPU是通过时序脉冲来控制顺序执是通过时序脉冲来控制顺序执行指令的。其执行过程可以描述为:行指令的。其执行过程可以描述为: Repeat IR M pc pc pc+1 Execute (instruction in IR) Until CPU haltn程序的顺序性和计算机硬件的顺序性一程序的顺序性和计算机硬件的顺序性一致致92. 程序的顺序执行程序的顺序执行n程序程序顺序执行顺序执行的的特点特点: n(1) 顺序性顺序性 :处理机的操作严格按照程序规定:处理机的
5、操作严格按照程序规定的顺序(可能有分支或循环)执行,即只有前的顺序(可能有分支或循环)执行,即只有前一操作结束后,才能启动后一操作的执行;程一操作结束后,才能启动后一操作的执行;程序和机器执行程序的活动严格一一对应,即序和机器执行程序的活动严格一一对应,即程程序的顺序性和计算机硬件的顺序性一致序的顺序性和计算机硬件的顺序性一致。 n(2) 封闭性封闭性:执行的最终结果不受外界因素的:执行的最终结果不受外界因素的影响。一个程序在机器中执行时,它独占全机影响。一个程序在机器中执行时,它独占全机资源,除了初始状态外,只有程序本身规定的资源,除了初始状态外,只有程序本身规定的动作才能改变这些资源的状态
6、。动作才能改变这些资源的状态。 n(3) 可再现性可再现性:初始条件相同则结果相同,结:初始条件相同则结果相同,结果不受执行速度的影响。果不受执行速度的影响。103. 多道程序系统中多道程序系统中 程序执行环境的变化程序执行环境的变化n多道程序系统中,计算机能够同时处理多个具有独多道程序系统中,计算机能够同时处理多个具有独立功能的程序。立功能的程序。n多道程序系统的执行环境的特点:多道程序系统的执行环境的特点: n(1) 独立性:独立性:每道程序都是逻辑上独立的,它们之间不每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。存在逻辑上的制约关系。 n(2) 随机性:随机性:多用户随机使用
7、系统,程序、数据的输入多用户随机使用系统,程序、数据的输入随机,执行开始时间随机,客观上要求操作系统能同时随机,执行开始时间随机,客观上要求操作系统能同时处理多道程序。处理多道程序。 n(3) 资源共享:资源共享:系统中的软硬件资源不再为单个用户程系统中的软硬件资源不再为单个用户程序所独占,序所独占, 而由几道用户程序共同使用。于是,这些资而由几道用户程序共同使用。于是,这些资源的状态不再取决于一道程序,而是由多道程序的活动源的状态不再取决于一道程序,而是由多道程序的活动所决定。从根本上打破了一道程序封闭于一个系统中执所决定。从根本上打破了一道程序封闭于一个系统中执行的局面。行的局面。114.
8、 程序的并发执行程序的并发执行 n(1) 程序的并发执行程序的并发执行 并发执行的目的并发执行的目的:为了:为了增强计算机系统的增强计算机系统的处理能力处理能力和和提高资源利用率提高资源利用率。 124. 程序的并发执行程序的并发执行n程序的并发执行分为两种:程序的并发执行分为两种: na)多道程序系统的程序执行环境变化所引起的多道程序系统的程序执行环境变化所引起的多道程序的并发执行;多道程序的并发执行;nb)在某道程序的几个程序段中,包含着一部分在某道程序的几个程序段中,包含着一部分可以同时执行或顺序颠倒执行的代码。可以同时执行或顺序颠倒执行的代码。例:例: read (a) ; read
9、(b) ; 既可以同时执行,也可颠倒次序执行。既可以同时执行,也可颠倒次序执行。134. 程序的并发执行程序的并发执行n程序的并发执行可总结为:程序的并发执行可总结为: 一组在一组在逻辑上互相独立的逻辑上互相独立的程序段程序段在执行过程中,在执行过程中,其其执行时间在客观上互相重叠执行时间在客观上互相重叠,即一个程序段的,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。这种执行方式。 n程序的并行执行程序的并行执行是指是指一组程序按独立的、异步的一组程序按独立的、异步的速度执行速度执行。并行执行不等于时间上的重叠。并行执行不等于时
10、间上的重叠。14程序段并发执行的有向图程序段并发执行的有向图I1I2I3I4C1C2C3C4P1P2P3P4 例中:例中:I1先于先于C1和和I2; C1先于先于P1和和C2; P1先于先于P2;I2先于先于C2和和I3,说明了某些程序段必须,说明了某些程序段必须在其它程序段之前完成,在其它程序段之前完成, 此外从图中可以看出:此外从图中可以看出:I2和和C1;I3和和C2和和P1;I4和和C3和和P2是重叠的。是重叠的。154. 程序的并发执行程序的并发执行n程序的并发执行过程可描述为:程序的并发执行过程可描述为: S0 Cobegin P1;P2;. Pn Coend Sn S0,Sn分别
11、表示并发程序段分别表示并发程序段P1,P2,Pn开始执行开始执行前和并发执行结束后的语句。前和并发执行结束后的语句。P1,P2,Pn也可也可以由同一程序段中的不同语句组成。以由同一程序段中的不同语句组成。16相邻语句可以并发执行的条件(相邻语句可以并发执行的条件(1)nBernstein条件:条件: 将程序中任一语句将程序中任一语句Si划分为两个变量的集合划分为两个变量的集合:nR(Si) )=a1, a2, ,an,aj(j=1,m)是语句是语句Si在执行期间必须对其进行读的变量;在执行期间必须对其进行读的变量;nW(Si) )=b1, b2 , bn,bj(j=1,n)是语句是语句Si在执
12、行期间必须对其进行修改的变量。在执行期间必须对其进行修改的变量。17相邻语句可以并发执行的条件(相邻语句可以并发执行的条件(2)n对于语句对于语句S1和和S2,如果有,如果有n1)R(S1)W(S2)=n2) W(S1)R(S2)=n3) W(S1)W(S2)= 同时成立,则语句同时成立,则语句S1和和S2可以并发执行可以并发执行在两个语句中不在两个语句中不能对同一个变量能对同一个变量进行读、写操作进行读、写操作在两个语句中不在两个语句中不能对同一个变量能对同一个变量进行写操作进行写操作18例 子n在一个程序中语句在一个程序中语句S1要对变量要对变量m、n在执在执行期间进行读操作,对变量行期间
13、进行读操作,对变量a、b在执行期在执行期间进行修改操作;语句间进行修改操作;语句S2要对变量要对变量x、y在在执行期间进行读操作,对变量执行期间进行读操作,对变量i、j在执行期在执行期间进行修改操作。判断语句间进行修改操作。判断语句S1和和S2是否能是否能并发执行?并发执行?19例 子解:解: R(S1)=m、n W(S1)=a、b R(S2)=x、y W(S2)=i、j 利用利用Bernstein条件可得条件可得1)R(S1)W(S2)=m、n i、j=2)W(S1)R(S2)=a、b x、y = 3)W(S1)W(S2)=a、b i、j= 所以语句所以语句S1和和S2可以并发执行。可以并发
14、执行。20例:S1: C=X+Y+Z S2:D=C+XR(S1)=X,Y,Z R(S2)=C,X W(S1)=C W(S2)=D S1:x=x1+x2 S2:y=x1*x2 S3:z=(x+y)/2S4:w=z+5S5:m=w+1S6:m=m+1不能并发! 214. 程序的并发执行程序的并发执行n(2) 程序的并发执行所带来的影响程序的并发执行所带来的影响 n程序的并发执行充分地利用了系统资源,从而程序的并发执行充分地利用了系统资源,从而提高了系统的处理能力;提高了系统的处理能力;n程序的并发执行必然导致了资源共享和资源竞程序的并发执行必然导致了资源共享和资源竞争,争, “走走停停走走停停”,
15、一个程序可能走到中途停,一个程序可能走到中途停下来,失去原有的时序关系;下来,失去原有的时序关系;从而改变程序的从而改变程序的执行速度;执行速度; 224. 程序的并发执行程序的并发执行n(2) 程序的并发执行所带来的影响程序的并发执行所带来的影响n如果并发执行的各程序段中语句或指令满足如果并发执行的各程序段中语句或指令满足Bernstein 的三个条件,则认为并发执行不会的三个条件,则认为并发执行不会对执行结果的封闭性和可再现性产生影响。对执行结果的封闭性和可再现性产生影响。n如果并发执行的程序段不按照特定的规则和方如果并发执行的程序段不按照特定的规则和方法进行资源共享和竞争,则其执行结果将
16、不可法进行资源共享和竞争,则其执行结果将不可避免地失去封闭性和可再现性。避免地失去封闭性和可再现性。23例例 子子n设有堆栈设有堆栈S,栈指针,栈指针top,栈中存放内存中,栈中存放内存中相应数据块地址,设有两个程序段相应数据块地址,设有两个程序段getaddr(top)和和reladdr(blk),其中,其中getaddr(top)从给定的从给定的top所指栈中取出所指栈中取出相应的内存数据块地址,而相应的内存数据块地址,而reladdr(blk)则将内存数据块地址则将内存数据块地址blk放入堆栈放入堆栈S中。中。24例例 子子出栈:出栈:procedure getaddr(top)begi
17、nlocal rr (top)top top-1return(r)endr atop top-1top top 25例例 子子进栈:进栈:procedure reladdr(blk) begintop top+1(top) blk endcC=blk26图图3.1 堆栈的取数和存数过程堆栈的取数和存数过程274. 程序的并发执行程序的并发执行n程序的并发执行,程序的并发执行,由于资源的共享和竞争由于资源的共享和竞争使得:使得:使得其执行结果不再具有封闭性和使得其执行结果不再具有封闭性和可再现性,且可能造成程序出现错误。可再现性,且可能造成程序出现错误。n为了控制和协调各程序段执行过程中的软、为
18、了控制和协调各程序段执行过程中的软、硬件资源的共享和竞争,必须有一个描述硬件资源的共享和竞争,必须有一个描述各程序段执行过程和共享资源的基本单位,各程序段执行过程和共享资源的基本单位,这个基本单位被称为进程(或任务)。这个基本单位被称为进程(或任务)。283.1.2 进程的定义n进程的概念是进程的概念是60年代初期,首先在年代初期,首先在MIT 的的 Multics系统和系统和IBM 的的 TSS/360系统中引用的。系统中引用的。 (1) 进程是可以并行执行的计算部分进程是可以并行执行的计算部分(S.E.Madnick,J.T.Donovan);); (2) 进程是一个独立的可以调度的活动进
19、程是一个独立的可以调度的活动(E.Cohen,D.Jofferson);); (3) 进程是一抽象实体,当它执行某个任务时,将进程是一抽象实体,当它执行某个任务时,将要分配和释放各种资源(要分配和释放各种资源(P.Denning););293.1.2 进程的定义(4) 行为的规则叫程序,程序在处理机上执行为的规则叫程序,程序在处理机上执行时的活动称为进程(行时的活动称为进程(E.W.Dijkstra);); (5) 一个进程是一系列逐一执行的操作。一个进程是一系列逐一执行的操作。 进程是一个动态的执行过程进程是一个动态的执行过程 n进程的定义:进程的定义:并发执行的程序在执行过程并发执行的程序
20、在执行过程中分配和管理资源的基本单位。中分配和管理资源的基本单位。30进程和程序的区别和关系 程序是构成进程的组成部分之一,一个进程程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序,如果没有的运行目标是执行它所对应的程序,如果没有程序,进程就失去了其实际存在的意义。从静程序,进程就失去了其实际存在的意义。从静态的角度看,进程是由程序、数据结构集和进态的角度看,进程是由程序、数据结构集和进程控制块三部分组成的。程控制块三部分组成的。 31进程和程序的区别和关系n(1) 进程是一个动态概念,而程序则是一个静态概进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,没
21、有任何执行的含义。念。程序是指令的有序集合,没有任何执行的含义。而进程则强调执行过程。而进程则强调执行过程。n(2) 进程具有并发特征,而程序没有。进程具有并发特征,而程序没有。独立性:指独立性:指进程是一个能独立运行、独立分配资源和独立调度进程是一个能独立运行、独立分配资源和独立调度的基本单位。只有进程有资格向系统提出申请资源的基本单位。只有进程有资格向系统提出申请资源并获得系统提供的服务。异步性:进程按各自独立并获得系统提供的服务。异步性:进程按各自独立的、不可预知的速度向前推进,或说进程按异步方的、不可预知的速度向前推进,或说进程按异步方式运行。式运行。 32进程和程序的区别和关系n(3
22、) 进程是竞争计算机系统资源的基本单进程是竞争计算机系统资源的基本单位,从而其并发性(独立性、异步性)受位,从而其并发性(独立性、异步性)受到系统自己的制约。到系统自己的制约。n(4) 不同的进程可以包含同一程序,只要不同的进程可以包含同一程序,只要该程序所对应的数据集不同,即同一程序该程序所对应的数据集不同,即同一程序在执行中可以产生多个进程。通过调用,在执行中可以产生多个进程。通过调用,同一进程可包含多个程序。同一进程可包含多个程序。33作业和进程的区别n一个进程是一个程序对某个数据集的执行一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用过程,是分配资源的基本单位。
23、作业是用户需要计算机完成某项任务时要求计算机户需要计算机完成某项任务时要求计算机所作工作的集合。一个作业的完成要经过所作工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完作业提交、作业收容、作业执行和作业完成成4个阶段。而进程是已提交完毕的程序所个阶段。而进程是已提交完毕的程序所执行过程的描述。其主要区别如下:执行过程的描述。其主要区别如下:34进程与作业的区别n作业是用户向计算机提交任务的任务实体。在用户作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将它放入外存中的作向计算机提交作业之后,系统将它放入外存中的作业等待队列中等待执行。进程则是完成用户任
24、务的业等待队列中等待执行。进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。任执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于内一进程,只要它被创建,总有相应的部分存在于内存中。存中。 n一个作业可由多个进程组成。且必须至少由一个进一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。程组成,但反过来不成立。 n作业的概念主要用在批处理系统中。而进程的概念作业的概念主要用在批处理系统中。而进程的概念则用在几乎所有的多道系统中。则用在几乎所有的多道系统中。353.2 进程的描述进程的描述n系统中描述进程存在和能够反映其变化的物理实
25、体,系统中描述进程存在和能够反映其变化的物理实体,称为称为进程的静态描述进程的静态描述。 n进程的静态描述由三部分组成:进程的静态描述由三部分组成:n程序:程序:描述了进程所要完成的功能,是进程执行时不可描述了进程所要完成的功能,是进程执行时不可修改的部分。修改的部分。n数据结构集合:数据结构集合:程序执行时所需要的数据和工作区,为程序执行时所需要的数据和工作区,为一个进程专用,可修改。一个进程专用,可修改。n进程控制块进程控制块PCB(Process Control Block)PCB(Process Control Block):包含包含进程的进程的描述信息、控制信息、资源信息,是进程动态
26、特征的集描述信息、控制信息、资源信息,是进程动态特征的集中反映。中反映。一个进程的一个进程的PCB结构都是全部或部分常驻内存结构都是全部或部分常驻内存的的。363.2.1 进程控制块进程控制块n进程控制块进程控制块PCBPCB(Process Control Block)(Process Control Block): 为了对进程进行有效的控制和管理,系统为为了对进程进行有效的控制和管理,系统为每一进程设置一个进程控制块,每一进程设置一个进程控制块,PCBPCB其是进程存其是进程存在的唯一标志,在的唯一标志,PCBPCB纪录了进程的有关信息纪录了进程的有关信息。通通常常PCBPCB包含以下几类
27、信息:包含以下几类信息: 1.1.进程描述信息:进程描述信息:2.2.进程控制信息:进程控制信息:3.3.资源管理信息:资源管理信息:4.CPU4.CPU现场保护结构:现场保护结构:373.2.1 进程控制块进程控制块n1.1.描述信息描述信息n进程名或进程标识号进程名或进程标识号:用来用来唯一标识一个进唯一标识一个进程程,进程标识号进程标识号通常是一个整数。通常是一个整数。n用户名或用户标识号用户名或用户标识号:利于资源共享与保护。:利于资源共享与保护。n家族关系家族关系:383.2.1 进程控制块进程控制块n 2.控制信息控制信息n进程当前状态进程当前状态:进程在活动期间可分为初始态、就绪
28、:进程在活动期间可分为初始态、就绪态、执行态、等待状态和终止状态。态、执行态、等待状态和终止状态。n进程优先级:进程优先级:进程需要处理的缓急程度标识,是进程需要处理的缓急程度标识,是选取选取进程占有处理机的重要依据。进程占有处理机的重要依据。n程序、数据开始地址程序、数据开始地址:程序、数据所在的内存或外存程序、数据所在的内存或外存地址。地址。n各种计时信息:各种计时信息:给出进程占有和利用资源的有关情况。给出进程占有和利用资源的有关情况。n通信信息:通信信息:用来说明该进程在执行过程中与别的进程用来说明该进程在执行过程中与别的进程所发生的信息交换情况。所发生的信息交换情况。393.2.1
29、进程控制块进程控制块n3.3.资源管理信息:资源管理信息: 包括有关存储器的信息、使用输入输出设备的包括有关存储器的信息、使用输入输出设备的信息、有关文件系统的信息等。这些信息有:信息、有关文件系统的信息等。这些信息有: 占用内存大小及其管理用数据结构指针,如内存管理占用内存大小及其管理用数据结构指针,如内存管理中所用到的进程页表指针等。中所用到的进程页表指针等。 在某些复杂系统中,还有对换或覆盖用的有关信息,在某些复杂系统中,还有对换或覆盖用的有关信息,如对换程序段长度,对换外存地址等。在进程申请、如对换程序段长度,对换外存地址等。在进程申请、释放内存中使用。释放内存中使用。403.2.1
30、进程控制块进程控制块n3.3.资源管理信息:资源管理信息: 共享程序段大小及起始地址。共享程序段大小及起始地址。 输入输出设备的设备号,所要传送的数据长度、缓冲输入输出设备的设备号,所要传送的数据长度、缓冲区地址、缓冲区长度及所用设备的有关数据结构指针区地址、缓冲区长度及所用设备的有关数据结构指针等。在进程申请释放设备进行数据传输中使用。等。在进程申请释放设备进行数据传输中使用。 指向文件系统的指针及有关标识等。对文件系统进行指向文件系统的指针及有关标识等。对文件系统进行操作。操作。413.2.1 进程控制块进程控制块n4.CPU4.CPU现场保护结构:现场保护结构:它由处理机各种寄存器(通用
31、寄存器、指令计数它由处理机各种寄存器(通用寄存器、指令计数器、程序状态字器、程序状态字PSWPSW、用户栈指针等)的内容、用户栈指针等)的内容所组成,该类信息使进程被中断后重新执行时所组成,该类信息使进程被中断后重新执行时能恢复现场从断点处继续运行。能恢复现场从断点处继续运行。423.2.1 进程控制块进程控制块nPCB的组织的组织 PCBPCB表:表: 系统把所有系统把所有PCBPCB组织在一起,并把它们放在内存的固定区组织在一起,并把它们放在内存的固定区域,就构成了域,就构成了PCBPCB表;表; PCBPCB表的大小决定了系统中最多可同时存在的进程个数,表的大小决定了系统中最多可同时存在
32、的进程个数,称为称为系统的并发度。系统的并发度。为了统一管理、控制和调度进程,为了统一管理、控制和调度进程,OS常将进程控制块集中常将进程控制块集中组织,组织,把所有的不同状态的进程的把所有的不同状态的进程的PCB组织在一起;组织在一起;或或把把有着相同状态的进程的有着相同状态的进程的PCB分别组织。分别组织。典型的有典型的有:n线性表线性表n链接表或队列链接表或队列433.2.2 进程上下文进程上下文n进程上下文实际上是进程执行过程中顺序关联的进程上下文实际上是进程执行过程中顺序关联的静态描述(是进程执行活动全过程的静态描述)。静态描述(是进程执行活动全过程的静态描述)。是一个与进程切换和处
33、理机状态发生转换有关的是一个与进程切换和处理机状态发生转换有关的概念。概念。n进程上下文包含:进程上下文包含:每个进程执行过的、执行时的、每个进程执行过的、执行时的、待执行的指令和数据待执行的指令和数据,在指令寄存器、栈(存放在指令寄存器、栈(存放各调用子程序的返回点和参数等)、状态字寄存各调用子程序的返回点和参数等)、状态字寄存器等中的内容。器等中的内容。443.2.2 进程上下文进程上下文n上文:上文:已执行过的进程指令和数据在相关已执行过的进程指令和数据在相关寄存器与堆栈中的内容;寄存器与堆栈中的内容;n正文:正文:正在执行的进程指令和数据在相关正在执行的进程指令和数据在相关寄存器与堆栈
34、中的内容;寄存器与堆栈中的内容;n下文:下文:待执行的进程指令和数据在相关寄待执行的进程指令和数据在相关寄存器与堆栈中的内容。存器与堆栈中的内容。453.2.2 进程上下文进程上下文n不发生进程调度时,进出上下文的改变都不发生进程调度时,进出上下文的改变都是在同一进程内进行的,这时,每条指令是在同一进程内进行的,这时,每条指令的执行对进程上下文的改变较小,一般的执行对进程上下文的改变较小,一般反反映为指令寄存器映为指令寄存器IR、程序计数器、程序计数器PC、保存、保存调用子程序返回接口用的堆栈值等的变化调用子程序返回接口用的堆栈值等的变化。46进程上下文n计算机系统中与执行该进程有关的各计算机
35、系统中与执行该进程有关的各种寄存器的值种寄存器的值n程序段在经过编译后形成的机器指令程序段在经过编译后形成的机器指令代码集代码集n数据集数据集n各种堆栈值各种堆栈值nPCBPCB结构结构47上下文的结构上下文的结构图图3.2 进程上下文结构进程上下文结构483.2.2 进程上下文进程上下文图图3.3 UNIX System 进程上下文组成进程上下文组成通通493.2.3 进程上下文切换进程上下文切换n进程上下文的切换发生在不同的进程之间,而进程上下文的切换发生在不同的进程之间,而不是同一个进程内。不是同一个进程内。n进程上下文的切换过程进程上下文的切换过程 :n保存被切换进程的正文部分至有关存
36、储区;保存被切换进程的正文部分至有关存储区;n操作系统进程中有关调度、资源分配程序执行,并操作系统进程中有关调度、资源分配程序执行,并选取新的进程;选取新的进程;1.将被选中的进程的原来被保存的正文部分从有关存将被选中的进程的原来被保存的正文部分从有关存储区中取出,并送到有关寄存器、栈中,激活被选储区中取出,并送到有关寄存器、栈中,激活被选中的进程执行。中的进程执行。503.2.3 进程上下文切换进程上下文切换图图3.4进程上下文的切换过程进程上下文的切换过程 513.2.3 进程上下文切换进程上下文切换n进程上下文的切换过程涉及到进程上下文的切换过程涉及到谁来保护和获取进谁来保护和获取进程正
37、文的问题程正文的问题,即如何使寄存器和栈等中的数据,即如何使寄存器和栈等中的数据流入流出流入流出PCB的存储区。的存储区。n进程上下文的切换还涉及到进程上下文的切换还涉及到系统调度和分配程序系统调度和分配程序,比较耗费比较耗费CPU时间。时间。n为提高系统执行效率,有的计算机采用了为提高系统执行效率,有的计算机采用了多组寄多组寄存器技术存器技术来保存进程上下文,以减少数据保存和来保存进程上下文,以减少数据保存和获取所消耗的时间。获取所消耗的时间。523.2.4 进程空间与大小进程空间与大小n任一进程,都有一个自己的地址空间,把该任一进程,都有一个自己的地址空间,把该空间称为空间称为进程空间进程
38、空间或或虚空间虚空间。n进程空间的大小只与处理机的位数有关。如,进程空间的大小只与处理机的位数有关。如,一个一个16位长处理机的进程空间大小为位长处理机的进程空间大小为216,而而32位长处理机的进程空间大小为位长处理机的进程空间大小为232。533.2.4 进程空间与大小进程空间与大小n程序的执行都在进程空间内进行。用户程程序的执行都在进程空间内进行。用户程序、进程的各种控制表格等都按一定的结序、进程的各种控制表格等都按一定的结构排列在进程空间中。构排列在进程空间中。n在一些操作系统中进程空间被划分为在一些操作系统中进程空间被划分为用户用户空间空间和和系统空间系统空间两个部分。用户程序在用两
39、个部分。用户程序在用户空间内执行;操作系统内核程序在系统户空间内执行;操作系统内核程序在系统空间内执行。空间内执行。如,UNIX、Linux操作系统。操作系统。543.3 进程状态及其转换进程状态及其转换n3.3.1 进程状态进程状态n一个进程的生命期可以划分为一组状态,这些一个进程的生命期可以划分为一组状态,这些状态刻划了整个进程。系统根据状态刻划了整个进程。系统根据PCB 结构中的结构中的状态值控制进程。状态值控制进程。n在进程的生命期内,一个进程至少具有在进程的生命期内,一个进程至少具有5种基种基本状态,它们是:初始态、执行状态、等待状本状态,它们是:初始态、执行状态、等待状态、就绪状态
40、和终止状态。态、就绪状态和终止状态。553.3.1 进程状态进程状态n初始状态:初始状态:进程刚被创建时,因得不到处理机不能执行,进程刚被创建时,因得不到处理机不能执行,称进程处于初始状态。称进程处于初始状态。n执行状态:执行状态:当一个进程在处理机上运行时,则称该进程处当一个进程在处理机上运行时,则称该进程处于执行状态。于执行状态。n就绪状态:就绪状态:一个进程获得了除处理机外的一切所需资源,一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。一旦得到处理机即可运行,则称此进程处于就绪状态。(内存就绪状态、外存就绪状态)(内存就绪状态、外存就绪状态)n等待
41、状态:等待状态:当一个进程正在等待某一事件发生(例如请求当一个进程正在等待某一事件发生(例如请求I IO O而等待而等待I IO O完成等)而暂时停止运行,这时即使把处完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于等待状态。理机分配给进程也无法运行,故称该进程处于等待状态。注意与就绪状态的不同在于即使处理机处于空闲状态也无注意与就绪状态的不同在于即使处理机处于空闲状态也无法运行。法运行。 n终止状态:终止状态:进程在执行结束后,将退出执行而被终止,称进程在执行结束后,将退出执行而被终止,称进程处于终止状态。进程处于终止状态。563.3.2进程状态转换进程状态转换图
42、图3.6进程状态转换进程状态转换57进进 程程 的的 类类 型型 n(1) 进程的分类进程的分类 系统中同时存在许多进程,它们依性质不同可系统中同时存在许多进程,它们依性质不同可分为各种不同的类别。分为各种不同的类别。 n系统进程:系统进程:用于对资源进行管理和控制的进程。用于对资源进行管理和控制的进程。 n用户进程:用户进程:对应于用户的应用问题对应于用户的应用问题(如算题任务如算题任务)而建立的进程。而建立的进程。58进进 程程 的的 类类 型型 n(2) 两者关系两者关系na.系统进程被分配一个初始的资源集合系统进程被分配一个初始的资源集合, 这些这些资源可为它所独占,也可以最高优先权的
43、资格资源可为它所独占,也可以最高优先权的资格优先使用。而用户进程通过系统服务请求的手优先使用。而用户进程通过系统服务请求的手段竞争系统资源。段竞争系统资源。nb.用户进程不能做直接用户进程不能做直接I/O操作操作,而系统进程可而系统进程可以做显示的、直接的以做显示的、直接的I/O 操作。操作。nc.系统进程在管态(系统态)下活动,而用户系统进程在管态(系统态)下活动,而用户进程在目态(用户态)下活动。进程在目态(用户态)下活动。59课堂练习课堂练习 在操作系统中进程是一个具有一定独立功能程序在在操作系统中进程是一个具有一定独立功能程序在某个数据集合上的一次某个数据集合上的一次 A A ,进程是一个,进程是一个 B B 概念,而程概念,而程序是一个序是一个 C C 的概念。在一单处理机中,若有的概念。在一单处理机中,若有5 5个用户进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国妥必来片行业投资前景及策略咨询研究报告
- 以患者为中心的医疗保险费用优化策略
- 2025年六安市金安区区属国有企业公开招聘人34名员笔试参考题库附带答案详解
- 销售2月工作总结(28篇)
- 区块链技术在金融领域的安全性应用
- 区块链在医疗信息追溯中的应用
- 办公医疗培训溶栓药物的认知与操作
- 创新型医疗器械供应链管理的未来趋势
- 静脉曲张射频消融治疗
- 2025至2031年中国大马锡行业投资前景及策略咨询研究报告
- 小升初放弃学校分配申请书范文
- “三个代表”重要思想
- 科技论文写作第八章(讨论部分)课件
- 水平三(五年级)体育《篮球:单手肩上投篮》说课稿课件
- 链家买卖合同 链家买卖合同标准版(五篇)
- 上肢后区、脊柱区的局部解剖与操作-人体局解剖学-课件-07
- 医用计量器具目录(含强检)
- 年产3万吨乙酸乙酯-毕业设计说明书
- 光伏电缆的敷设
- 胎心监护操作考核标准
- C#实验c-图书管理系统源代码
评论
0/150
提交评论