目录
学习建议:
基本内容:
一、作业的概念:
二、作业控制方式:
(一)批处理方式:
(二)交互方式:
三、批处理作业:
四、批处理作业的调度:
(一)作业调度:
(二)作业调度算法:
(三)作业调度与进程调度:
五、批处理作业的控制:
六、交互式作业和命令文件:
1.交互式作业的概念:
2.命令文件:
七、交互式作业的控制:
(一)操作使用接口:
(二)命令的解释执行:
八、终端作业的管理:
九、作业的调度:
1.作业进入系统:
2 作业调度的功能:
3 后备作业队列和作业控制块:
4.作业调度算法:
重点难点:
1.作业管理的功能:
2.响应比最高者优先算法:
3.终端命令处理:
概念辨析:
1.作业,作业步,作业流:
2.作业控制方式:
3.作业调度:
本章小结:
同步练习:
通过本章的学习理解计算机系统中把用户要求处理的一项工作称为一个作业,作业可分为批处理作业和交互式作业两大类;掌握操作系统是如何实现作业调度和控制作业执行的;理解作业调度与进程调度之间的关系以及各自的职责。掌握本章的重点:两种控制方式;批处理作业的调度算法。学习中应该通过相互的比较记忆和理解。学习调度算法时,可以与以前学过的进程调度算法进行比较,掌握两者的原理和算法实质。比较理解两种作业控制的不同之处,掌握各自作业控制的特点。
在操作系统中,把用户要求计算机系统处理的-个计算任务或事务处理称为一个"作业"。
任何一个作业都要经过若干加工步骤才能得到结果,我们把作业的每一个加工步骤称为一个"作业步"。
操作系统为用户提供了说明作业加工步骤的手段。有两种手段:作业控制语言和操作控制命令,可以让用户用来说明他的作业需进行加工的步骤作控制方式也有两种:批处理方式和交互方式。
用户使用操作系统提供的"作业控制语言"对作业执行的控制意图写好一份"作业控制说明书",连同该作业的源程序和初始数据一同提交给计算机系统,操作系统将按照用户说明的控制意图来控制作业的执行。
于是,作业执行过程中用户不必在计算机上进行干预,一切由操作系统按作业控制说明书的要求自动地控制作业的执行。
因此,有的系统经常把这种控制方式称为"自动控制方式"。由于对作业的控制意图是事先说明的,不必联机输入,故也有系统把它称为"脱机控制方式"。
采用这种控制方式的作业完全由操作系统自动控制,因此适合成批处理,在成批处理时操作系统按各作业的作业控制说明书中的要求分别控制相应的作业按指定的步骤去执行。所以,我们把这种控制方式称为"批处理方式",把采用批处理控制方式的作业称为"批处理作业"。
用户使用操作系统提供的"操作控制命令"来表达对作业执行的控制意图。用户逐条输入命令,操作系统每接到一条命令,就根据命令的要求控制作业的执行,一条命令所要求的工作做完后,操作系统把命令执行情况通知用户且让用户再输入下一条命令,以控制作业继续执行,直至作业执行结束。由于在作业执行过程中操作系统与用户之间不断地交互信息,故我们把这种控制方式称为"交互方式"。
采用交互方式时用户必须在计算机上直接操作,因此有的系统把交互方式称为"联机控制方式"。交互方式也适合终端用户使用,终端用户通过终端设备把操作控制命令传送给操作系统,操作系统把命令执行情况也通过终端设备通知用户,最终从终端上输出结果。我们把采用交互控制方式的作业称为"交互式作业",对于来自终端的作业也称为"终端作业"。
采用批处理控制方式的计算机系统一般均提供SPOOL操作技术,于是,操作员只要用"预输入命令"启动SPOOL系统中的"预输入程序"工作就可把作业流中的作业信息存放到"输入井"中。
预输入程序根据作业控制说明书中的作业标识语句(例如,JOB语句)可以区分各个作业,把作业登记入作业表,把作业中的各个文件存到"输入井"且登记到预输入表中(具体实现已在第六章第五节中阐述)。这样,就完成了作业的输入工作,被输入的作业出于"收容状态"在"输入井"中等待处理。
计算机系统可成批地接受采用批处理控制方式组织的作业,但批处理作业在进入计算机系统之前,用户除了要准备好源程序和初始数据外,还必须用作业控制语言来书写作业控制说明书,规定如何控制作业的执行。
由于主存储器容量等因素的限制,在"输入井"中等待处理的作业经常不能全部同时被装入主存储器,应怎样从中选择一部分作业让它们先执行呢?
操作系统根据允许并行工作的道数和一定的算法从"输入并"中选取若干作业把它们装入主存储器,使它们有机会去获得处理器运行,这项工作被称为"作业调度"。实现从"输入井"选取作业的程序称为"作业调度程序"。
对于每一个用户来说,总是希望自己的作业尽快地被选中执行,但对计算机系统来说既要考虑用户的要求又要有利于提高系统的效率。所以,设计作业调度程序时可考虑如下原则:
1.公平性
对每个用户公平对待且使用户满意,不能无故地或无限制地拖延一个作业的执行。
2.均衡使用资源
使同时装入主存储器的作业在执行时尽可能地使用系统中的各种不同资源中的资源都同时处于忙碌状态,从而极大提高资源的使用率。
3.极大的流量
缩短作业的周转时间,在单位时间内尽可能地为更多的作业服务,提高计算机系统的吞吐能力。
这些原则经常不能兼顾,所以,在设计计算机系统时应根据系统的设计目标来决定调度原则。尽管不同的计算机系统可以采用不同的调度原则和调度算法,但都必需遵循一个必要条件,即系统现有的尚未分配的资源可以满足被选作业的资源要求。
只有这样才能避免作业因得不到资源而无法继续执行的现象,才能缩短作业的周转时间,才能保证系统有较高的吞吐能力。
假定作业Pi进入"输入井"的时间为Si,若它被选中执行,得到计算结果的时间为Ei,那么,它的周转时间就定义为了Ti=Ei-Si。
对于每个用户来说总希望自己的作业尽快完成,故希望周转时间Ti尽可能地小,最理想的情况是进入"输入井"后立即被选中执行,这样升就几乎是作业的计算时间。
但是,在批处理控制方式下实现多道并行工作时,不可能让每个用户都得到理想的效果。从系统的角度,则希望进入"输入井"的作业的平均周转时间为:
尽可能地小。周转时间和平均周转时间的大小与选用的调度算法有关,在此介绍一些常用的作业调度算法。
先来先服务算法 | 先来先服务算法是最简单的调度算法,它是按照作业进入"输入井"的先后次序来挑选作业,先进入的作业优先被挑选。 |
计算时间短的作业优先算法 | 采用这种算法时,要求用户对自己的作业需要计算的时间预先作出一个估计,在作业控制说明书中加以说明。作业调度时依据在输入井中的作业提出的计算时间为标准,优先选择计算时间短且资源能得到满足的作业。 |
1.先来先服务算法:
但要注意,不是先进入的一定被先选中,这要根据资源的分配情况来决定。一个先进入的作业,若它所需的资源或其中的一部分资源已被在它之前的作业占用且尚未归还,那么,这个作业将被推迟,而去选择在它之后作业进入,使资源能得到满足的作业先执行。
如果有作业执行结束归还资源后,作业调度又要选择作业时,仍按进入"输入井"的次序去挑选,刚刚被推迟的作业有可能被优先选中。
例如,有一个多道程序设计系统,采用不允许移动的可变分区方式管理主存中的用户空间,设用户空间为100K,主存空间的分配算法为最先适应分配算法,作业调度和进程调度均采用先来先服务算法,今有如下作业序列。
假定所有作业都是计算型作业且忽略系统调度时间,显然,作业A和B首先依次被选中装入主存储器。当作业c到达输入井后,由于不能满足它对主存量的需求而只能在输入井中等待。但对随后到达输入井的作业D和E,只有作业D的主存需求可以得到满足,于是将其选中装入主存。
这时主存中同时有三个作业A,B和D总共占用85K主存,剩下一个15K的空闲区。当作业A执行结束后,归还了所占主存空间,由于不允许移动,因而两个分散的各为15K的主存空闲区仍不能装入作业C和E。
直到作业B执行结束归还60K的空间,与作业A归还的空间合并成一个75K的空闲空间,才可用来依次装入作业C和E。我们把各作业被选中装入主存的时间、占用处理器开始执行的时间、执行结束的时间和周转时间列表如下图所示。
在这里,把时间以"时"为单位表示(0.1小时为6分钟)。现在5个作业的平均周转时间为
(42+60+66+96+96)×1/5=72(分钟)
先来先服务算法具有一定的公平性,容易实现。但当计算时间长的作业先进入"输入井"而被选中执行时,就可能使计算时间短的作业长时间的等待。不仅使这些用户不满意,而且使计算时间短的作业周转时间变长,从而平均周转时间也变长,降低了系统的吞吐能力。
2.计算时间短的作业优先算法:
我们仍对先来先服务算法中的例子进行分析,在其他假设条件不变的情况下,仅把作业调度算法改成计算时间短的作业优先算法。
由于作业是依次进入"输入井"的,当作业A进入时"输入井"中没有其他作业且资源能满足需求,因而可立即被选中装入主存储器且占用处理器。
同样,作业B进入时也被立即装入主存储器。但随后进入的作业C的资源要求暂不能满足,只能在"输入井"中等待。
当作业D到达时又可被选中,与采用先来先服务算法一样,依次把作业A,B,D装入了主存储器,进程调度按装入的次序让它们依次占用处理器。在作业A执行期间,作业E到达"输入井"。于是,作业A执行结束时"输入井"中有两个作业C和E。
但是,它们的资源要求都不能被满足,必须在"输入井"中继续等待。当作业月执行结束后,两个作业的资源要求又都能被满足,按照计算时间短的作业优先算法,将以先E后C的次序把它们装入主存储器。
它们的平均周转时间为
(42+60+66+72+108)×1/5=69.6(分钟)
与先来先服务算法比较,缩短了平均周转时间,也就提高了系统的吞吐能力。
实际上,我们可以证明采用计算时间短的作业优先算法,能使平均周转时间最小。假定有n个作业同时到达"输入井",如果按计算时间短的作业优先算法确定了这n个作业被选中的次序为J1,J2,…,Jn,而它们需计算的时间分别为了T1, T2,…,Tn,则显然有
T1≤T2≤…≤Tn
于是,在忽略调度时间的情况下,各作业的周转时间Ti(i=1,2,…,n)如下图所示。
由于T1≤T2≤…≤Tn,故每个T'i(i=1,2,…,n)都是最小值,它们之和当然也是最小值,因而平均周转时间也是最小的。
采用这种算法应注意两个问题。
(1)由于这种算法是以用户估计的计算时间为标准,有些用户为了使自己的作业能优先执行,可能故意把计算时间估计的低一些。为了避免这一现象,若作业执行超过所估计的时间,则可加价收费。
(2)由于系统可以不断地接受新作业进入"输入井",如果新进入"输入井"的作业估计的计算时间比较短,则将会使进入"输入井"较早但要求计算时间长的作业可能等待太长的时间,使这些用户不满意。
计算时间短的作业等待时间过长。而计算时间短的作业优先算法恰好与之相反,它只考虑了用户估计的计算时间,可能使计算时间长的作业等待太久。
响应比最高者优先算法综合考虑作业的等待时间和计算时间,把响应比定义为
响应比=等待时间/计算时间
显然,计算时间短的作业容易得到较高的响应比,可能被优先选中。
但是,一个计算时间长的作业在等待了相当长的时间后,也将获得较高的响应比。于是,不会因为源源不断地有计算时间短的作业进入"输入井"而无限期的推迟计算时间长的作业执行。
采用响应比最高者优先算法进行调度时,必须对"输入井"中的所有作业计算出它们的响应比,从资源能得到满足的作业中选择响应比高的作业优先装入主存储器。
3.优先数调度算法:
为每个作业确定一个优先数,资源能满足且优先数高的作业优先被选取,当几个作业有相同优先数时,对这些具有相同优先数的作业再按照先来先服务原则进行调度。
怎样确定作业的优先数?确定优先数的方法可以是多种多样的。
一种方法是由用户来提出自己作业的优先数,这种方法,可能有的用户为了自己的作业尽快被选中执行而盲目提高作业的优先数。
另一种方法是由操作系统根据作业的缓急程度、作业估计的计算时间、作业的类型、资源申请情况等因素综合考虑。
4.均衡调度算法:
根据作业对资源的要求进行分类,作业调度从各类作业中去挑选,尽可能地使得使用不同资源的作业同时执行。
这样不仅可以使系统的各种资源都在被使用,而且可以减少作业等待使用相同资源的时间,从而加快作业的执行。
有的系统还对每一类中的各作业确定优先数,作业调度时在每类作业中再按优先数高者优先的原则选择作业。这样,既使各类作业都得到照顾,又兼顾了同类作业中的各个作业的轻重缓急。
用途 |
用法 |
|
作业调度 |
按一定的算法从"输入井"中选择资源能得到满足的作业装入主存储器,使作业有机会去占用处理器执行 | 选中了一个作业且把它装入主存储器时,就应为该作业创建一个进程。若有多个作业被装入主存储器,则同时存在多个进程,这些进程的初始状态为就绪状态。 |
进程调度 |
一个作业能否占用处理器?什么时间能够占用处理器? | 选择当前可占用处理器的进程,进程运行中由于某种原因状态发生变化,当它让出处理器时,进程调度就再选另一个作业的进程去运行。 |
可见,只有作业调度与进程调度相互配合才能实现多道作业的并行执行。
作业调度与进程调度之间的关系和各自的职责如图7-2-1所示。
一个批处理控制方式的作业被作业调度选中后,操作系统按照用户组织作业时在作业控制说明书中所规定的控制要求去控制作业的执行。
一个作业往往要分几个作业步执行,一般说,总是按作业步的顺序控制作业的执行,一个作业步执行结束后,就顺序取下一个作业步继续执行,直到最后一个作业步完成,整个作业就执行结束。
这时,系统收回作业所占的资源且撤离该作业,作业执行的结果在"输出井"中等待输出。
如果作业执行到某个作业步时发生了错误,则要分析错误的性质,如果是某些用户估计到的错误且用户已在作业控制说明书提出了处理办法,系统应按用户的说明转向指定的作业步继续顺序执行,直至作业执行结束。
不同的作业步要完成不同的工作,都要有不同的程序去解释执行。怎样才能完成作业步的执行呢?
一般来说,按作业控制说明书中的作业步控制语句(例如EXEC语句)中参数指定的程序名,把相应的程序装到主存储器。
然后,创建一个相应的作业步进程,使它的状态为"就绪"。当被进程调度选中运行时,该进程就执行相应的程序,在执行中可用"访管指令"提出"系统功能调用",请求操作系统服务,操作系统的功能模块完成了用户提出的调用要求后,让用户进程返回原来的断点(调用点)继续执行。
当一个作业步的进程执行结束,需向操作系统报告执行结束的信息。操作系统接到信息后可输出"×××作业步结束"把作业执行的进展情况通知操作员,同时撤消该进程,再继续取下一个作业步的控制语句,控制作业继续执行。
当取到一个表示作业结束的控制语句时,操作系统收回该作业占有的全部主存储器空间和外围设备等资源,然后让作业调度再选取下一个可执行的作业。
一个作业步执行结束后,操作系统顺序取下一个作业步控制语句,系统为不同的作业步创建不同的进程,以完成作业步要求的工作,其他作业步进程的执行不在这里列举了。
采用交互方式控制的作业,不需要像批处理作业那样把作业控制意图预先写成一份作业控制说明书,而是在作业执行过程中,由用户使用操作系统提供的操作控制命令(也称命令语言)或使用会话语言系统提供的会话语句直接提出对作业的控制要求。
每当用户输入一条命令或一个会话语句后,系统立即解释执行且及时给出应答。用户根据作业执行情况决定应该输入的下一条命令或下一个会话语句,以控制作业的继续执行。
在使用分时操作系统的计算机系统中,终端用户通过终端设备输入作业的程序和数据,且直接在终端设备上输入各种命令或会话语句,来表达对作业的控制意图。系统把作业的执行情况也通过终端设备通知用户,最终从终端上输出结果。
交互式作业的特点主要表现在交互性上,它采用人机对话的方式工作。因此,用户能从系统给出的应答中及时掌握作业的执行情况,以决定下一个作业步应该做什么。从系统给出的应答中也可及时发现作业执行中的问题且予以纠正,能方便地实现对程序的联机调试和修改。
许多命令接口允许用户提前写出命令并存入文件,且称为命令文件。
命令文件提供了一种把一系列命令组装成文件的方法,然后用文件名作为命令名执行另外一系列命令。
好的高效命令可以在如下特点:
¨ 如同标准命令一样接受参数和变量,并可如宏变量一样在文本中进行替换。
¨ 允许在命令文件中以嵌套形式调用其它命令文件。
¨ 允许参数来自终端战命令文件本身。
¨ 允许命令执行显示到终端、存入文件或送入打印机。
¨ 允许命令加入注释。
¨ 出错时允许用户干预,并在适当位置恢复命令文件的执行。
命令文件可把输入传给程序。命令文件可有循环、分支、转移等程序语言的特征。
操作系统为用户提供操作使用接口,目前常用的操作使用接口有:
1、操作系统的命令接口
通过在用户和操作系统之间提供高级通信来控制程序运行,用户通过输入设备发出一系列命令告诉操作系统执行所需功能。它包括了键盘操作命令和作业控制命令,称为作业一级的用户接口。命令接口的两种最普遍和主要的方式是直接命令方式(命令行)和间接命令方式(命令文件)。
2、操作系统的程序接口
它是用户程序和操作系统之间的接口,用户程序通过它们使用系统资源及系统服务,这种接口方式通常采用若干系统调用组成。系统调用是操作系统对外提供的一批系统子功能,是一类特殊的过程调用,由机器指令完成。
3、操作系统的交互界面
它直接支持界面和程序界面,提供一个易用性的操作平台,使用户非常方便地寻找和使用各种命令、执行各类程序,完成各种操作。
提供交互控制方式的操作系统都有一个命令解释程序,命令解释程序接收来自用户的命令并对命令进行分析。一般说,可把命令分成两大类:
一类是由操作系统中的相应处理模块直接解释执行;另一类必须创建用户进程去解释执行。
由操作系统直接解释执行的命令有四类:
第一类注册命令和注销命令;
第二类目录操作类命令,其中包括列目录、修改目录和删除目录等;
第三类文件类命令,包括读写文件、删除文件、拷贝文件和修改文件名等;
第四类为操作方式转换等命令。
对于不同的系统来说,命令的格式和功能各有差异,如何实现命令的功能也与系统的设计和结构有关。因此,有关命令解释执行的细节不再阐述。
终端作业的执行一般要有四个阶段:终端的连接,用户注册,控制作业执行和作业退出。
在早期的批处理计算机中,因为外设与主机运行速度相差很大,人们常常把一批作业穿成纸带后,利用一台小型计算机把信息输入到高速的磁带或磁盘存储器上.然后再将磁带、磁盘与主机联接,实现主机与外设并行工作,以提高计算机的利用率。这是一种脱机外围操作,需要人工介入,只适合于批处理方式。
由于多道程序的出现,特别是快速直接存取设备的出现和广泛应用,以及通道的出现,使得并行工作问题得到了较为满意的解决;这就是所谓Spooling系统(Simultaneous peripheraloperationOnline的缩写),其含义是外围设备同时联机操作,它是在通道技术与多道程序设计的基础上,为充分提高计算机效率而发展起来的。
作业调度是"高级"管理程序,主要任务是按照某种策略,从后备作业队列中选取作业进入内存投入运行,亦为被选中的作业分配所需的资源,以达到较佳的系统效率。作业调度选中的作业只具有获得处理机的可能性,但不一定能立刻获得处理机。也就是说,此时的作业只获得了一台虚拟处理机而不是一台物理处理机。
作业调度程序是一个总的管理程序,它使内存保持恰当的作业组合,以便多道程序有效合理地利用系统资源。它具有如下功能:
(1) 记录系统中各作业的情况。
为此,系统为每个咋业建立一个作业控制块,在该块中登记作业的有关信息。作业调度程序通过作业控制块掌握作业进入系统时的有关情况,利用每个作业的作业控制块的信息实现作业调度和管理,
(2) 按照系统提供的调度算法从后备作业队列中选取一些作业投入运行。
由于系统中处于后备状态队列的作业比较多,但处于运行状态的作业一般只有几个,因此,作业调度程序就是在适当时机按一定的调度原则,从后备作业队列中选出一个或若干个作业,使之投入运行。
(3) 给选中的作业分配必要的资源。
作业调度程序将一个作业从后备状态转变成运行状态之前,必须为该作业建立相应的作业步进程,并为这些进程分配内存和外存资源。处理机的资源分配是由进程调度程序完成的。作业调度程序只保证被选取的作业具有使用处理机的资格。
(4) 为作业开始运行做好准备工作。
准备工作除了分配内存、外设外,还包括把被选取作业的作业控制块传递给作业运行控制系统。并随时将作业的变化情况记入作业控制块中;构造和填写作业运行时所需要的表格,建立负责其运行控制的作业运行控制程序等。
(5) 做好作业完成时的善后处理工作。
对于非正常结束的作业,给出引起锖误的原因,以便用户纠正错误,重新将作业投入运行。
作业一旦进入输入井,就处于后备状态。在多道程序系统中,后备状态的作业很多,为便于系统调度作业,可以把它们组成一个或若干个后备作业对列:后备队列的构成原则可按作业优先数大小顺序排列,也可按准业到来的时间顺序排列。
作业信息到达输入井并不等于已经建立了一个作业.因为输入程序只是把它们作为"数据"看待。要使这些"数据"成为处于后备状态的作业,就必须为每个作业建立一个作业控制块(JCB)。
每个作业的JCB是在该作业进入后备状态时由系统建立的。在诙作业退出时由系统随之撤销.JcB是描述一个作业生存期特征的有效方法。在一个作业的生命周期中,对作业运行控制系统而言,JcB是每个作业存在的唯一标志。系统关心的不是作业的具体功能和内部操作,而是作业的外部特征。因为这些外部特征为系统提供了必要的管理和控制信息,这些控制信息可从作业说明书或联机命令得到。
因各系统的功能和控制思想各异,JcB的内容也有所不同,JCB通常包括作业标识信息、作业调度参数、资源申请和分配情况、控制信息等。系统通过作业控制块和后备队列表实现对作业的管理和控制。
下面仅就作业控制块中的有关内容作简单说明:
(1)用户名。标识作业的主人。
(2)作业名。为识别不同作业而没置。
(3)作业的源程序语言。指出该作业的源程序是用何种语言编写
(4)主存申请量。提供给内存管理程序,以分配内存资源。
(5)外设申请量。需要哪几类设备,每类多少台。
(6)作业优先数。用作调度程序的参数,既可由用户提供,也可由系统根据某种算法计算。
(7)作业类别。说明作业是以I/O为主,还是以计算为主。
(8)作业建立时间。为了避免作业被无限推迟,也为作业调度算法提供参数。
(9)作业估计运行时间。为防止作业出现死循环而无限占用CPU资源,并为作业调度算法提供参数。
(10)作业状态。指出作业处于其生存期的状态。
(11)作业说明书文件名。作业说明书是作业执行的依据。
处于后备队列的作业顺序可按作业优先数大小顺序排列,亦可按每个作业到来时间的先后排列,这由具体系统而定。每当Spooling输入一个作业后.就在旨备作业队列中形成一个作业控制块,并将作业个数计数器加1。
下面再归纳一下几种常用作业调度算法
(1) 先来先服务法。
这是一种省事的调度算法,效率不高。
(2) 最短作业优先法。
这种算法使系统的周转率高,实现容易。但一旦长的作业开始运行,其它作业都要一直等到它运行完
(3) 响应比最高者优先法。
响应比是指作业等待时间与作业运行时间的比值当多个用户共享一台处理机时,作业的等待时间总是大大高于作业运行时间。这种调度算法优先选取响应比最高的作业投入运行。一个作业的响应比随着等待时间的增加而增加,它兼顾了运行时间短和等待时间长的作业,是一个较为合理的折衷方法。
(4) 多级轮转法。
这种调度算法的基本思想是:根据作业本身的特性或系统的具体情况,把作业分成若干类型,作业调度程序轮流从这些不同类中选取作业运行。这种策略常为许多系统所采用。作业可按运行时间长短和资源使用情况进行分类,也可将两者结合起来进行分类
例如,可把输入井上的作业分成运行时间短的作业、使用外设频繁的作业以及运行时间长的作业三类。对每类作业依次选取,除非有特殊原因(如高优先数)时,才允许排在该类作业队列的前面。这种调度算法使系统资源得到了比较均衡的使用,作业运行时间搭配趋于合理.是一种较好的调度算法。
(5) 优先数法。
在采用优先数调度的算法中,优先数的选择多种多样。最简单的一种是在作业进入系统的同时,由用户自己给出优先数。
作业调度算法确定子从后备作业队列中选取作业投入运行的策略,处于后备队列中的作业的等待时间、优先数、内存空间要求、外部设备申请、系统平衡、用户满意程度和系统效率等,于是确定调度算法时应着重考虑的因素,这些因素往往相互冲突,难以兼顾;所以调度算法实际上是一种折衷调度算法。在选取调度算法时应考虑以下主要因素:
(1)选取的调度算法应与系统的整个设计目标相一致。
(2)注意系统中各资源的均衡使用。
(3)平衡系统和用户要求。
作业管理要解决以下一些问题,如用户怎样把自己的作业提交给计算机系统,如操作系统又怎样调度并控制用户作业的运行。具体说,作业管理主要包括两个任务:作业调度和作业控制。
作业调度,是指根据一定的策略,从输入的一批作业中选出一个或几个,为它们分配必要的资源(如内存、外存等),建立若干进程,然后交给进程调度程序去处理。
作业控制包括两方面的功能:(1)就用户来讲,操作系统应该提供一个界面,使用户能方便地提交并控制自己作业的运行;(2)就系统来讲,应能正确、迅速地接收、分析、执行用户的提交或控制命令,使作业能按照用户意图去运行,并向用户反馈命令及作业执行情况。
对于响应比最高者优先算法,现面我们举个例子帮助大家理解:
例如,某单道程序设计系统中,有三个作业A,B,C到达"输入井"和需要的计算时间如表7-2-5。当这三个作业全部到达"输入井"后,系统以"响应比最高者优先算法"进行调度,忽略调度所用时间则作业被选中的次序是怎样的呢?
首先,进行作业调度的时间是在作业全部到达"输入井"之后,即在9:30开始进行调度。此时,作业A,B,C分别等待了40分钟、30分钟和0分钟,因而它们的响应比为
A作业的响应比=40/90=4/9
B作业的响应比=30/24=5/4
C作业的响应比=0/60=0
可见,B作业的响应比最高,当然优先选择作业B装入主存储器执行。作业B执行结束后又要进行调度,由于等待时间发生了变化,故重新计算响应比,此时的计算结果如下:
A作业的响应比=64/90=32/45
C作业的响应比=24/60=2/5
显然,A作业的响应比高于C作业的响应比,因而先选择作业A执行,最后再让作业C执行。
本例没有列出作业对资源的需求,在实际应用时要综合考虑资源需求和响应比的高低。
在多用户环境下的终端型处理界面,可采用间接性终端处理程序结构。用户不直接面对主机系统,而是通过某种输入输出设备与主机进行通信。用户通过键盘,鼠标等装置,通过视频终端把信息输入系统,在终端屏幕上输出文本和图像。这里处理话动中,除了命令处理程序外,系统还要有一个终端处理程序对终端进行控制和管理。
终端处理程序:
接收用户从终端上打入的字符
字符缓冲,暂存所接收的字符
回送显示
屏幕编辑
特殊字符处理
所谓作业,是指用户在完成一次算题过程或一次事物处理过程中,要求计算机系统所做工作的集合。
作业步是指完成作业过程中所经历的各个阶段,如编译阶段、连接阶段、运行阶段等。
在批处理系统中,通常把一批作业放置在输入设备上(如磁带机或磁盘机),于是就形成了一个作业流。
把用户根据操作系统提供的手段来说明作业加工步骤的方式称"作业控制方式",
根据一定的原则,从输入井的后备作业队列中选择适当的作业,为它分配内存等资源,并将其调入内存投入运行。
把用户要求计算机系统处理的一个计算问题称为一个作业。一个作业执行时要分若干个作业步,每个作业步完成一项指定的工作,例如,编译、装配和运行等。作业步的顺序是由用户指定的,为了能使用户对作业的控制步骤成为汁算机系统能识别的信息,操作系统为用户提供两种作业控制方式,批处理控制方式和交互控制方式。
对批处理作业,用户预先要用作业控制语言写好一份作业控制说明书,连同源程序和被加工的数据一起输入到"输入井"中等待处理。在"输入井"中的作业必须经过两级调度才能占用处理器。第一级是作业调度,由作业调度选中一个作业后,按作业控制说明书中第一个作业步的要求创建该作业的进程,使进程的状态为"就绪";第二级是进程调度,被进程调度选中的作业进程才可以占用处理器。作业调度选取作业的必要条件是系统中现有的资源能满足被选作业的要求。
对交互式作业,用户与计算机系统以对话方式控制作业的执行,利用显示屏幕、键盘和鼠标等设备在联机状态实现人机交互。用户输入命令决定作业执行步骤,操作系统按用户指定的要求去工作且把工作情况及时通知用户。
用户利用终端使用计算机系统时,首先要使自己的终端与计算机系统在线路上连接,然后进行注册,注册成功后才能以交互方式控制作业的执行,作业执行结束后必须注销。
一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是( )
A.2
B.1
C.3
D.0.5
1.什么是作业和作业步?
作业是用户要求计算机系统处理的一个计算问题。每个作业的执行往往要经过若干个加工步骤,作业步就是指作业的每个加工步骤。
2. 用户可用哪些手段来说明作业步?
用户可用操作系统的两种手段来说明作业步,一种是作业控制语言,另一种是作业控制命令。
3.作业控制方式有哪几种?
作业控制方式有两种,一种是批处理方式,一种是交互方式。批处理方式是指在成批处理时,操作系统按各个作业的作业控制说明书中的要求分别控制相应的作业,按指定的步骤去执行。交互方式是指在作业执行过程中,操作系统和用户之间不断地交流信息,用户使用操作控制命令表达作业执行的控制意图。
4.批处理作业的准备工作包括哪几个方面?
用户必须准备好源程序、初始数据,以及用作业控制语言编写的作业控制说明书。
5.何谓作业调度?
操作系统根据允许并行工作的道数和一定的算法,从输入井中选取若干作业把它们装入主存储器,使它们有机会去获得处理器运行。这项工作就称为作业调度。
6.设计作业调度程序需考虑哪些因素?
设计作业调度程序时需考虑:(1)公平性,对每个用户公平对待且使用户满意;(2)均衡使用资源,提高资源的利用率;(3)极大的流量,缩短作业的周转时间,提高系统的吞吐能力.
7.作业调度程序从输入井选取作业的必要条件是什么?
作业调度程序从输入井选取作业的必要条件是:系统现有的尚未分配的资源可以满足被选作业的资源要求。
8.常用的作业调度算法有哪些?
常用的作业调度算法有先来先服务算法、计算时间短的作业优先算法、响应比最高者优先算法、优先数调度算法和均衡调度算法。
9.什么叫周转时间和平均周转时间?在作业调度中,用户和系统如何看待它们?
作业Pi的周期时间定义为Ti=Ei-Si,其中Si为作业Pi进入输入井的时间,Ei为作业运行结束的时间。几个作业的平均周转时间定义为:T=(∑Ti)*(1/n), 用户总希望周转时间尽可能地小;而从系统的角度出发,希望进入输入井的平均周转时间尽可能地小。
10.作业调度与进程调度在作业执行过程中的作用分别是什么?
作业调度负责从输入并中选中一个作业且把它装入主存储器,并为该作业创建一个进程,排入就绪队列。进程调度从就绪队列中选择当前可占用处理器的进程,并控制该进程的执行直到作业完成。有时进程运行中由于某种原因使状态发生变化,进程调度再选另一个作业进程去运行。
11.交互式作业的特点是什么?
交互式作业的特点是采用人机对话方式工作,用户从终端设备上输入程序和数据,键入命令或会话语句,表达对作业的控制意图;系统把作业执行情况通知用户。
12.通常操作系统为用户提供的操作使用接口有哪几种?
通常操作系统为用户提供的操作使用接口有操作控制命令、菜单技术和窗口技术等。
13.交互控制方式下操作系统如何解释并执行命令?
提供交互控制方式的操作系统都有一个命令解释程序,由它接收来自用户的命令,并对命令进行分析。有的命令可以由操作系统相应的处理模块解释执行,有的命令要创建用户进程去解释执行。
14.简述终端作业的执行进程。
终端作业的执行一般要有四个阶段:终端的连接,用户注册,控制作业执行和作业退出。
15.分时操作系统如何调度终端作业?
在分时操作系统控制下,对终端用户均采用时间片轮转法使每个终端作业都能在一个时间片的时间内去占用处理器。
16.兼有分时和批处理功能的操作系统如何调度和管理作业?
兼有分时和批处理的计算机系统中,总是优先接纳终端作业,仅当终端作业数小于系统可以允许同时工作的作业数时,可以调度批处理作业,允许终端作业与批处理作业混合同时执行。