计算机操作系统第3章.ppt
《计算机操作系统第3章.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统第3章.ppt(153页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 进程管理进程管理3.1 3.1 进程的概念进程的概念3.2 3.2 进程的描述进程的描述3.3 3.3 进程状态及其转换进程状态及其转换3.4 3.4 进程控制进程控制3.5 3.5 进程互斥进程互斥3.6 3.6 进程同步进程同步3.7 3.7 进程通信进程通信3.8 3.8 死锁问题死锁问题3.9 3.9 线程线程 3.1 进程的概念进程的概念 现代操作系统的重要特点:现代操作系统的重要特点:程序的并发执行、资源共享、用户随机地使用。程序的并发执行、资源共享、用户随机地使用。1.程序的顺序执行程序的顺序执行程序的顺序执行程序的顺序执行:程序独占处理机直至最终结束的过:程序独
2、占处理机直至最终结束的过程。程。程序的顺序执行具有如下特点:程序的顺序执行具有如下特点:(1)顺序性顺序性程序顺序执行时,其执行过程可看作一系列严格按程程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程。序规定的状态转移过程。(2)封闭性封闭性程序执行得到的最终结果由给定的初始条件决定,不程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。受外界因素的影响。(3)可再现性可再现性只要输入的初始条件相同,则无论何时重复执行该程只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。序都会得到相同的结果。2.多道程序系统中程序执行环境的变化多道程序系统中程序
3、执行环境的变化多道程序执行的系统环境具有下述三个特点:多道程序执行的系统环境具有下述三个特点:(1)独立性独立性每道程序都是逻辑上独立的,它们之间不存在逻辑上每道程序都是逻辑上独立的,它们之间不存在逻辑上的制约关系。的制约关系。(2)随机性随机性在多道程序环境下,特别是在多用户环境下,程序和在多道程序环境下,特别是在多用户环境下,程序和数据的输入与执行开始时间都是随机的。数据的输入与执行开始时间都是随机的。(3)资源共享资源共享资源共享将导致对进程执行速度的制约。资源共享将导致对进程执行速度的制约。3.程序的并发执行程序的并发执行(1)什么是程序的并发执行什么是程序的并发执行 并发执行并发执行
4、:即一道程序的执行尚未结束;另一道程:即一道程序的执行尚未结束;另一道程序的执行已经开始的执行方式。是为了增强计算机序的执行已经开始的执行方式。是为了增强计算机系统的处理能力和提高资源利用率所采取的一种同系统的处理能力和提高资源利用率所采取的一种同时操作技术。程序的并发执行可进一步分为两种:时操作技术。程序的并发执行可进一步分为两种:第一种第一种第一种第一种是多道程序系统的程序执行环境变化所引起是多道程序系统的程序执行环境变化所引起的多道程序的并发执行。微观上仍是顺序执行,尽的多道程序的并发执行。微观上仍是顺序执行,尽管多道程序的并发执行在宏观上是同时进行的。管多道程序的并发执行在宏观上是同时
5、进行的。第第第第二种二种二种二种并发执行是在某道程序的几个程序段中(例如并发执行是在某道程序的几个程序段中(例如几个程序),包含着一部分可以同时执行或顺序颠几个程序),包含着一部分可以同时执行或顺序颠倒执行的代码。例如语句:倒执行的代码。例如语句:read(a);read(b);它们既可以同时执行,也可颠倒次序执行。对于这样它们既可以同时执行,也可颠倒次序执行。对于这样的语句,同时执行不会改变顺序程序所具有的逻辑的语句,同时执行不会改变顺序程序所具有的逻辑性质。因此,可以采用并发执行来充分利用系统资性质。因此,可以采用并发执行来充分利用系统资源以提高计算机的处理能力。源以提高计算机的处理能力。
6、程序的并发执行可总结为:一组在逻辑上互相独立的程序的并发执行可总结为:一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。程序段的执行已经开始的这种执行方式。程序的并发执行不同于程序的并行执行。程序的并行程序的并发执行不同于程序的并行执行。程序的并行执行是指一组程序按独立的、异步的速度执行。并执行是指一组程序按独立的、异步的速度执行。并行执行不等于时间上的重叠。可以将并发执行过程行执行不等于时间上的重叠。可以将并发
7、执行过程描述为:描述为:S0CobeginP1;P2;.PnCoendSn这里这里,S0,Sn分别表示并发程序段分别表示并发程序段P1,P2,Pn开始执行前和并发执行结束后的语句。开始执行前和并发执行结束后的语句。P1,2,Pn也可以由同一程序段中的不同语句组成。也可以由同一程序段中的不同语句组成。1966年年Bernstein 提出了提出了两相邻语句两相邻语句S1,S2可以并发执可以并发执行的条件:行的条件:将程序中任一语句将程序中任一语句Si划分为两个变量的集合划分为两个变量的集合R(Si)和和W(Si)。其中其中R(Si)=a1 a2 am,aj(j=1,m)是语句是语句Si在执行期间必
8、须对其进行读操作的变量;在执行期间必须对其进行读操作的变量;W(Si)=b1 b2 bn,bj(j=1,n)是语句是语句Si在执行期间必须对其进行写操作的变量;在执行期间必须对其进行写操作的变量;如果对于如果对于两相邻语句两相邻语句S1和和S2,有有 R(S1)W(S2)=,W(S1)R(S2)=,W(S1)W(S2)=同时成立,则语句同时成立,则语句S1和和S2是可以并发执行的。是可以并发执行的。多道执行与单道执行有何优点:例:例:例:例:有三个程序有三个程序A、B、C;每个程序都由输入、计算、;每个程序都由输入、计算、输出三部分代码组成;记为输出三部分代码组成;记为Ai、Ac、Ao,Bi、
9、Bc、Bo,Ci、Cc、Co;假设各部分代码在相应的设备上;假设各部分代码在相应的设备上执行的时间都为执行的时间都为t;在单道环境下:总的运行时间;在单道环境下:总的运行时间9t,输入设备占用输入设备占用3t,输出设备占用,输出设备占用3t。C P U 利用率利用率3t9t3933.3 输入设备利用率输入设备利用率3t9t39 33.3 输出设备利用率输出设备利用率3t9t39 33.3 AiAiAoAoAcAcBiBiBoBoBcBcCiCiCcCcCoCoAiAiAoAoAcAcBiBiBoBoBcBcCiCiCcCcCoCott时时间间ttttttt多道环境下多道环境下多道环境下多道环境
10、下:总的运行时间:总的运行时间5t,输入设备占用,输入设备占用3t,输出设备占,输出设备占用用3t。C P U 利用率利用率3t5t3560 输入设备利用率输入设备利用率3t5t3560 输出设备利用率输出设备利用率3t5t3560CPUCPU时间片时间片时间片时间片进进进进 程程程程 A A进进进进 程程程程 B B进进进进 程程程程 C CtAiAiAcAcAoAoBiBiBcBcBoBoCiCiCcCcCoCotttt输入设备输入设备输入设备输入设备输出设备输出设备输出设备输出设备CPUCPU(2)程序的并发执行所带来的影响程序的并发执行所带来的影响程序的并发执行充分地利用了系统资源,从
11、而提高了程序的并发执行充分地利用了系统资源,从而提高了系统的处理能力,这是并发执行好的一方面。但是,系统的处理能力,这是并发执行好的一方面。但是,正如前面所提到的那样,由于系统资源有限,程序正如前面所提到的那样,由于系统资源有限,程序的并发执行必然导致资源共享和资源竞争,从而改的并发执行必然导致资源共享和资源竞争,从而改变程序的执行速度。如果并发执行的各程序段中语变程序的执行速度。如果并发执行的各程序段中语句或指令满足上述句或指令满足上述Bernstein 的三个条件,则认为的三个条件,则认为并发执行不会对执行结果的封闭性和可再现性产生并发执行不会对执行结果的封闭性和可再现性产生影响。但在一般
12、情况下,系统要判定并发执行的各影响。但在一般情况下,系统要判定并发执行的各程序段是否满足程序段是否满足Bernstein 条件是相当困难的。从条件是相当困难的。从而,如果并发执行的程序段不按照特定的规则和方而,如果并发执行的程序段不按照特定的规则和方法进行资源共享和竞争,则其执行结果将不可避免法进行资源共享和竞争,则其执行结果将不可避免地失去封闭性和可再现性。下面的例子说明了这一地失去封闭性和可再现性。下面的例子说明了这一点。点。堆栈的取数和存数过程图堆栈的取数和存数过程图例:设有堆栈例:设有堆栈S,栈指针栈指针top,栈中存放内存中相应数栈中存放内存中相应数据块地址(如图据块地址(如图3.1
13、(a))设有两个程序段设有两个程序段getaddr(top)和和reladdr(blk),其中其中getaddr(top)从给从给定的定的top所指栈中取出相应的内存数据块地址,而所指栈中取出相应的内存数据块地址,而reladdr(blk)则将内存数据块地址则将内存数据块地址blk放入堆栈放入堆栈S中。中。getaddr(top)和和reladdr(blk)可分别描述为:可分别描述为:procedure getaddr(top)beginlocal rr(top)top top-1return(r)endprocedure reladdr(blk)例:利用堆栈管理一块内存区中各数据块的使用情况
14、。例:利用堆栈管理一块内存区中各数据块的使用情况。用用getaddr(top)从栈顶取出相应的内存块的地址。用从栈顶取出相应的内存块的地址。用reladdr(blk)将数据块的地址将数据块的地址(以(以bkl为地址)放入堆栈中。为地址)放入堆栈中。proc getaddr(top)Begin local r;1.1 r stop;1.2 top top-1;1.3 return(r);end;Proc reladdr(blk)Begin 2.1 top top+1;2.2 stop blk;End;分析分析getaddr(top)与与reladdr(blk)的的并发执行并发执行012345t
15、abtop2.1 top top+11.1 r stop1.2 top top-11.3 return(r)2.2 stop blktoptop blk上例中的程序段并发执行出现错误结果是由于两程序上例中的程序段并发执行出现错误结果是由于两程序段共享资源堆栈段共享资源堆栈S,从而使得执行结果受执行速度从而使得执行结果受执行速度影响。一般情况下,并发执行的各程序段如果共享影响。一般情况下,并发执行的各程序段如果共享软、硬件资源,都会造成其执行结果受执行速度影软、硬件资源,都会造成其执行结果受执行速度影响的局面。显然,这是程序设计人员不希望看到的。响的局面。显然,这是程序设计人员不希望看到的。为了
16、使得在并发执行时不出现错误结果,必须采取为了使得在并发执行时不出现错误结果,必须采取某些措施来制约、控制各并发程序段的执行速度。某些措施来制约、控制各并发程序段的执行速度。这在操作系统程序设计中尤其重要,因为操作系统这在操作系统程序设计中尤其重要,因为操作系统用户随机性与各道程序逻辑独立的特点将使得每个用户随机性与各道程序逻辑独立的特点将使得每个用户程序所使用的软、硬件资源都受到其他并发程用户程序所使用的软、硬件资源都受到其他并发程序的共享和竞争,从而得到非预料的或不正确的结序的共享和竞争,从而得到非预料的或不正确的结果。为了控制和协调各程序段执行过程中的软、硬果。为了控制和协调各程序段执行过
17、程中的软、硬件资源的共享和竞争,显然,必须应该有一个描述件资源的共享和竞争,显然,必须应该有一个描述各程序段执行过程和共享资源的基本单位。各程序段执行过程和共享资源的基本单位。从上述讨论可以看出,由于程序的顺序性、静态性以从上述讨论可以看出,由于程序的顺序性、静态性以及孤立性,用程序段作为描述其执行过程和共享资及孤立性,用程序段作为描述其执行过程和共享资源的基本单位既增加操作系统设计和实现的复杂性,源的基本单位既增加操作系统设计和实现的复杂性,也无法反映操作系统所应该具有的程序段执行的并也无法反映操作系统所应该具有的程序段执行的并发性、用户随机性,以及资源共享等特征。也就是发性、用户随机性,以
18、及资源共享等特征。也就是说,用程序作为描述其执行过程以及共享资源的基说,用程序作为描述其执行过程以及共享资源的基本单位是不合适的。需要有一个能描述程序的执行本单位是不合适的。需要有一个能描述程序的执行过程且能用来共享资源的基本单位。这个基本单位过程且能用来共享资源的基本单位。这个基本单位被称为进程(或任务)。被称为进程(或任务)。3.1.2 进程的定义进程的定义进程的概念是进程的概念是60年代初期,首先在年代初期,首先在MIT 的的 Multics系系统和统和IBM 的的 TSS/360系统中引用的。系统中引用的。进程的定义进程的定义:一个具有独立功能的程序对某个数据集:一个具有独立功能的程序
19、对某个数据集在处理机上的执行过程和分配资源的基本单位。在处理机上的执行过程和分配资源的基本单位。进程和程序是两个既有联系又有区别的概念,它们的进程和程序是两个既有联系又有区别的概念,它们的区别和关系可简述如下:区别和关系可简述如下:(1)进程是一个动态概念,而程序则是一个静态概念。进程是一个动态概念,而程序则是一个静态概念。程序是指令的有序集合,没有任何执行的含义。而程序是指令的有序集合,没有任何执行的含义。而进程则强调执行过程,它动态地被创建,并被调度进程则强调执行过程,它动态地被创建,并被调度执行后消亡。执行后消亡。(2)进程具有并行特征,而程序没有。由进程的定义进程具有并行特征,而程序没
20、有。由进程的定义可知,进程具有并行特征的两个方面,即独立性和可知,进程具有并行特征的两个方面,即独立性和异步性。也就是说,在不考虑资源共享的情况下,异步性。也就是说,在不考虑资源共享的情况下,各进程的执行是独立的,执行速度是异步的。显然,各进程的执行是独立的,执行速度是异步的。显然,由于程序不反映执行过程,所以不具有并行特征。由于程序不反映执行过程,所以不具有并行特征。(3)进程是竞争计算机系统资源的基本单位,从而其进程是竞争计算机系统资源的基本单位,从而其并行性受到系统自己的制约。这里,制约就是对进并行性受到系统自己的制约。这里,制约就是对进程独立性和异步性的限制。程独立性和异步性的限制。(
21、4)不同的进程可以包含同一程序,只要该程序所对不同的进程可以包含同一程序,只要该程序所对应的数据集不同。应的数据集不同。3.1.3 作业和进程的关系作业和进程的关系作业是用户需要计算机完成某项任务时要求计算机所作业是用户需要计算机完成某项任务时要求计算机所作工作的集合。进程是已提交完毕程序的执行过程作工作的集合。进程是已提交完毕程序的执行过程的描述,是资源分配的基本单位。区别与关系:的描述,是资源分配的基本单位。区别与关系:(1)作业是用户向计算机提交任务的任务实体。在用作业是用户向计算机提交任务的任务实体。在用户向计算机提交作业之后,系统将它放入外存中的户向计算机提交作业之后,系统将它放入外
22、存中的作业等待队列中等待执行。而进程则是完成用户任作业等待队列中等待执行。而进程则是完成用户任务的执行实体,是向系统申请分配资源的基本单位。务的执行实体,是向系统申请分配资源的基本单位。任一进程,只要它被创建,总有相应的部分存在于任一进程,只要它被创建,总有相应的部分存在于内存中。内存中。(2)一个作业可由多个进程组成。且必须至少由一个一个作业可由多个进程组成。且必须至少由一个进程组成,但反过来不成立。进程组成,但反过来不成立。(3)作业的概念主要用在批处理系统中。而进程的概作业的概念主要用在批处理系统中。而进程的概念则用在几乎所有的多道系统中。念则用在几乎所有的多道系统中。3.2 进程的描述
23、进程的描述从处理机的活动角度来看,又如何识别描述程序执行从处理机的活动角度来看,又如何识别描述程序执行活动的进程呢?显然,系统中需要有描述进程存在活动的进程呢?显然,系统中需要有描述进程存在和能够反映其变化的物理实体,即进程的静态描述。和能够反映其变化的物理实体,即进程的静态描述。进程的静态描述由三部分组成:进程控制块进程的静态描述由三部分组成:进程控制块PCB,有关程序段和该程序段对其进行操作的数据结构集。有关程序段和该程序段对其进行操作的数据结构集。进程控制块包含了有关进程的描述信息、控制信息进程控制块包含了有关进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。系统以及资源信
24、息,是进程动态特征的集中反映。系统根据根据PCB感知进程的存在和通过感知进程的存在和通过PCB中所包含的各中所包含的各项变量的变化,掌握进程所处的状态以达到控制进项变量的变化,掌握进程所处的状态以达到控制进程活动的目的。由于进程的程活动的目的。由于进程的PCB 是系统感知进程的是系统感知进程的唯一实体,因此,在几乎所有的多道操作系统中,唯一实体,因此,在几乎所有的多道操作系统中,一个进程的一个进程的PCB结构都是全部或部分常驻内存的。结构都是全部或部分常驻内存的。进程的程序部分描述进程所要完成的功能。而数据结进程的程序部分描述进程所要完成的功能。而数据结构集是程序在执行时必不可少的工作区和操作
25、对象。构集是程序在执行时必不可少的工作区和操作对象。这两部分是进程完成所需功能的物质基础。由于进这两部分是进程完成所需功能的物质基础。由于进程的这两部分内容与控制进程的执行及完成进程功程的这两部分内容与控制进程的执行及完成进程功能直接有关,因而,在大部分多道操作系统中,这能直接有关,因而,在大部分多道操作系统中,这两部分内容放在外存中,直到该进程执行时再调入两部分内容放在外存中,直到该进程执行时再调入内存。下面分别介绍进程的内存。下面分别介绍进程的PCB结构、程序与数据结构、程序与数据结构集。结构集。3.2.1 进程控制块进程控制块PCB PCB包含一个进程的描述信息、控制信息及资源信包含一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统
限制150内