第2章 作业管理和用户接口本章主要从用户使用和系统管理两方面出发,讨论作业的概念以及操作系统为用户提供的编程接口、命令接口和相关题解。
2.1 内容辅导
2.1.1 用户与操作系统之间的接口为了使用户能方便地通过操作系统使用计算机,OS向用户提供了"用户与操作系统的接口"。该接口通常以命令和系统调用的形式呈现在用户面前,而命令接口又可根据其对作业的控制方式进一步分为联机命令接口和脱机命令接口两种。为了进一步方便用户使用计算机,20世纪90年代初推出的操作系统中增加了一种基于图像的图形用户接口。在90年代后期,为了便于计算机上网,又在计算机中配置了一种面向网络的网络用户接口。
1.命令接口按命令接口对作业控制方式的不同,又可将命令接口分为联机命令接口和脱机命令接口。
(1)联机命令接口联机命令接口又称交互式命令接口,它由一组键盘操作命令组成。用户通过控制台或终端键入操作命令,向系统提出各种服务要求。用户每输入完一条命令,控制就转入命令解释程序,然后命令解释程序对键入的命令解释执行,完成指定的功能。之后,控制又转回到控制台或终端,此时用户又可以键入下一条命令。
在微机操作系统中,通常把键盘命令分成内部命令和外部命令两大类:
内部命令,这类命令的特点是完成命令功能的程序短小,使用频繁。它们在系统初始启动时就被引导到内存且常驻内存。
外部命令,完成这类命令功能的程序较长,各自独立地作为一个文件驻留在磁盘上,当需要它们时,再从磁盘上调入内存运行。
(2)脱机命令接口脱机命令接口也称批处理命令接口。它由一组作业控制命令(或称作业控制语言)组成。
脱机用户是指不能直接干预作业运行的用户,他们应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序对作业说明书上的命令或作业控制语句逐条解释执行。
2.程序接口程序接口由一组系统调用命令〈简称系统调用〉组成。用户通过在程序中使用这些系统调用命令来请求操作系统提供的服务。对于用汇编语言编写程序的用户,在程序中可以直接使用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和回收内存以及其他各种控制要求等。对于使用高级语言的用户,则可以在程序中使用过程调用语句。它们通过相应的编译程序将其翻译成有关的系统调用命令,再去调用系统提供的各种功能或服务。
(1)系统调用
所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能。具体地讲,系统调用就是通过系统调用命令中断现行程序,而转去执行相应的子程序,以完成特定的系统功能。完成后,控制又返回到发出系统调用命令之后的一条指令,被中断的程序将继续执行下去。
实际上,系统调用命令不仅可以供使用汇编语言的用户程序使用,执行键盘操作命令的系统程序也要使用系统调用来实现这些命令的功能。
对于每个操作系统而言,其所提供的系统调用命令条数、格式以及所执行的功能等都不尽相同,即使是同一操作系统,其不同版本所提供的系统调用命令条数也会有所增减。通常,一个操作系统提供的系统调用命令有几十乃至上百条之多,它们各自有一个惟一的编号或助记符。这些系统调用按功能大致可分为设备管理、文件管理、进程控制、进程通信、存储管理几大类。
系统调用命令是为了扩充机器指令、增强系统功能、方便用户使用而提供的。因此,在一些计算机系统中,把系统调用命令称为广义指令。广义指令与机器指令在性质上是不同的,机器指令是用硬件线路直接实现的,而广义指令则是由操作系统提供的一个或多个子程序模块实现的。
①算态与管态计算机系统中的程序有系统程序和用户程序,操作系统如何区分这两类性质截然不同的程序呢?为此把系统的运行状态分为:算态是用户程序运行的状态,也称为目态和管态是系统程序运行的状态,也称为特权状态。
②特权指令特权指令是一类只能在管态下执行,而不能在算态下执行的特殊机器指令。
特权指令在不同的机器中有不同的规定,它与硬件特点和系统结构有关。常见的特权指令有传送程序状态字、启动测试和控制外设的指令、存取特殊寄存器指令等。若程序在用户态下使用它则为非法。若用户要求使用外设,就要使用"启动外设"的指令,而启动外设指令是特权指令。用户必须使用一条指令,从原来的算态进入管态,在管态下由操作系统协助完成,完成后再返回到时序。
③访管指令它本身不是特权指令,其基本功能是"自愿进管",而引起访管中断。用户程序可利用访管指令,要求操作系统提供相应的服务,从而实现系统功能调用。
(2)系统调用的执行过程虽然系统调用命令的具体格式因系统而异,但是,从用户程序进入系统调用的步骤及其执行过程大体上是相同的。
用户程序进入系统调用是通过执行调用指令(在有些操作系统中称为访管指令或软中断指令〉实现的,当用户程序执行到调用指令时,就中断用户程序的执行,转去执行实现系统调用功能的处理程序。系统调用处理程序的执行过程如下:
①为执行系统调用命令作准备。主要工作是把用户程序的现场保留起来,并把系统调用命令的编号等参数放入指定的存储单元中。
②执行系统调用。根据系统调用命令的编号,访问系统调用入口衰,找到相应子程序的入口地址,然后转去执行。这个子程序就是系统调用处理程序。
③系统调用命令执行完后的处理。主要工作是恢复现场,并把系统调用的返回参数送入指定存储单元,以供用户程序使用。
(3)系统调用与过程调用的区别
①系统调用和过程调用运行在不同的系统状态下。过程调用一般都是用户程序,或者都是系统程序,即都是运行在同一系统状态下(算态或管态〉。但系统调用的调用过程是用户程序,它运行在算态下,而被其调用的过程却是系统过程,运行在管态下。
②系统调用必须通过软件中断进入。
3.图形用户接口图形用户接口采用了图形化的操作界面,它用图标将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。用户可通过图标、菜单、对话框以及鼠标和键盘,轻松地完成对应用程序和文件的操作。图形用户接口中除指点设备(如鼠标)外,最重要的元素是图标、窗口和菜单。
2.1.2作业及作业调度
1.作业的概念作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用户程序、所需的数据及命令等。把计算机系统在完成一个作业的过程中所做的一项相对独立的工作称为一个作业步。因此也可以说,一个作业是由一系列有序的作业步组成的。
例如,在我们编制程序的过程中,通常要进行编辑输入、编译、链接、运行几个步骤,其中的每一个步骤都可以看作一个作业步。
2.作业状态一个作业进入系统到运行结束,一般需要经历收容、运行、完成三个阶段。与这三个阶段相对应的作业处于后备、运行和完成三种状态。
(1)后备状态当一个作业通过输入设备送入计算机,并由操作系统将其存放在磁盘中以后,为这个作业建立一个作业控制块,并把它插入到后备作业队列中等待被调度运行。此时,这个作业所处的状态称为后备状态。从作业输入开始到放入后备作业队列,这一过程称为收容阶段,也称为作业注册。
(2)运行状态当一个作业被调度程序选中,并为它分配了必要的资源,建立了一组相应的进程之后,这个作业就由后备状态变为运行状态。处于运行状态的作业在系统中可以从事各种活动。它可能被进程调度程序选中而在处理机上执行:也可能在等待某种事件或信息:还有可能在等待着进程调度程序为其分配处理机。因此,从宏观上看,作业一旦由作业调度选中进入内存就开始了运行,但从微观上讲,内存中的作业并不一定正在处理机上执行。为了便于对运行状态的作业进行管理,根据进程的活动情况又把它分为三种状态:就绪状态、执行状态、阻塞状态。刚建立的进程处于就绪状态,从就绪状态向执行状态的转换由进程调度实现。对于执行状态的进程,当它使用完分配给它的时间或被更高优先权的进程剥夺处理机后,又回到就绪状态,等待下次被调度。进程在执行中若发生了某事件而暂时无法执行下去,如有输入/输出请求并等待输入/输出完成,则进入阻塞状态。当引起进程阻塞的事件消失时,如输入/输出完成,进程由阻塞状态变为就绪状态,重新获得被调度的资格。
(3)完成状态当作业正常运行结束或因发生错误而终止执行,作业就处于完成状态。此时,由操作系统将作业控制块从当前作业队列中删去,并收回其所占用的资源,将作业运行结果编入输出文件并调用有关设备处理进程输出。在有SPOOLING的系统中,作业将被插入到完成作业队列中,将运行结果送入输出井,再由SPOOLING系统去完成输出。
也有一些操作系统在概念上将作业的状态分为四种,即提交状态、后备状态、运行状态和完成状态。其中提交状态指用户作业由输入设各向系统外存输入时作业所处的状态。
3.作业调度作业调度的主要功能是按照某种原则从后备作业队列中选取作业进入主存,并为作业做好运行前的准备工作和作业完成后的善后处理工作。
在外存中往往有许多作业,为了管理和调度这些作业,就必须记录已进入系统中的各作业的情况。如同进程管理一样,系统为每个作业设置一个作业控制块(JCB),其中记录了作业的有关信息。不同系统的JCB所包含的信息有所不同,这取决于系统对作业调度的要求。
通常作业控制块中包括的主要内容有:
资源要求。包括:要求运行的时间、最迟完成时间、需要的主存容量、外设的种类及数量等。
资源使用情况。包括:作业进入系统的时间、开始运行时间、己运行时间、内存地址、外设号等。
作业的控制方式(联机作业控制,又称直接控制:脱机作业控制,又称自动控制〉、作业类型(如终端型、批量型:I/O繁忙、CPU繁忙〉和作业优先权等。
作业名、作业状态。
通常,系统为每个作业建立一个作业控制块,它是作业存在的惟一标志。系统通过JCB感知作业的存在。系统在作业进入后备状态时为作业建立JCB,从而使该作业可被作业调度程序感知。当作业执行完毕进入完成状态之后,系统撤消其JCB,释放有关资源并撤消该作业。
4.调度算法性能的衡量
(1)调度算法应达到的目标调度算法实际上是系统所采取的调度策略,确定这些策略时要考虑的因素很多,但这些因素又应和主观上的目标一致,这些目标为:
①每天运行尽可能多的作业。
②使处理机保持忙碌状态。
③使输入/输出设备得以充分利用。
④对所有的作业公平合理。
由于这些目标往往相互冲突,任何一个调度算法想要同时满足上述目标是不可能的.例如,要想执行尽可能多的作业,调度算法就应选择那些估计执行时间短的作业,而这对那些估计执行时间长的作业又是不公平的。由此看出,要设计一个理想的调度算法是一件很困难的事。所以,实际采用的调度算法往往是根据需要而兼顾某些目标。
(2)确定调度算法时应考虑的因素
① 调度算法应与系统的总体设计目标一致。如批处理操作系统应尽量提高系统的平均吞吐量:分时操作系统应保证用户所能忍受的响应时间等:而实时操作系统则应在保证及时响应和处理有关事件的前提下,再去考虑系统资源的利用效率。
②注意系统资源的均衡使用,使输入/输出繁忙的作业与CPU繁忙的作业搭配运行。
③ 应保证进入系统的作业在规定的截止时间内完成,而且应该设法缩短作业的平均周转时间。
对于一个系统来说,考虑的因素越多,就会使算法变得越复杂,从而增加系统的开销,对资源的利用反而不利。因此,大多数操作系统中往往采用比较简单的调度算法。
(3)调度算法性能的衡量一个调度算法性能的优劣,通常用平均周转时间或平均带权周转时间来衡量。
作业i的周转时间Ti定义为,Ti=Tei--Tsi
其中Tei为作业i的完成时间,Tsi为作业i的提交时间。
n个作业的平均周转时间T为,T=(T1+T2+…+Tn)/n
带权周转时间是作业周转时间与作业实际运行时间的比:Wi=Ti/Tri
n个作业的平均带权周转时间W为,W=(W1+W2+…+Wn)/n
5.常用的作业调度算法
(1)先来先服务调度算法这种调度算法按作业到达系统的先后次序进行调度。该算法优先考虑在系统中等待时间最长的作业,而不考虑作业运行时间的长短。这种算法容易实现,但效率较低。
(2)短作业优先调度算法这种调度算法总是从作业的后备队列中挑选运行时间最短的作业作为下一个调度运行的对象。这种算法易于实现,且效率也比较高,但未考虑长作业的利益。
(3)晌应比高者优先调度算法短作业优先调度算法只考虑作业的运行时间,而忽略了作业的等待时间。因此就有可能出现这样一种情况,当一个作业进入系统以后,由于系统中又不断有较短的作业进入,使得该作业得不到机会运行。为解决这一问题,可采用响应比高者优先调度算法。响应比定义如下:
响应比=作业响应时间/运行时间的估计值其中,响应时间为作业进入系统后的等待时间加上估计的运行时间。于是响应比=1+作业等待时间/运行时间的估计值所谓响应比高者优先调度算法,就是在每次调度作业运行时,先计算后备作业队列中每个作业的响应比,然后挑选响应比最高者投入运行。从以上公式中可从看出,一个作业的响应比随着等待时间的增加而提高。这样,只要系统中的某作业等待了足够长的时间,它总会成为响应比最高者而获得运行的机会。在相同等待时间的情况下,短作业优先,而对于相同运行时间的作业,等待时间长的作业优先运行。
(4)优先数调度算法此算法根据作业的优先数调度作业进入系统运行。作业优先数的确定各系统有所不同,有些系统根据作业对资源的要求确定其优先数,有的系统则使用外部优先数,即由用户自行确定自己作业的优先数。
2.2 重点与难点学习提示本章的目的是了解操作系统向用户提供的各种接口及作业管理的概念,为此应对以下几个重点、难点问题做认真的学习。
2.2.1操作系统向用户提供的接口应对操作系统提供的几种接口内容有较深入的了解:
(1)命令接口:包括联机命令接口和脱机命令接口两种类型,应对它们分别适用于哪种情况,以及系统处理用户输入的联机命令的过程有较深入的了解。
(2)程序接口:程序接口即系统调用,应了解它与普通的过程调用存在着什么差异、它是如何实现的。并对下面的问题进行了解:①如何由用户态转向系统态;②如何转向相应的处理程序;③如何返回问题。
另外,在使用系统调用时,除了系统调用号外,用户还必须提供相应系统调用有关的参数,这些参数可通过多种形式传递给内核:①寄存器形式;②参数表形式。应了解各种形式有何优点。
(3)图形接口。图形接口通过图形化的界面以更加友好的方式向用户提供服务,读者应对组成图形接口的四个基本要素,即指点设备、窗口、图标和菜单有一定的了解。
用户程序可利用系统提供的一组系统调用命令去调用OS内核中的一个(组)过程来完成自己所需的功能。由于系统调用与一般的过程调用存在着很大的差异,故在使用和实现上有着下述明显的不同。
2.2.2 作业及作业调度中的概念
1,应理解作业、作业步、作业控制块、作业控制方式、作业控制语言等基本概念;
2.理解作业的状态及其转换等
3.应理解作业调度的概念、调度算法性能的衡量、调度算法应达到的目标、确定调度算法时应考虑的因素、常用的作业调度算法等。
2.3 典型例题分析
1.操作系统的接口有哪几种?它们分别适用于哪种情况?
答:操作系统提供的接口主要有:
(1)命令接口。它包括脱机命令接口和联机命令接口,其中前者适用于批处理作业用户间接地控制自己的作业,后者适用于联机用户通过终端命令直接控制自己的作业和管理系统资源。
(2)程序接口。程序接口即系统调用,它适用于用户在编程时请求操作系统提供的服务,如申请和释放内存、打开和关闭文件等。
(3)图形用户接口。它也适用于联机用户直接控制自己的作业,而且,它比联机命令接口显示更直观,操作更简便。
2.作业的输入方式有哪儿种?各有何特点?
答:作业的输入方式有5种:联机输入方式、脱机输入方式、直接搞合方式、SPOOLING系统和网络输入方式,各有如下特点:
(1)联机输入方式z用户和系统通过交互式会话来输入作业。
(2)脱机输入方式z又称预输入方式,利用低档个人计算机作为外围处理机进行输入处理,存储在后援存储器上,然后将此后援存储器连接到高速外围设备上和主机相连?从而在较短的时间内完成作业的输入工作。
(3)直接藕合方式:把主机和外围低档机通过一个公用的大容量外存直接藕合起来,从而省去了在脱机输入中那种依靠人工干预来传递后援存储器的过程。
(4)SPOOLING系统:可译为外围设备同时联机操作。在SPOOLING系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来,作业的输入输出过程由主机中的操作系统控制。
(5)网络输入方式:网络输入方式以上述几种输入方式为基础,当用户需要把在计算机网络中某一台主机上输入的信息传送到同一网中另一台主机上进行操作或执行时,就构成了网络输入方式。
3.什么是系统调用?系统调用与一般用户程序有什么区别?与库函数和实用程序又有什么区别?
答:系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。它与一般用户程序、库函数和实用程序的区别是:系统调用程序是在核心态执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。
4.高响应比优先调度算法的优点是什么?
答:它具有以下的优点:
(1)如果作业(进程)的等待时间相同,则要求服务时间最短的作业(进程)的优先权最高,因此它有利于短作业(进程),从而可降低作业(进程)的平均周转时间,提高系统吞吐量。
(2)如果作业(进程)的要求服务时间相同,则其优先权将取决于作业到达(或进程进入就绪状态)的先后次序,因此体现了公平的原则。
(3)如果作业(进程)较长,它的优先权将随着等待时间的增长而提高,从而使长作业(进程)不会长期得不到服务。
5.设有四个作业J1、J2、J3、J4,它们的到达时间和计算时间如下表所示。
作 业
到达时间
计算时间/小时
J1
8:00
2
J2
8:30
1
J3
9:00
0.25
J4
9:30
0.5
若这四个作业在一台处理机上按单道方式运行,采用响应比高者优先调度算法,试写出各作业的执行顺序、各作业的周转时间及平均周转时间。
解:本题应注意六个问题:(1)作业调度的时机;(2)作业响应比的计算;(3)各作业周转时间的计算; (4)作业平均周转时间的计算; (5)参加调度的作业必须是处于后备状态,满足资源要求装入内存的作业;(6)每小时为60分种,则0.25小时=5分钟。所以第一次计算响应比是在J1执行结束时,各作业的响应比:
J2=1.5+1/1=2.5
J3=1+0.25/0.25=5
J4=0.5+0.5/0.5=2
第二次计算响应比是在J3执行结束时,各作业的响应比:
J2=1.75+1/1=2.75
J4=0.75+0.5/0.5=2.5
所以:
作业
到达时刻/时
计算时间/小时
开始时刻/时
结束时刻/时
周转时间/小时
J1
8:00
2
8:00
10:00
2
J2
8:30
1
10:15
11.15
2.75
J3
9:00
0.25
10:00
10:15
1.25
J4
9:30
0.5
11:15
11:45
2.25
作业平均周转时间=(2+2.75+1.25+2.25)/4=2.0625小时作业的执行顺序为,J1,J3,J2,J4。.
另外,若采用先来先服务调度算法,作业的执行顺序为:J1,J2,J3,J4。
若采用短作业优先调度算法,作业的执行顺序为J1,J3,J4,J2。
要特别注意单道批处理作业调度的调度时机。
6.下表给出作业1、2、3的到达时间和运行时间。采用短作业优先调度算法和先来先服务调度算法,试问平均周转时间各为多少?是否还有更好的调度策略存在?(时间单位:小时,以十进制进行计算)。
作业号
到达时间
运行时间
1
0.0
8.0
2
0.4
4.0
3
1.0
1.0
解:采用FCFS调度策略,则调度顺序为1、2、3。
作业号
到达时间
运行时间
开始时间
完成时间
周转时间
1
0.0
8.0
0.0
8.0
8.0
2
0.4
4.0
8.0
12.0
11.6
3
1.0
1.0
12.0
13.0
12.0
平均周转时间T=(8+11.6+12)/3=10.53
采用短作业优先策略,则调度顺序为1、3、2
作业号
到达时间
运行时间
开始时间
完成时间
周转时间
1
0.0
8.0
0.0
8.0
8.0
3
1.0
1.0
8.0
9.0
8.6
2
0.4
4.0
9.0
13.0
12.6
平均周转时间T=(8+8+12.6)/3=9.53
存在缩短平均周转时间的策略,如知道后面将来两个短作业,因此在作业1到达后暂不投入运行,等所有作业到齐后再按短作业优先调度算法调度,其调度顺序为3、2、1。
作业号
到达时间
运行时间
开始时间
完成时间
周转时间
3
1.0
1.0
1.0
2.0
1.0
2
0.4
4.0
2.0
6.0
5.6
1
0.0
8.0
6.0
14.0
14.0
平均周转时间T=(1+5.6+14)=6.87
6.今有三个批处理作业。第一个作业10:00到达,需要执行2小时:第二个作业在10:10到达,需要执行1小时:第三个作业在10:25到达,需要执行25分钟。分别采取如下三种作业调度算法:
调度算法1:
作业号
到达时间
开始执行时间
执行结束时间
1
10:00
10:00
12:00
2
10:10
12:00
13:00
3
10:25
13:00
13:25
调度算法2:
作业号
到达时间
开始执行时间
执行结束时间
1
10:00
11:50
13:50
2
10:10
10:50
11:50
3
10:25
10:25
10:50
调度算法3:
作业号
到达时间
开始执行时间
执行结束时间
1
10:00
10:00
12:00
2
10:10
12:25
13:25
3
10:25
12:00
12:25
〈1〉计算各调度算法下的作业平均周转时间。
(2〉调度算法1、3分别是什么作业调度算法?
解:〈1〉采用调度算法1时:
作业1的周转时间为2小时作业2的周转时间为2.83小时作业3的周转时间为3小时平均周转时间为:〈2+2.83+3〉/3=2.61小时采用调度算法2时:
作业1的周转时间为3.83小时作业2的周转时间为1.67小时作业3的周转时间为0.42小时平均周转时间为:(3.83+1.67+0.42〉/3=1.97小时采用调度算法3时:
作业1的周转时间为2小时作业2的周转时间为3.25小时作业3的周转时间为2小时平均周转时间为:〈2+3.25+2)/3=2.42小时
(2〉调度算法1是按照作业到达的先后次序执行的,所以它是先来先服务调度算法。
调度算法3是按照作业执行时间从短到长的次序执行的,所以它是短作业优先调度算法。
2.4 自测题
2.4.1 基本题一.单项选择题,在每小题的四个备选答案中选出一个正确答案,并将其代码写在题干后面的括号内。不选、错选或多选者该题无分。
1.操作系统提供给程序员的接口是________。
A.进程 B.系统调用 C.库函数 D.系统调用和库函数
2.____________是作业存在的惟一标志。
A.作业名 B.进程控制块 C.作业控制块 D.程序名
3.设有四个作业同时到达,每个作业的执行时间均为2小时,它们在一台处理机上按单道方式运行,则平均周转时间为__________。
A.1小时 B.5小时 C.25小时 D.8小时
4.在下列语言中属于脱机作业控制语言的是_________。
A.作业控制语言 B.汇编语言
C.会话式程序设计语言 D.解释BASIC
5.作业调度算法的选择常考虑因素之一是使系统有最高的吞吐率,为此应_________。
A.不让处理机空闲 B.能够处理尽可能多的作业
C.使各类用户都满意 D.不使系统过于复杂
6.用户使用操作系统通常有三种手段,它们是终端命令、系统调用命令和_________。
A.计算机高级指令 B.宏命令 C.作业控制语言 D.汇编语言
7.在分时操作系统环境下运行的作业通常称为________。
A.后台作业 B.长作业 C.终端型作业 D.批量型作业
8.在各种作业调度算法中,若所有作业同时到达,则平均等待时间最短的算法是______。
A.先来先服务 B.优先数 C.最高响应比优先 D.短作业优先
9.既考虑作业等待时间,又考虑作业执行时间的调度算法是_______.
A.响应比高者优先 B.短作业优先 C.优先级调度 D.先来先服务
10.作业调度中的先来先服务算法是以_______为出发点考虑的。
A.作业执行时间 B.作业的周转时间 C.作业等待时间 D.等待时间加运行时间
11.作业调度程序从处于_________状态的队列中选取适当的作业投入运行。
A.运行 B.提交 C.完成 D.后备
12._______________是指从作业提交给系统到作业完成的时间间隔。
A.周转时间 B.响应时间 C.等待时间 D.运行时间
13.作业从进入后备队列到被调度程序选中的时间间隔称为_________.
A.周转时间 B.响应时间 C.等待时间 D.触发时间答,C
14.下述作业调度算法中,__________调度算法与作业的估计运行时间有关。
A.先来先服务 B.短作业优先 C.均衡 D.时间片轮转
15.用户通过终端使用计算机系统控制作业执行的方式称为________方式。
A.自动 B.联机 C.脱机 D.假脱机
16.作业生存期共经历四个状态,它们是提交、后备、__________和完成。
A.就绪 B.执行 C.等待 D.开始
17.现有三个同时到达的作业J1,J2和J3,它们的执行时间分别是T1,T2和T3,且T2<T2<13。系统按单道方式运行且采用短作业优先算法,则平均周转时间是_____。
A.T1+T2+T3 B.(T1+T2+T3)/3
C.(3T1+2T2+T3)/3 D.(T1+2T2+3T3)/3
18.一作业8:00到达系统,估计运行时间为1小时。若10:00开始执行该作业,其响应比是_____。
A.2 B.1 C.3 D.0.5
二.填空题
1.作业控制方式有_________和_________两种方式。
2.操作系统为程序员提供的接口是___________,为一般用户提供的接口是________。
3.作业调度又称____ 。其主要功能是_______,并为作业做好运行前的准备工作和作业完成后的善后处理工作。
4.确定作业调度算法时应注意系统资源的均衡使用,使_____作业和_____作业搭配运行。
5.对系统的总体设计目标来说,批处理操作系统应注重提高计算机的效率,尽量增加系统的______,分时操作系统应保证用户__________;而实时操作系统则应在保证及时响应和处理有关事件的前提下,再考虑__________。
6.一个作业的运行时间假定为1个小时,它在系统中等待了3个小时,那么该作业的周转时间为___________个小时,响应比是___________。
7.在多道批处理系统中,通常采用以下两种作业调度算法:____________、________。
8.一个作业可以分成若干顺序处理的加工步骤,每个加工步骤称为一个_____。
9.在一个具有分时兼批处理的计算机操作系统中,如果有终端作业和批处理作业混合同时执行,_______作业应优先占用处理器。
10.操作系统为用户提供两个接口。一个是______,用户利用它来组织和控制作业的执行或管理计算机系统。另一个是_________,编程人员使用它们来请求操作系统提供服务。
11.在微机操作系统中,通常把键盘命令分成_________和__________两大类。
12.所谓系统调用,就是用户在程序中调用________所提供的一些子功能。
13.一个作业进入系统到运行结束,一般需要经历_______、_____、_______三个阶段.
14.按命令接口对作业控制方式的不同可将命令接口分为_______和_______。
三、简答题
1.什么是作业?作业步?
2.作业由哪儿部分组成?各有什么功能?
3.作业控制方式有哪儿种?
4.为什么说分时系统没有作业的概念?
5.命令接口和图形用户接口分别有什么优缺点?
6.脱机命令接口和联机命令接口有什么不同?
2.4.2 解析题一.论述题
1.什么是系统调用?它与一般的过程调用有何区别?
2.作业说明书和作业控制块有何异同?
3.简述系统调用的实现过程。
(二)计算题
1.若在后备作业队列中等待运行的同时有三个作业J1、J2、J3,已知它们各自的运行时间为a、b、c,且满足关系a<b<c,试证明采用短作业优先调度算法能获得最小平均周转时间。
2.设有4道作业,它们的提交时间及执行时间如下:
作业号
提 交 时 间
执 行 时 间
1
10.0
2.0
2
10.2
1.0
3
10.4
0.5
4
10.5
0.3
试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间和平均带权周转时间,并指出它们的调度顺序。(时间单位:小时,以十进制进行计算。〉
3.假设有四个作业,它们的提交、运行时间如下表所示。若采用响应比高者优先调度算法,试问平均周转时间和平均带权周转时间为多少?(时间单位:小时,以十进制进行计算。)
作业号
到达时间
运行时间
1
8.0
2.0
2
8.3
0.5
3
8.5
0.1
4
9.0
0.4
4.在单CPU和两台输入/输出设备(I1,I2)的多道程序设计环境下,同时投入三个作业JOb1、Job2、Job3运行。这三个作业对CPU和输入/输出设备的使用顺序和时间如下所示:
Jobl:I2(30ms); CPU(10ms); Il(30ms); CPU(lOms); I2(2Oms)
Job2:I1(20ms); CPU(2Oms); I2(40ms)
Job3:CPU(3Oms);Il(20ms);CPU(lOms);I1(1Oms)
假定CPU、I1、I2都能并行工作,Job1优先级最高,Job2次之,Job3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU但不抢占I1和I2。试求:
(1)三个作业从投入到完成分别需要的时间。
(2)从投入到完成的CPU利用率。
(3)I/0设备利用率。
5.在某多道程序系统中,供用户使用的内存空间有l00k,磁带机2台,打印机1台。系统采用可变式分区分配方式管理内存,对磁带机和打印机采用静态分配方式,并假设输入/输出操作的时间忽略不计。现有一作业序列如下表所示。
作业号
到达时间
要求计算时间
要求内存量
申请磁带机数
申请打印机数
1
8:00
25分钟
15K
1台
1台
2
8:20
10分钟
30K
0
1台
3
8:20
20分钟
60K
1台
0
4
8:30
20分钟
20K
1台
0
5
8:35
15分钟
10K
1台
1台
假设作业调度采用先来先服务算法,优先分配内存的低地址区域且不准移动己在内存中的作业,在内存中的作业平分CPU时间,试问:
(1)作业调度选中作业的次序是什么?
(2)如果把一个作业的周转时间定义为到达系统至计算完成的时间,则最大和最小的作业周转时间是多少?
(3)作业全部执行结束的时间是多少?
6.设有一组作业,它们的提交时间及运行时间如下所示。
作业号
提交时间
运行时间(分钟)
1
8.00
70
2
8.40
30
3
8.50
10
4
9.10
5
试问在单道方式下,采用响应比高者优先调度算法,作业的执行顺序是什么?
1.4.3 自测题答案一.基本题
(一)选择题:
1.B 2.C 3.B 4.A 5.B 6.C 7.C 8.D 9.A
10.C 11.D 12.A 13.C 14.B 15.B 16.B 17.C 18.A
(二)填空
1,脱机控制 联机控制
2,系统调用 命令界面
3.高级调度 按照某种原则从后备作业队列中选取作业
4.I/O繁忙 CPU繁忙
5.平均吞吐量 所能忍受的响应时间 系统资源的利用率
6,4小时 4
7,优先级调度算法 均衡调度算法
8.作业步
9,终端型作业
10.命令接口 程序接口
11.内部命令 外部命令
12.操作系统
13.收容 运行 完成
14.联机命令接口 脱机命令接口
(三)简答题
1,答:把在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。作业由不同的顺序相连的作业步组成。作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。例如,编辑输入是一个作业步,它产生源程序文件;编译也是一个作业步,它产生目标代码文件。
2,答:作业由三部分组成:程序、数据和作业说明书。程序和数据完成用户所要求的业务处理工作,作业说明书则体现用户的控制意图。
3,答:作业控制的主要方式有两种:脱机方式和联机方式。
脱机控制方式利用作业控制语言来编写表示用户控制意图的作业控制程序,也就是作业说明书。作业控制语言的语句就是作业控制命令。不同的批处理系统提供不同的作业控制语言。
联机控制方式不同于脱机控制方式,它不要求用户填写作业说明书,系统只为用户提供一组键盘或其他操作方式的命令。用户使用操作系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。
4,答:因为在分时系统中,每个用户得到的时间片有限,用户的程序和数据信息直接输入到内存工作区中和其他程序一起抢占系统资源投入执行,而不必进入外存输入井等待作业他调度程序选择。因此,分时系统没有作业控制表,也没有作业调度程序。
5,答:命令接口的优点是功能强,速度快、灵活性好,屏幕开销少;缺点是显示不直观,难学,难记。
图形用户接口的优点是显示直观,操作简便,易学:缺点是实现的代码规模大,对内外存容量、CPU速度和显示器的要求较高。
6,答:脱机命令接口是OS提供给批处理作业用户的作业控制语言。批处理用户不能直接与自己的运行作业进行交互,只能向系统提供用作业控制语言编写的作业说明书,并委托系统按作业说明书中的作业控制命令来对他们的作业进行控制和管理。
联机命令接口则不要求用户填写作业说明书,此时,系统将向用户提供一组键盘命令或某他操作方式的命令,用户可通过这些命令来交互地控制自己程序的运行并获得操作系统的服务。
二、解析题论述题:
1,答:系统调用是操作系统提供给用户程序的惟一接口,具体地说,系统调用是操作系统内核中提供的一些系统子程序。用户可通过特殊的系统调用指令(也称作访管指令)来调用这些子程序,从而使用户在自己的程序中可获得OS提供的服务,如打开文件、创建子进程等。系统调用与一般的过程调用的区别主要有以下几点:
(1)运行在不同的系统状态。一般的过程调用,其调用程序和被调用程序都运行在相同的状态一系统态或用户态:而对系统调用,其调用程序是运行在用户态,而被调用程序则是运行在系统态。
(2)通过软中断进入。一般的过程调用可通过过程调用语句直接由调用过程转向被调用过程:而系统调用则必须通过执行系统调用指令(也称作访管指令),由软中断(或陷入机制)转向相应的系统调用处理程序,同时CPU的执行状态将从用户态转换为系统态。
(3)返回问题。一般的过程调用在被调用过程执行完后,将直接返回到调用过程继续执行:而对系统调用,如果系统采用抢占调度方式,则在被调用过程执行完后,必须先对系统中所有要求运行的进程做优先权分析。只有当调用进程仍具有最高优先权时,才返回到调用进程继续执行:否则,将引起重新调度。
2.答:作业说明书主要包含三方面内容:作业的基本描述、作业控制描述和资源要求描述。作业基本描述主要包括用户名、作业名、使用的编程语言名、允许的最大处理时间等。而作业控制描述则大致包括作业在执行过程中的控制方式,例如是脱机控制还是联机控制、各作业步的操作顺序以及作业不能正常执行时的处理等。资源要求描述包括要求内存大小、外设种类和台数、处理机优先级、所需处理时间、所需库函数或实用程序等。
而作业控制块是作业说明书在系统中生成的一张表格,该表格登记该作业所要求的资源情况、预计执行时间和执行优先级等。从而,操作系统通过该表了解到作业要求,并分配资源和控制作业中程序和数据的编译、链接、装入和执行等。
3.答:用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。
(二)计算题
1,解:由于短作业优先调度算法总是从后备作业队列中选择运行时间最短的作业作为调度对象,因此对短作业优先调度算法而言,这三个作业的总周转时间为
T1=a+(a+b)+(a+b+c)=3a+2b+c ①
若不按短作业优先调度算法来调度这三个作业,不失一般性,假定调度顺序J2、J1、J3,
则其总周转时间为:
T2=b+(b+a)+(b+a+c)=3b+2a+c ②
②一①式得:
T2一Tl=b-a>O
由此可见,短作业优先调度算法能获得最小平均周转时间。
2,解:若采用先来先服务调度算法,则其调度顺序为1、2、3、4。
作业号
执行时间
提交时间
开始时间
完成时间
周转时间
带权周转时间
1
10.0
2.0
10
12
2.0
1.0
2
10.2
1.0
12
13
2.8
2.8
3
10.4
0.5
13
13.5
3.1
6.2
4
10.5
0.3
13.5
13.8
3.3
11.0
平均周转时间T=(2.0+2.8+3.1+3.3)/=2.8
平均带权周转时间W=(1+2.8+6.2+11)/4=5.25
若采用短作业优先调度算法,则其调度顺序为1、4、3、2。
作业号
执行时间
提交时间
开始时间
完成时间
周转时间
带权周转时间
1
10.0
2.0
10
12
2.0
1.0
4
10.5
0.3
12
12.3
1.8
6.0
3
10.4
0.5
12.3
12.8
2.4
4.8
2
10.2
1.0
13.8
13.8
3.6
3.6
平均周转时间T=(2.0+1.8+2.4+3.6)/4=2.45
平均带权周转时间W=(1+6+4.8+3.6)/4=3.85
3,分析:在8:00时,因为只有作业1到达,系统将作业1投入运行。作业1运行2小时(即10:00时)完成。由于该算法采用响应比高者优先调度算法,这样在作业1执行完后,要计算剩下三个作业的响应比,然后选响应比高者去运行。剩下三个作业的响应比为:
r2=1+(10.0-8.3)/0.5=4.4
r3=1+(10.0-8.5)/0.1=16
r4=1+(10.0-9.0)/0.4=3.5
从计算结果看,作业3的响应比高,所以让作业3先运行。作业3运行0.1小时完成(即10:10时),此时,作业2和作业4的响应比为:
r2=1+(10.1-8.3)/0.5=4.6
r4=1+(10.1-9.0)/0.4=3.75
从上述计算结果看,作业2的响应比高,所以让作业2先运行。因此四个作业的执行次序为:作业1、作业3、作业2、作业4.
解:四个作业的调度次序为:作业1、作业3、作业2、作业4。
作业号 到达时间 运行时间 开始时间 完成时间 周转时间 带权周转时间
1 8.0 2.0 8.0 10.0 2.0 1.0
2 8.3 0.5 10.1 10.6 2.3 4.6
3 8.5 0.1 10.0 10.1 1.6 16.0
4 9.0 0.4 10.6 11.0 2.0 5.0
平均周转时间T=(2.0+2.3+1.6+2.O)/4=1.975
平均带权周转时间W=(1+4.6+16+5)/4=6.65
4,解:三个作业并发执行时的工作情况如下:
(1)Job1从投入到运行完成需要110ms,Job2从投入到运行完成需要9Oms,Job3从投入到运行完成需要110ms。
(2)CPU在时间段60ms至70ms,8Oms至90ms 100mS至110ms期间空闲,所以CPU的利用率为,(110-30)/110=72.7%。
(3)设备I1在时间段2Oms至4Oms,90ms至l00ms期间空闲,所以设备I1的利用率为,(110-30)/110=72.7%;设备I2在时间段3Oms至5Oms期间空闲,所以设备I2的利用率为:(110-2O)/110=81.8%。
5,分析:在本题中,作业的调度不仅与作业到达时间有关,而且与系统中的资源分自己情况相关。内存分配采用可变式分区管理,要求先分配地址低端且不能移动已存放在内存中的作业,即将内存空间按用户要求动态地划分成若干个分区,每次分配内存空间时总是从某个满足空间要求的空闲分区中划分出与作业大小相同的一部分.静态分配指的是作业得到了所有申请的外设后才能进入主存运行。下面将给出本题的调度情况。
8:00时,作业1到达,此时内存和外设均处于空闲状态,且作业1申请的设备台数与内存均可被满足,系统中尚有1台磁带机空闲。
8:20时,作业2到达,由于作业2申请的打印机当前正被作业1使用,因此作业2只能等待。与此同时,作业3也已到达,它只申请1台磁带机和60K内存空间,系统能够满足它的要求,因此作业3进入内存运行;没有空闲外设。此时,作业1已运行了20分钟,它还需要运行5分钟。但这时内存中已有两道作业,因此它们要平分CPU时间,即作业1至少还要运行10分钟才能运行完毕。
8:30时,作业1运行完毕,释放了它所占用的磁带机和打印机,也释放了它所占用的内存空间。此时,系统中有1台磁带机和1台打印机空闲,还有一个大小为15K和一个大小为25K的空闲分区。与此同时,作业4也到达,它与正在等待的作业2一起竞争内存和外设。因作业2所要求的内存空间量无法满足,因此作业2只好继续等待.作业4只申请2OK内存空间并只要1台磁带机,它的资源申请可以得到满足,因此作业4可以进入内存并运行;有1台打印机空闲。此时,作业3已运行了5分钟,它还需要运行15分钟,内存中有两道作业.
8:35时,作业5到达,这时已没有空闲磁带机,因此作业5等待。9:00时,作业3运行完毕,释放了它所占用的1台磁带机,也释放了它所占用的内存空间。此时,系统中有1合磁带机和1台打印机空闲,还有一个大小为75K和一个大小为5K的空闲分区。因作业2先于作业5到达,且作业2的资源申请能够得到满足,所以作业2被调入内存,而作业5继续等待;有1台磁带机空闲。
9:10时,作业4运行完毕,释放了它所占用的1台磁带机,也释放了它所占用的内存空间。此时,系统中有2台磁带机空闲,还有一个大小为7OK的空闲分区。但因作业5申请1台打印机,而系统中惟一的打印机正被作业2使用,它只好继续等待.
9:15时,作业2运行完毕,释放了它所占用的打印机,也释放了它所占用的内存空间。此时,系统中所有资源空闲。这时,作业5进入内存运行,它独自使用CPU,15分钟后(即9:30)运行完毕。
解:由上述分析可知:
(1)作业调度选中作业的次序是1、3、4、2、5
(2)作业1的周转时间是8:30-8:00=30分钟作业2的周转时间是9:15-8:20=55分钟作业3的周转时间是9:00-8:20=40分钟
作业4的周转时间是9:10-8:30=40分钟作业5的周转时间是9:3O-8:35=55分钟因此,作业的最大周转时间是55分钟,作业的最小周转时间是30分钟。
(3)作业全部执行结束的时间是9:30。
6.分析:8:00时,因为这时只有作业1到达,因此调度作业1运行.70分钟后(即9:10),作业1运行完毕。
9:10时,这时作业1运行完成,其他三个作业均已到达。它们的响应比分别为:
r2=1+(9:10-8:40)/30=2
r3=1+(9:10-8:50)/10=3
r4=1+(9:10-9:10)/5=1
从计算结果看,作业3的响应比高,所以让作业3先运行。10分钟后(即9:20),作业3运行完毕。
9:20时,这时作业3运行完成,其他两个作业的响应比分别为:
r2=1+(9:20-8:40)/30=2.3
r4=1+(9:20-9:10)/5=3
从计算结果看,作业4的响应比高,所以让作业4先运行。5分钟后(即9:25),作业4运行完毕。这时只剩下作业2,调度作业2运行。
解:从上面的分析可知,作业的执行顺序为1、3、4、2。