管理程序阶段多道程序设计与操作系统的形成
管理程序阶段多道程序设计与操作系统的形成
早期批处理系统借助于作业控制语言变革了计算机的手工操作方式。用户不再通
6
内存
过开关和按钮来控制计算机执行,而是通过脱机方式使用计算机,通过作业控制卡来
描述对作业的加工控制步骤,并把作业控制卡连同程序、数据一起提交给计算机的操
作员,操作员收集到一批作业后一起把它们放到卡片机上输入计算机。计算机上则运
行一个驻留在内存中的执行程序,以对作业进行自动控制和成批处理,自动进行作业
转换以减少系统空闲和手工操作时间,其工作流程如下:执行程序将一批作业从纸带
或卡片机输入到磁带上,每当一批作业输入完成后,执行程序自动把磁带上的第一个
作业装入内存,并把控制权交给作业。当该作业执行完成后,执行程序收回控制权并
再调入磁带上的第二个作业到内存执行。计算机在执行程序的控制下就这样连续地一
个作业一个作业执行,直至磁带上的作业全部做完。这种系统能实现作业到作业的自
动转换,缩短作业的准备和建立时间,减少人工操作和干预,让计算机尽可能地连续
运转。
早期批处理系统中,一开始作业的输入和输出均是联机的,联机 I/O的缺点是速
度慢,I/O设备和 CPU仍然串行工作,CPU时间浪费相当大,为此,在批处理中引进
脱机 I/O技术。除主机外,另设一台辅机,该机仅与 I/O设备打交道,不与主机连接。
输入设备上的作业通过辅机输到磁带上,这叫脱机输入;主机负责从磁带上把作业读
入内存执行,作业完成后,主机负责把结果输出到磁带上,这叫脱机输出;然后,由
辅机把磁带上的结果信息在打印机上打印输出。这样一来, I/O工作脱离了主机,辅机
和主机可以并行工作,大大加快了程序的处理和数据的输入及输出,这称作脱机 I/O
技术,这比早期联机处理系统提高了处理能力。
中 断 处 理
设 备 驱 动
作 业 定 序
命令和 JCL语言解释器
用
户
程
序
区
图 1-2管理程序的内存组织
为了发挥批处理系统的性能,缩短作业的准备和建立时间,驻留在内存工作的执
行程序的功能得到了很大的扩充,进化到管理程序(resident monitor)。FMS(FORTRAN
Monitor System)和 IBSYS(IBM 7094 Monitor System)是这类系统的典型实例。管理
程序的内存组织如图 1-2所示,它的主要功能小结如下:
..自动控制和处理作业流:管理程序把控制传送给一个作业,当作业运行结束
时,它又收回控制权,继续调度下一个作业执行,自动控制和处理作业流,
减少了作业的准备和建立时间。作业流的自动控制和处理依靠作业控制语言
(Job Control Language),因而,促进了作业控制语言的发展。作业控制语
言是由一些描述作业控制过程的语句组成的,每个语句附有一行作业或作业
步信息编码,并以穿孔卡的形式提供。例如,$JOB卡表示启动一个新作业;
$FTN卡表示调用 FORTRAN编译系统;$ASM卡表示调用汇编程序;$ LOAD
卡表示调用装配程序;$ DATA卡指定数据;$RUN卡执行用户程序;$ END卡
表示一个作业结束。管理程序通过输入、解释并执行嵌入用户作业的作业控
制卡规定的功能,就能自动地处理用户作业流。每个作业完成后,管理程序
7
编程知识
又自动地从输入机上读取下一个作业运行,直到整批作业处理结束。
..提供一套操作命令:操作员通过打字机打入命令,管理程序识别并执行命令,
这样不仅速度快,操作员还可进行一些复杂的控制。输出信息也可由打字机
输出,代替了早期氖灯显示,易于理解。这种交互方式不仅提高了效率,也
便于使用。
..提供设备驱动和 I/O控制功能:系统提供标准 I/O程序,用户通过管理程序获
得和使用 I/O设备,减轻了用户驱动物理设备的负担。管理程序还能处理某些
设备特殊和设备故障,改进了设备的可靠性和可用性。
..提供库程序和程序装配功能:库程序包括:汇编程序、FORTRAN语言编译
程序、标准 I/O程序、标准子程序等。通常,用户程序必须调用库程序才能执
行下去,装配工作由管理程序完成。所有程序都按相对地址编址,管理程序
把相应库程序和用户程序进行装配,并转换成绝对地址形式的目标程序,以
便执行。
..提供简单的文件管理功能:用户通过输入设备输入程序和数据,为了反复使
用,用户希望能把这些信息保存起来,以便随时使用,这就产生了文件系统。
从此,用户可按文件名字,而不是信息的物理地址进行存取,方便灵活,安
全可靠。
1.2.3 多道程序设计与操作系统的形成
1、多道程序设计
在早期的单道批处理系统中,内存中仅有单个作业在运行,致使系统中仍有许多
资源空闲,设备利用率低,系统性能较差。如图 1-3所示,当 CPU工作时,外部设备
不能工作;而外部设备工作时,CPU必须等待。
78 130 150 228 280 300 378 430 450
时 间
输入机
处理器
磁带机
图 1-3单道算题运行时处理器的使用效
20世纪 60年代初,有两项技术取得了突破:中断和通道,这两种技术结合起来为
实现 CPU和 I/O设备并行工作提供了基础,此时,多道程序的概念才变成了现实。
多道程序设计( multiprogramming)是指允许多个程序 (作业)同时进入一个计算
机系统的内存储器并启动进行交替计算的方法。也就是说,计算机内存中同时存放了
多道(二个以上相互独立的)程序,它们均处于开始和结束点之间。从宏观上看是并行的,
多道程序都处于运行过程中,但都未运行结束;从微观上看是串行的,各道程序轮流
占用 CPU,交替地执行。引入多道程序设计技术的根本目的是提高 CPU的利用率,充
分发挥计算机系统部件的并行性,现代计算机系统都采用了多道程序设计技术。
下面来分析多道程序设计技术提高资源利用率和系统吞吐率的原理。从第二代计
算机开始,计算机系统具有处理器和外围设备并行工作的能力,这使得计算机的效率
有所提高。但是,仅仅这样做,计算机的效率仍不会很高。例如,计算某个数据处理
问题,要求从输入机(速度为 6400字符/秒)输入 500个字符,经处理(费时 52毫
秒)后,将结果(假定为 2000个字符)存到磁带上(磁带机速度为 10万字符/秒),
然后,再读 500个字符处理,直至所有的输入数据全部处理完毕。如果处理器不具有
和外围设备并行工作的能力,那么,上述计算过程如图 1-3所示,不难看出在这个计
8
算过程中,处理器的利用率为:
52/(78十 52十20)≈ 35%
分析上面的例子,可以看出效率不高的原因,当输入机输入 500个字符后,处理
器只花了 52毫秒就处理完了,而这时第二批输入数据还要再等 98毫秒时间才能输入
完毕,在此期间 CPU一直空闲着。
这个例子说明单道程序工作时,计算机系统的各部件的利用率没有得到充分发挥。
为了提高效率,考虑让计算机同时接受两道算题,当第一道程序在等待外围设备的时
候,让第二道程序运行,以降低 CPU空闲等待时间,那么,处理器的利用率显然可以
有所提高。例如,计算机在接受上述算题时还接受了另一道算题:从另一台磁带机上
输入 2000个字符,经 42毫秒的处理后,从行式打印机(速度为 1350行/分)上输出
两行。
78 130 150 228 280 300 378 430 450
时 间
输入机
处理器
磁带机
磁带机
打印机
P1 P1P2P2
图 1-4两道算题运行时处理器的使用效率
当这两道算题同时进入内存计算时,计算过程如图 1-4所示。其中,P1表示程序
甲占用 CPU对输入机输入的 500个字符进行处理,由于 52毫秒处理便结束,下次处
理要等待 98毫秒之后,故这个时间段内 CPU是空闲的。系统调度程序乙工作,它从
磁带机上输入 2000个字符后,P2表示对这批数据进行处理。相应的 I/O设备和 CPU
的操作都是并行的。不难算出,此时处理器的利用率为:
(52+42)/150 ≈ 63%
由此可以看出,让几道程序同时进入内存计算比一道道串行地进行计算时的 CPU
效率要高。因为,当某道程序因故不能继续运行下去时,管理程序便把 CPU分给另外
一道程序执行,这样可使 CPU和 I/O设备尽量都处于忙碌状态,这就是要采用多道程
序设计方法的主要原因。具有处理器和外围设备并行工作能力的计算机采用多道程序
设计技术后,可以提高处理器和 I/O设备的并行性,从而,也就能提高整个系统的效
率,即增加单位时间内算题的数量。例如,有甲、乙两道程序,如果让一道程序独占
计算机单道运行时每道程序要花去一个小时,若此时处理器的利用率为 30%,粗略地
说,甲(或乙)程序执行时所需要的处理器时间为:
1小时×30%=18分钟
假定甲、乙两道程序按多道程序设计方法同时运行,处理器的利用率达 50%,那
么,要提供 36分钟的处理器时间,大约要运行 72分钟。所以,粗略地估计,采用多
道程序设计技术时只要大约 72分钟就可以将两道程序计算完毕。然而,由于操作系统
调度要花费处理器时间,所以,实际花费的时间可能还要长些,例如,共要花 80分钟。
而单道运行时,甲、乙依次执行完需 120分钟。因而;采用多道程序设计方法后可以
提高效率:
(120—80)/120≈33%
但是从甲、乙两道程序来看,如果单道运行,它花 60分钟就可以得到结果,而多
道运行时,却要花 80分钟才有结果,延长了 20分钟,即延长了 33%的时间。所以,
9
采用多道程序设计方法后,提高了系统效率,即增长了单位时间的算题量,但是,对
于每一道程序来说,却延长了计算时间。所以,多道程序设计技术提高资源利用率和
系统吞吐率是以牺牲用户的作业周转时间为代价的。对于一些实时响应的计算问题,
延长
10%的计算时间可能都是难以接受的。因此,这个问题在多道程序设计中必须引
起注意。
在多道程序设计中,还有一个值得注意的问题是道数的多少。从表面上看,似乎
道数越多越能提高效率,但是道数的多少绝不是任意的,它往往由系统的资源以及用
户的要求而定。例如,如果上述甲、乙两道程序都要用行式打印机,而系统只有一台
行式打印机,就算它们被同时接受进入计算机内存运行,未必能提高效率。因为,可
能程序甲计算了一段时间后要等程序乙不再使用行式打印机时,即程序乙结束后,才
能继续运行。此外,内存储器的容量和用户的响应时间等因素也影响多道程序道数的
多寡。可以采用概率方法来算出
CPU的利用率,假如一道程序等待
I/O操作的时间占
其运行时间的比例为
p,当内存中有
n道程序时,则所有
n道程序都等待
I/O的概率是
pn,亦即这时
CPU是空闲的。那么,
CPU的利用率=1-pn
其中,n称多道程序的道数或度数(degree of multiprogramming),可见
CPU的利用
率是
n的函数。如果进程平均花费
80%的时间等待
I/O操作,为了使
CPU时间的浪费
低于
10%,至少要有
10道程序在内存中多道运行。事实上,一个用户程序等待从终端
输入信息或等待磁盘
I/O,等待时间超过
80%也是常有的事。上述
CPU利用率计算模
型很粗略,但却是有效的。假设计算机有
1MB内存,操作系统占用
200KB,其余空间
允许
4道用户程序共享,每个占用
200KB。若它们
80%时间用于
I/O等待,则
CPU的
利用率(忽略操作系统开销时)=1-(0.8)4=59%。当增加
1MB内存后,多道程序可从
4道
增加到
9道,因而,CPU的利用率=1-(0.8)9=87%,也就是说第二个
1MB内存提高了
47%的系统吞吐量。增加第三个
1MB内存只将
CPU的利用率从
87%提高到
96%,吞
吐量仅提高了
10%。
下面小结一下操作系统中引入多道程序设计的好处:一是提高了
CPU的利用率,
二是提高了内存和
I/O设备的利用率,三是改进了系统的吞吐率,四是充分发挥了系
统的并行性。其主要缺点是延长了作业周转时间。
注意,多道程序设计系统与多重处理系统(
multiprocessing system)有差别,后
者是指配置了多个物理
CPU,从而,能真正同时执行多道程序的计算机系统。当然要
有效地使用多重处理系统,必须采用多道程序设计技术;反过来,多道程序设计不一
定要求有多重处理系统支持。多重处理系统的硬件结构可以多种多样,如共享内存的
多
CPU结构、网络连接的独立计算机结构。虽然多重处理系统增加了硬件,但却换来
了提高系统吞吐量、可靠性、计算能力和并行处理能力的好处。
实现多道程序设计必须妥善地解决三个问题:存储保护与程序浮动;处理器的管
理和分配;系统资源的管理和调度。
在多道程序设计的环境中,内存储器为几道程序所共享,因此,硬件必须提供必
要的手段,使得在内存储器中的各道程序只能访问它自己的区域,以避免相互干扰。
特别是当一道程序发生错误时,不致影响其他的程序,更不能影响系统程序,这就是
存储保护。同时,由于每道程序不是独占全机,这样,不能事先规定它运行时将放在
哪个区域,所以,程序员在编制程序时无法知道程序在内存储器中的确切地址。甚至,
在运行过程中,一个程序也可能改变其运行区域,所有这些,都要求一个程序或程序
某一部分能随机地从某个内存储器区域移动到另一个区域,而不影响其执行,这就是
程序浮动,或称地址重定位。此外,多道程序共存于内存,会引起内存容量不足,因
此,内存扩充也成为操作系统必须要解决好的问题。
在多道程序设计系统里,如果系统仅配置一个物理处理器,那么,多个程序必须
轮流占有处理器,这涉及到处理器调度问题。为了说明一个程序是否占有或可以占有
处理器,可以把程序在执行中的状态分成三种。当一个程序正占有处理器运行时,就
10
说它是处于运行状态(运行态);当一个程序在等待某个事件发生时,就说它处于等
待状态(等待态);当一个程序等待的条件已满足可以运行而未占用处理器时,则说
它处于就绪状态(就绪态),所以,一道程序在执行中总是处于运行、就绪、等待三
种状态之一。一道程序在执行过程中,它的程序状态是变化的,从运行态到等待态的
转换是在发生了某种事件时产生的。这些事件可能是由于启动外围设备输入输出而使
程序要等待输入输出结束后才能继续下去;也可能是在运行中发生了某种故障使程序
不能继续运行下去等等。从等待态转换成就绪态是在等待的某个事件完成时产生的。
例如,程序甲处于等待外围设备传输完毕的等待状态,当传输结束时,程序甲就从等
待态转为就绪态。从运行态也能转变为就绪态。例如,当程序乙运行时发生了设备传
输结束事件,而当设备传输结束后,使得程序甲从等待态转变为就绪态;假定程序甲
的优先级高于程序乙,因此,让程序甲占有处理器运行,这样,程序乙就从运行态转
为就绪态。
在多道程序设计系统里,系统的资源为几道程序所共享,上面谈到的处理器就是
一例。此外,如内存储器、外围设备以及一些信息资源等也需要按一定策略去分配和
调度,要解决好多道程序共享系统硬软件资源的竞争与协调。有关调度算法与实现及
解决程序之间资源竞争与协调的机制将在以后各章叙述。
2、操作系统的形成
第三代计算机的性能有了更大提高,机器速度更快,内外存容量增大,
I/O设备数
量和种类增多,为软件的发展提供了有力支持。如何更好地发挥硬件功效,如何更好
地满足各种应用的需要,这些都迫切要求扩充管理程序的功能。
中断技术和通道技术的出现使得硬部件具有了较强的并行工作能力,从理论上来
说,实现多道程序系统已无问题。但是,从半自动的管理程序方式过渡到能够自动控
制程序执行的操作系统方式,对辅助存储器性能的要求增高。这个阶段虽然有个别的
磁带操作系统出现,但操作系统的真正形成还期待着大容量高速辅助存储器的出现。
大约到六十年代中期以后,随着磁盘的问世,相继出现了多道批处理操作系统和分时
操作系统、实时操作系统,到这个时候标志着操作系统正式形成。
计算机配置操作系统后,其资源管理水平和操作自动化程度有了进一步提高,具
体表现在:
..操作系统实现了计算机操作过程的自动化。批处理方式更为完善和方便,作
业控制语言有了进一步发展,为优化调度和管理控制提供了新手段。
..资源管理水平有了提高,实现了外围设备的联机同时操作(即
SPOOLING),
进一步提高了计算机资源的利用率。
..提供虚存管理功能,由于多个用户作业同时在内存中运行,在硬件设施的支
持下,操作系统为多个用户作业提供了存储分配、共享、保护和扩充的功能,
导致操作系统步入实用化。
..支持分时操作,多个用户通过终端可以同时联机地与一个计算机系统交互。
..文件管理功能有改进,数据库系统开始出现。
..多道程序设计趋于完善,采用复杂的调度算法,充分利用各类资源,最大限
度地提高计算机系统效率。
参与评论
- 相关内容
- 最近更新
- ·操作系统的主要特性
- ·计算机系统的层次结构-操作系统的..
- ·杀RootKit.win32.mie.a,RootKit...
- ·解决内存不能为read的知识
- ·电脑蓝屏怎么办看蓝屏代码找出电..
- ·系统发生崩溃或不正常关机
- ·Scandisk.ini
- ·参数必须在命令行方式下运行
- ·Windows Me 的PCHealth还原功能去..
- ·编辑系统配置文件全新安装的方法..
添加到百度搜藏