计算机操作系统原理-3.ppt
《计算机操作系统原理-3.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统原理-3.ppt(94页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、清华大学出版社清华大学出版社第第3章章 操作系统概述操作系统概述3.1 多道程序设计多道程序设计 3.2 进程的概念进程的概念 3.3 进程控制块和状态转换进程控制块和状态转换 3.4 进程控制进程控制 3.5 线程线程 清华大学出版社清华大学出版社3.1 多道程序设计多道程序设计 衡量一个系统效率的一个指标就是吞吐率衡量一个系统效率的一个指标就是吞吐率;即 吞吐率吞吐率=作业道数作业道数全部处理时间全部处理时间显然,系统效率与系统资源利用率密切相关,主要涉及:处理机、存储器、设备处理机、存储器、设备这样一些硬件资源的利用率问题。如果系统资源利用率高,则单位时间内完成的有效工作多;所以,提高系
2、统的吞吐量应当提高提高系统的吞吐量应当提高系统资源的利用率系统资源的利用率。下面通过例子说明处理机利用率与吞吐率的情况,如图图3.1所示。清华大学出版社清华大学出版社tAAt等待I/O的时间(6个t)(a)单道情况)单道情况11078BBtAAt(b)两道情况)两道情况1107189tt(c)四道情况)四道情况1107189BBAAC DC D2310图3.1 单道、两道和四道情况1421/8t=0.125道程序道程序/t2/9t=0.222道程序道程序/tAI/OAI/OBI/O4/11t=0.363道程序道程序/t下下一一步步A,B,C,D为程序,忽略外设;假定4个程序都需运行运行2个个t
3、时间,在期期间有间有6个个t时时间的间的I/O操作操作;吞吐率分别为:1/8=0.125 2/9=0.222 4/11=0.363 4道程序情况比单道提高了近 3 倍倍。显然不仅使内存充分利用,还带来处理机利用率的提高,使整个系统效率得以提高。下下一一步步结束结束下下一一步步3.1 多道程序设计多道程序设计 清华大学出版社清华大学出版社由图 3.1 可知多道下内存和处理机利用率得到显著提高。问题是内存存放程序数量是否越多越好呢?问题是内存存放程序数量是否越多越好呢?否定的!n 内存的容量限制了系统可同时处理程序的数目。n 物理设备的数量也是一个制约条件,如果内存中可同时运行的程序过多,这些程序
4、之间可能会因为相互等待被其它程序占用的设备资源(如I/O设备),反而可能会影响系统效率。n 程序道数过多对处理机的竞争更加激烈,可能会产生两个不利后果:n 程序道数过多对处理机的竞争更加激烈,可能会产生两个不利后果:影响系统的响应速度。产生过多的系统开销(系统本身运行的时空耗费)。系统同时接纳用户程序数目与系统功能和配置有关。由此,多道程序设计提高了系统效率,也带来了系统资源系统资源的竞争,因此要协调程序与资源的关系。的竞争,因此要协调程序与资源的关系。处理机、存储器和外部设备是计算机系统中重要的硬件资源,因而需要解决处理机资源管理、存储器分配和回收以及外部设备资源管理等问题。利用什么理论和机
5、制?利用什么理论和机制?3.1 多道程序设计多道程序设计 清华大学出版社清华大学出版社3.2 进程的概念进程的概念 在计算机和操作系统发展过程中,人们在不断的创新和总结经验,总结那些成功的大型系统软件的开发经验,同时也对导致失败的原因进行分析,从而提炼出了对编制各类系统软件的思想和理论,使操作系统软件不断地推陈出新。多道程序设计是操作系统最基本的思想多道程序设计是操作系统最基本的思想,然而系统如何协调各程序并发运行、资源共享,如何刻画可以运行的系统环境就需要一种指导思想、一种机制来实现。如图3.1中,A,D是根据什么原则和依据运行的,其中每个程序在系统中可知信息有哪些、是什么、怎样体现它们“走
6、走停停”的活动等,这就需要反映程序的一种动态性;在在程序的概念下是无法刻画系统中并发特性的程序的概念下是无法刻画系统中并发特性的。现代操作系统重要特征:并发、资源共享、现代操作系统重要特征:并发、资源共享、用户随机使用资源。这三个特点是互相联用户随机使用资源。这三个特点是互相联系和互相依赖的系和互相依赖的。采用一个什么样的概念来描述计算机程序的执行过程和作为资源分配的基本单位才能充分反映操作系统这些特点,这个概念就是进程这个概念就是进程。清华大学出版社清华大学出版社 3.2.1 前驱图和程序执行前驱图和程序执行 前驱图的定义前驱图的定义 前驱图(Procedence Graph)是一个有向无环
7、图DAG(Directed Acyclic Draph),是用来反映和研究系统内所发生事件之间的一种关系。(pi,pj)|pi 必须在pj 开始之前完成。如果(pi,pj),可写成pi pj,称pi是pj 的前驱,而pj是pi的直接后继。没有前驱的结点为初始结点,没有后继的结点为终止结点。3.2 进程的概念进程的概念 清华大学出版社清华大学出版社 3.2.1 前驱图和程序执行前驱图和程序执行 前驱图的定前驱图的定义义 图3.2 给出了7个结点的前驱图。在该图中,存在下面一些前驱关系:P1 P2,P1 P3,P4 P6,P6 P7,或表示为:P P1,P2,P3,P4,P5,P6,P7(P1,P
8、2),,P1,P3),(P5,P7),(P6,P7)1234756图3.2 具有7个结点的前驱图3.2 进程的概念进程的概念 清华大学出版社清华大学出版社 3.2.1 前驱图和程序执行前驱图和程序执行 程序的顺序执行程序的顺序执行 程序是指令(或语句)的程序是指令(或语句)的集合,指令之间是顺序关集合,指令之间是顺序关系系,是一个静态的概念是一个静态的概念。其执行过程可以描述为:Repeat:IR Mpc pc pc+1 执行 IR 中指令Until CPU halt这里IR为指令寄存器,pc为程序计数器,M为存储器。显然,程序的顺序程序的顺序性与计算机硬件的顺序性性与计算机硬件的顺序性是一致
9、的是一致的。我们把具有独立功能的程序独占处理机直至最终结束的过程称为程序的顺序执行程序的顺序执行。程序的顺序执行程序的顺序执行3.2 进程的概念进程的概念 清华大学出版社清华大学出版社假定用 I、C和 P分别表示输入、计算和输出操作(也可以为语句),可以有图 3.3 的前驱图。I1C1P1I2C2P2(a)两两个个程程序序的的前前驱驱图图(单道情况)(单道情况)图 3.3 程序的前驱图S1S3S2(b)三个语句表示的三个语句表示的前驱图前驱图a=10;b=a+8;Print(b);S1:S2:S3:3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序的顺序执行程序的
10、顺序执行 清华大学出版社清华大学出版社考虑时间上关系,可有下面示例,如图 3.4 所示。t输入:输入:计算:计算:输出:输出:I1C1P1I2C2P2I3C3P3 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10图图3.4 3.4 三个程序间顺序执行三个程序间顺序执行t程序1:I1C1P1程序2:程序3:I2C2P2I3C3P39个个t 结束结束3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序的顺序执行程序的顺序执行 清华大学出版社清华大学出版社程序顺序执行具有如下 3 个特点:n 顺序性;顺序性;顺序执行行过程可看作一系列严格按程序规定的状态
11、转移过程。n 封闭性;封闭性;程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响不受外界因素的影响。n 可再现性;可再现性;只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序的顺序执行程序的顺序执行 程序顺序执行的特性为程序员检测程序顺序执行的特性为程序员检测和校正程序错误带来很大的方便!和校正程序错误带来很大的方便!清华大学出版社清华大学出版社 多道程序系统中程序执行环境的变化多道程序系统中程序执行环境的变化 计算机能够同时处理多个具有独立功能的程序同时处理多个具有独立功能的程序。如
12、图3.1 所示。多道的执行环境具有如下 3 个特点:n 独立性;独立性;每道程序都是逻辑上独立的。n 随机性;随机性;多道程序环境下,特别是多用户环境下,程序和数据输入与执行开始时间都是随机的。n 资源共享;资源共享;资源共享将导致对程序执行速度的制资源共享将导致对程序执行速度的制约约。外设有限将导致这些设备被共享、内存有限将导致内存被共享等。对单CPU系统更如此。3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行清华大学出版社清华大学出版社对于图对于图 3.4,对于任意程序,存在着 IiCiPi 这样的前驱关系,因而对一个用户程序的输入、计算和打印这三个操作,必须顺序
13、执行,但在多道环境下多道环境下,并不存在,或并不要求并不要求PiIi+1 关系,即关系,即Ii、Cj 和和 Pk(ijk)之间并不存在前驱)之间并不存在前驱关系关系,因而在对一批程序处理时,可使它们并发执并发执行行。这就产生了并发操作,见图 3.5 所示。t输入:输入:计算:计算:输出:输出:I1C1P1I2C2P2I3C3P3 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10图图3.4 3.4 三个程序间顺序执行三个程序间顺序执行t3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行清华大学出版社清华大学出版社 输入:计算:输出:t0 t1 t2 t3
14、 t4 t5 t6tttI1图3.5 三个程序并发执行的前驱图I2I3C1C2C3P1P2P3时间:5个t并行并行并行并行并行并行结束结束下下一一步步下下一一步步下下一一步步前驱关系执行顺序3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行清华大学出版社清华大学出版社n 程序内保持 IiCiPi 程序逻辑顺序性。n 存在IiIi+1;CiCi+1;PiPi+1;表明系统资源竞系统资源竞争争带来顺序性前驱关系顺序性前驱关系。n 不同程序之间 Ii+2、Ci+1 和和Pi,没有前驱关系,说明可以并发执行并发执行,这是系统的并系统的并发性发性,提高(9-5)/9x100%=4
15、4%。I1I2I3C1C2C3P1P2P33.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 多道程序系统中程序执行环境的变化多道程序系统中程序执行环境的变化 清华大学出版社清华大学出版社应当说明,抛开典型的I、C、P关系,一个程序内部语句之间在并发环境下依然有并发执行的情况,如4条语句构成的程序段:程序内部各程序段间是否程序内部各程序段间是否具备并发执行是由它们之间依具备并发执行是由它们之间依赖关系所决定赖关系所决定。关于程序并行性挖掘属于并行研究课题。S0S2S1图3.6 四条语句的前驱图 S0:x=a+10;S1:y=b-a;S2:z=x+y-10;S3:prin
16、t(z);(b)(a)S3结束结束3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行清华大学出版社清华大学出版社 程序的并发执行程序的并发执行 并发性是增强计算机系统的处理能力和提高资源利并发性是增强计算机系统的处理能力和提高资源利用率所采取的一种技术用率所采取的一种技术。程序的并发执行通过前面的分析可分为两种:n 多道程序系统的程序执行环境变化所引起的多道多道程序系统的程序执行环境变化所引起的多道程序的并发执行程序的并发执行。多道程序并发执行在宏观上是同宏观上是同时时进行的,但在微观上仍是顺序微观上仍是顺序执行的。n 并发执行是在某道程序的几个程序段中,包含着一部分可
17、以同时执行或顺序颠倒执行的代码。3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行清华大学出版社清华大学出版社 在时间上来表示,并发执行是一个程序的开始是在另并发执行是一个程序的开始是在另一个程序结束之前一个程序结束之前。如图3.7 表示:ABCt t0 t1 t2 t3 t4 t5图3.7 三个程序(段)在执行时间上的重叠ABAC3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序的并发执行程序的并发执行 清华大学出版社清华大学出版社程序并发执行产生与顺序执行有所不同的新特征与顺序执行有所不同的新特征:n 间断性间断性;程序在并发执行时,由
18、于它们共享资源或为完成某一项任务而合作,致使在并发程序之间并发程序之间存在相互制约的关系。存在相互制约的关系。如图 3.5 中,I、C、P是三个相互合作的程序,当计算程序完成Ci-1 的计算后,如果输入程序 I 尚未完成对Ii 的处理,则计算程序无法进行Ci处理,致使计算程序暂停运行。这时程序的顺序性演变成间断性。对于程序的间断性,更一般的情形参见图1.6 所示 I1I2I3C1C2C3P1P2P33.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序的并发执行程序的并发执行 清华大学出版社清华大学出版社n 失去封闭性;失去封闭性;程序在并发执行时,是多个程序共共享系
19、统中的各种资源享系统中的各种资源,因而这些资源的状态将由多资源的状态将由多个程序来改变个程序来改变,致使程序的运行失去了封闭性致使程序的运行失去了封闭性。当处理机资源被其它程序占用时,有条件运行的任何程序都必须等待。n 不可再现性;不可再现性;程序在并发执行时,由于失去了封由于失去了封闭性,也导致失去了可再现性闭性,也导致失去了可再现性。考察两个例子来说明这个问题:3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序的并发执行程序的并发执行 清华大学出版社清华大学出版社例例1:两个程序A和B共享一个变量 N(当前值为 n)。程序程序A:N=N+1;程序程序B:pri
20、nt(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,1,0,最终最终N的结果为的结果为 0 该情形说明程序在并发执行时,由于失去了封闭性,其计算结果已与计算结果已与并发程序的并发程序的执执行速度行速度有关,有关,使程序也失去失去可再现性可再现性。下下一一步步3.2 进程的概念进程
21、的概念 程序的并发执行程序的并发执行 清华大学出版社清华大学出版社例例2:假定一个航班售票系统运行在一个多终端分时系统上共享主机系统数据(库)资源,并在一个城市有两个终端售票机B1,B2,任意航班的座位按顺序预定,简单座位形式如图3.8所示;其中黑色部分表示已售,空白部分为未售。设定有n排,每排m个座位(n,m1),又假定座位按顺序预定。两个终端售票机B1、B2有下面虚线框的公共数据(库)与相同的预定程序;3.2 进程的概念进程的概念 清华大学出版社清华大学出版社varrow,col:integer;ticketnm:integer;procedure booking 1:begin 2:if
22、 row=n 3:begin 4:ticketrowcol:=1;赋值1表示已售 5:write(“座位:”row“排”,col“号”);6:col=col mod m+1;7:if col=1;8:row=row+1;9:end 10:else 11:write(“座位已售完!”);12:end共共 享享 数数据据1 2 3 4 m1234in图3.8 航班座位示意图:begin:if row=n:begin:ticketrowcol:=1;:write(“座座位位:”row“排排”,col“号号”);:begin:if row=n:begin:ticketrowcol:=1;:write(
23、“座座位位:”row“排排”,col“号号”);B1:B2:12345中断中断12345当前位置当前位置row=3;col=4 row=3;col=4 row=3;col=4 结束结束清华大学出版社清华大学出版社 前面例子说明了如下问题:在某些情况下,程序的并发执行使得执行结果不再具有封闭性和可再现性,且可能造成出现错误(执行结果受执行速度执行结果受执行速度影响的结果影响的结果)。为了使在并发执行时不出现错误结果,必须采采取某些措施来制约、控制各并发程序段执行速度取某些措施来制约、控制各并发程序段执行速度。这样就有了下面的问题:3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和
24、程序执行 程序的并发执行程序的并发执行 清华大学出版社清华大学出版社 程序并发执行的条件程序并发执行的条件 为保持可再现性,就需要考察程序并发执行条件为保持可再现性,就需要考察程序并发执行条件。可以将并发执行过程描述为:S0Cobegin P1;P2;.Pn;Coend SnS0,Sn分别表示并发程序段P1,P2,Pn开始执行前和并发执行结束后的语句。3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行清华大学出版社清华大学出版社 1966年Bernstein 提出了相邻语句S1,S2可以并发执行的条件:语句Si划分为两个变量集合R(Si)和W(Si);分别为 Si 的读
25、集和写集。其中,R(Si)=a1,a2,am是语句Si在执行期间对其进行参考的变量;aj(j=1,m)。W(Si)=b1,b2,bn是语句Si在执行期间对其进行访问的变量;bj(j=1,n)。3.2 进程的概念进程的概念 3.2.1 前驱图和程序执行前驱图和程序执行 程序并发执行的条件程序并发执行的条件 清华大学出版社清华大学出版社如果对于语句 S1 和 S2,有 R(S1)W(S2)=,即S1读变量不是S2 修改的变量。W(S1)R(S2)=,即S2读变量不是S1 修改的变量。W(S1)W(S2)=,即双方都不修改相同的变量。如有语句 cab 和w c1,其“读集”和“写集”分别为:R(ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 原理
限制150内