第2章作业管理和用户接口 本章主要从用户使用和系统管理两方面出发,讨论作业的概念以及操作系统为用户提供 的编程接口、命令接口和相关题解。 2.1内容辅导 2.1.1用户与操作系统之间的接口 为了使用户能方便地通过操作系统使用计算机,0S向用户提供了″用户与操作系统的接 口"。该接口通常以命令和系统调用的形式呈现在用户面前,而命令接口又可根据其对作业的 控制方式进一步分为联机命令接口和脱机命令接口两种。为了进一步方便用户使用计算机,20 世纪90年代初推出的操作系统中增加了一种基于图像的图形用户接口。在90年代后期,为了 便于计算机上网,又在计算机中配置了一种面向网络的网络用户接口。 1.命令接口 按命令接口对作业控制方式的不同,又可将命令接口分为联机命令接口和脱机命令接口。 (1)联机命令接口 联机命令接口又称交互式命令接口,它由一组键盘操作命令组成。用户通过控制台或终端 键入操作命令,向系统提出各种服务要求。用户每输入完一条命令,控制就转入命令解释程序, 然后命令解释程序对键入的命令解释执行,完成指定的功能。之后,控制又转回到控制台或终 端,此时用户又可以键入下一条命令 在微机操作系统中,通常把键盘命令分成内部命令和外部命令两大类: ●内部命令:这类命令的特点是完成命令功能的程序短小,使用频繁。它们在系统初 始启动时就被引导到内存且常驻内存。 ●外部命令:完成这类命令功能的程序较长,各自独立地作为一个文件驻留在磁盘上, 当需要它们时,再从磁盘上调入内存运行 (2)脱机命令接口 脱机命令接口也称批处理命令接口。它由一组作业控制命令(或称作业控制语言)组成 脱机用户是指不能直接干预作业运行的用户,他们应事先用相应的作业控制命令写成一份作 业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序 对作业说明书上的命令或作业控制语句逐条解释执行 2.程序接口 程序接口由一组系统调用命令〈简称系统调用〉组成。用户通过在程序中使用这些系统 调用命令来请求操作系统提供的服务。对于用汇编语言编写程序的用户,在程序中可以直接使 用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操 作,申请分配和回收内存以及其他各种控制要求等。对于使用高级语言的用户,则可以在程序 中使用过程调用语句。它们通过相应的编译程序将其翻译成有关的系统调用命令,再去调用系 统提供的各种功能或服务 (1)系统调用 所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能。具体地讲,系统调用 就是通过系统调用命令中断现行程序,而转去执行相应的子程序,以完成特定的系统功能。完 成后,控制又返回到发出系统调用命令之后的一条指令,被中断的程序将继续执行下去。 实际上,系统调用命令不仅可以供使用汇编语言的用户程序使用,执行键盘操作命令的系 统程序也要使用系统调用来实现这些命令的功能 对于每个操作系统而言,其所提供的系统调用命令条数、格式以及所执行的功能等都不尽 相同,即使是同一操作系统,其不同版本所提供的系统调用命令条数也会有所增减。通常,一个
第 2 章 作业管理和用户接口 本章主要从用户使用和系统管理两方面出发,讨论作业的概念以及操作系统为用户提供 的编程接口、命令接口和相关题解。 2.1 内容辅导 2.1.1 用户与操作系统之间的接口 为了使用户能方便地通过操作系统使用计算机,OS 向用户提供了"用户与操作系统的接 口"。该接口通常以命令和系统调用的形式呈现在用户面前,而命令接口又可根据其对作业的 控制方式进一步分为联机命令接口和脱机命令接口两种。为了进一步方便用户使用计算机,20 世纪 90 年代初推出的操作系统中增加了一种基于图像的图形用户接口。在 90 年代后期,为了 便于计算机上网,又在计算机中配置了一种面向网络的网络用户接口。 1.命令接口 按命令接口对作业控制方式的不同,又可将命令接口分为联机命令接口和脱机命令接口。 (1)联机命令接口 联机命令接口又称交互式命令接口,它由一组键盘操作命令组成。用户通过控制台或终端 键入操作命令,向系统提出各种服务要求。用户每输入完一条命令,控制就转入命令解释程序, 然后命令解释程序对键入的命令解释执行,完成指定的功能。之后,控制又转回到控制台或终 端,此时用户又可以键入下一条命令。 在微机操作系统中,通常把键盘命令分成内部命令和外部命令两大类: ⚫ 内部命令: 这类命令的特点是完成命令功能的程序短小,使用频繁。它们在系统初 始启动时就被引导到内存且常驻内存。 ⚫ 外部命令:完成这类命令功能的程序较长,各自独立地作为一个文件驻留在磁盘上, 当需要它们时,再从磁盘上调入内存运行。 (2)脱机命令接口 脱机命令接口也称批处理命令接口。它由一组作业控制命令(或称作业控制语言)组成。 脱机用户是指不能直接干预作业运行的用户,他们应事先用相应的作业控制命令写成一份作 业操作说明书,连同作业一起提交给系统。当系统调度到该作业时,由系统中的命令解释程序 对作业说明书上的命令或作业控制语句逐条解释执行。 2.程序接口 程序接口由一组系统调用命令〈简称系统调用〉组成。用户通过在程序中使用这些系统 调用命令来请求操作系统提供的服务。对于用汇编语言编写程序的用户,在程序中可以直接使 用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操 作,申请分配和回收内存以及其他各种控制要求等。对于使用高级语言的用户,则可以在程序 中使用过程调用语句。它们通过相应的编译程序将其翻译成有关的系统调用命令,再去调用系 统提供的各种功能或服务。 (1)系统调用 所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能。具体地讲,系统调用 就是通过系统调用命令中断现行程序,而转去执行相应的子程序,以完成特定的系统功能。完 成后,控制又返回到发出系统调用命令之后的一条指令,被中断的程序将继续执行下去。 实际上,系统调用命令不仅可以供使用汇编语言的用户程序使用,执行键盘操作命令的系 统程序也要使用系统调用来实现这些命令的功能。 对于每个操作系统而言,其所提供的系统调用命令条数、格式以及所执行的功能等都不尽 相同,即使是同一操作系统,其不同版本所提供的系统调用命令条数也会有所增减。通常,一个
操作系统提供的系统调用命令有几十乃至上百条之多,它们各自有一个惟一的编号或助记符。 这些系统调用按功能大致可分为设备管理、文件管理、进程控制、进程通信、存储管理几大 系统调用命令是为了扩充机器指令、增强系统功能、方便用户使用而提供的。因此,在一 些计算机系统中,把系统调用命令称为广义指令。广义指令与机器指令在性质上是不同的,机 器指令是用硬件线路直接实现的,而广义指令则是由操作系统提供的一个或多个子程序模块 实现的 ①算态与管态 计算机系统中的程序有系统程序和用户程序,操作系统如何区分这两类性质截然不同的 程序呢?为此把系统的运行状态分为:算态是用户程序运行的状态,也称为目态和管态是系统 程序运行的状态,也称为特权状态 ②特权指令 特权指令是一类只能在管态下执行,而不能在算态下执行的特殊机器指令 特权指令在不同的机器中有不同的规定,它与硬件特点和系统结构有关。常见的特权指令 有传送程序状态字、启动测试和控制外设的指令、存取特殊寄存器指令等。若程序在用户态 下使用它则为非法。若用户要求使用外设,就要使用”启动外设"的指令,而启动外设指令是特 权指令。用户必须使用一条指令,从原来的算态进入管态,在管态下由操作系统协助完成,完成 后再返回到时序 ③访管指令 它本身不是特权指令,其基本功能是″自愿进管",而引起访管中断。用户程序可利用访管 指令,要求操作系统提供相应的服务,从而实现系统功能调用 )系统调用的执行过程 虽然系统调用命令的具体格式因系统而异,但是,从用户程序进入系统调用的步骤及其执 行过程大体上是相同的。 用户程序进入系统调用是通过执行调用指令(在有些操作系统中称为访管指令或软中断 指令)实现的,当用户程序执行到调用指令时,就中断用户程序的执行,转去执行实现系统调用 功能的处理程序。系统调用处理程序的执行过程如下: ①为执行系统调用命令作准备。主要工作是把用户程序的现场保留起来,并把系统调用命 令的编号等参数放入指定的存储单元中 ②执行系统调用。根据系统调用命令的编号,访问系统调用入口衰,找到相应子程序的入 口地址,然后转去执行。这个子程序就是系统调用处理程序 ③系统调用命令执行完后的处理。主要工作是恢复现场,并把系统调用的返回参数送入指 定存储单元,以供用户程序使用。 (3)系统调用与过程调用的区别 ①系统调用和过程调用运行在不同的系统状态下。过程调用一般都是用户程序,或者都 是系统程序,即都是运行在同一系统状态下(算态或管态〉。但系统调用的调用过程是用户程序, 它运行在算态下,而被其调用的过程却是系统过程,运行在管态下。 ②系统调用必须通过软件中断进入 3.图形用户接口 图形用户接口采用了图形化的操作界面,它用图标将系统的各项功能、各种应用程序和文 件直观、逼真地表示出来。用户可通过图标、菜单、对话框以及鼠标和键盘,轻松地完成对应 用程序和文件的操作。图形用户接口中除指点设备(如鼠标)外,最重要的元素是图标、窗口和 菜单 2.1.2作业及作业调度
操作系统提供的系统调用命令有几十乃至上百条之多,它们各自有一个惟一的编号或助记符。 这些系统调用按功能大致可分为设备管理、文件管理、进程控制、进程通信、存储管理几大 类。 系统调用命令是为了扩充机器指令、增强系统功能、方便用户使用而提供的。因此,在一 些计算机系统中,把系统调用命令称为广义指令。广义指令与机器指令在性质上是不同的,机 器指令是用硬件线路直接实现的,而广义指令则是由操作系统提供的一个或多个子程序模块 实现的。 ①算态与管态 计算机系统中的程序有系统程序和用户程序,操作系统如何区分这两类性质截然不同的 程序呢?为此把系统的运行状态分为:算态是用户程序运行的状态,也称为目态和管态是系统 程序运行的状态,也称为特权状态。 ②特权指令 特权指令是一类只能在管态下执行,而不能在算态下执行的特殊机器指令。 特权指令在不同的机器中有不同的规定,它与硬件特点和系统结构有关。常见的特权指令 有传送程序状态字、启动测试和控制外设的指令、存取特殊寄存器指令等。若程序在用户态 下使用它则为非法。若用户要求使用外设,就要使用"启动外设"的指令,而启动外设指令是特 权指令。用户必须使用一条指令,从原来的算态进入管态,在管态下由操作系统协助完成,完成 后再返回到时序。 ③访管指令 它本身不是特权指令,其基本功能是"自愿进管",而引起访管中断。用户程序可利用访管 指令,要求操作系统提供相应的服务,从而实现系统功能调用。 (2)系统调用的执行过程 虽然系统调用命令的具体格式因系统而异,但是,从用户程序进入系统调用的步骤及其执 行过程大体上是相同的。 用户程序进入系统调用是通过执行调用指令(在有些操作系统中称为访管指令或软中断 指令〉实现的,当用户程序执行到调用指令时,就中断用户程序的执行,转去执行实现系统调用 功能的处理程序。系统调用处理程序的执行过程如下: ①为执行系统调用命令作准备。主要工作是把用户程序的现场保留起来,并把系统调用命 令的编号等参数放入指定的存储单元中。 ②执行系统调用。根据系统调用命令的编号,访问系统调用入口衰,找到相应子程序的入 口地址,然后转去执行。这个子程序就是系统调用处理程序。 ③系统调用命令执行完后的处理。主要工作是恢复现场,并把系统调用的返回参数送入指 定存储单元,以供用户程序使用。 (3)系统调用与过程调用的区别 ①系统调用和过程调用运行在不同的系统状态下。过程调用一般都是用户程序,或者都 是系统程序,即都是运行在同一系统状态下(算态或管态〉。但系统调用的调用过程是用户程序, 它运行在算态下,而被其调用的过程却是系统过程,运行在管态下。 ②系统调用必须通过软件中断进入。 3.图形用户接口 图形用户接口采用了图形化的操作界面,它用图标将系统的各项功能、各种应用程序和文 件直观、逼真地表示出来。用户可通过图标、菜单、对话框以及鼠标和键盘,轻松地完成对应 用程序和文件的操作。图形用户接口中除指点设备(如鼠标)外,最重要的元素是图标、窗口和 菜单。 2.1.2 作业及作业调度
1.作业的概念 作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用 户程序、所需的数据及命令等。把计算机系统在完成一个作业的过程中所做的一项相对独立 的工作称为一个作业步。因此也可以说,一个作业是由一系列有序的作业步组成的 例如,在我们编制程序的过程中,通常要进行编辑输入、编译、链接、运行几个步骤,其中 的每一个步骤都可以看作一个作业步。 2.作业状态 一个作业进入系统到运行结束,一般需要经历收容、运行、完成三个阶段。与这三个 阶段相对应的作业处于后备、运行和完成三种状态。 (1)后备状态 当一个作业通过输入设备送入计算机,并由操作系统将其存放在磁盘中以后,为这个作业 建立一个作业控制块,并把它插入到后备作业队列中等待被调度运行。此时,这个作业所处的 状态称为后备状态。从作业输入开始到放入后备作业队列,这一过程称为收容阶段,也称为作 业注册。 (2)运行状态 当一个作业被调度程序选中,并为它分配了必要的资源,建立了一组相应的进程之后,这 个作业就由后备状态变为运行状态。处于运行状态的作业在系统中可以从事各种活动。它可 能被进程调度程序选中而在处理机上执行:也可能在等待某种事件或信息:还有可能在等待着 进程调度程序为其分配处理机。因此,从宏观上看,作业一旦由作业调度选中进入内存就开始 了运行,但从微观上讲,内存中的作业并不一定正在处理机上执行。为了便于对运行状态的作 业进行管理,根据进程的活动情况又把它分为三种状态:就绪状态、执行状态、阻塞状态。刚 建立的进程处于就绪状态,从就绪状态向执行状态的转换由进程调度实现。对于执行状态的进 程,当它使用完分配给它的时间或被更高优先权的进程剥夺处理机后,又回到就绪状态,等待 下次被调度。进程在执行中若发生了某事件而暂时无法执行下去,如有输入/输出请求并等待 输入/输出完成,则进入阻塞状态。当引起进程阻塞的事件消失时,如输入/输出完成,进程由阻 塞状态变为就绪状态,重新获得被调度的资格 (3)完成状态 当作业正常运行结束或因发生错误而终止执行,作业就处于完成状态。此时,由操作系统 将作业控制块从当前作业队列中删去,并收回其所占用的资源,将作业运行结果编入输出文件 并调用有关设备处理进程输出。在有 SPOOLING的系统中,作业将被插入到完成作业队列中, 将运行结果送入输出井,再由 SPOOLING系统去完成输出 也有一些操作系统在概念上将作业的状态分为四种,即提交状态、后备状态、运行状态和 完成状态。其中提交状态指用户作业由输入设各向系统外存输入时作业所处的状态。 3.作业调度 作业调度的主要功能是按照某种原则从后备作业队列中选取作业进入主存,并为作业做 好运行前的准备工作和作业完成后的善后处理工作 在外存中往往有许多作业,为了管理和调度这些作业,就必须记录已进入系统中的各作业 的情况。如同进程管理一样,系统为每个作业设置一个作业控制块(JCB),其中记录了作业的有 关信息。不同系统的JCB所包含的信息有所不同,这取决于系统对作业调度的要求 通常作业控制块中包括的主要内容有 资源要求。包括:要求运行的时间、最迟完成时间、需要的主存容量、外设的种类 及数量等。 资源使用情况。包括:作业进入系统的时间、开始运行时间、己运行时间、内存地址 外设号等
1.作业的概念 作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合,包括用 户程序、所需的数据及命令等。把计算机系统在完成一个作业的过程中所做的一项相对独立 的工作称为一个作业步。因此也可以说,一个作业是由一系列有序的作业步组成的。 例如,在我们编制程序的过程中,通常要进行编辑输入、编译、链接、运行几个步骤,其中 的每一个步骤都可以看作一个作业步。 2.作业状态 一个作业进入系统到运行结束,一般需要经历收容、运行、完成三个阶段。与这三个 阶段相对应的作业处于后备、运行和完成三种状态。 (1)后备状态 当一个作业通过输入设备送入计算机,并由操作系统将其存放在磁盘中以后,为这个作业 建立一个作业控制块,并把它插入到后备作业队列中等待被调度运行。此时,这个作业所处的 状态称为后备状态。从作业输入开始到放入后备作业队列,这一过程称为收容阶段,也称为作 业注册。 (2)运行状态 当一个作业被调度程序选中,并为它分配了必要的资源,建立了一组相应的进程之后,这 个作业就由后备状态变为运行状态。处于运行状态的作业在系统中可以从事各种活动。它可 能被进程调度程序选中而在处理机上执行:也可能在等待某种事件或信息:还有可能在等待着 进程调度程序为其分配处理机。因此,从宏观上看,作业一旦由作业调度选中进入内存就开始 了运行,但从微观上讲,内存中的作业并不一定正在处理机上执行。为了便于对运行状态的作 业进行管理,根据进程的活动情况又把它分为三种状态:就绪状态、执行状态、阻塞状态。刚 建立的进程处于就绪状态,从就绪状态向执行状态的转换由进程调度实现。对于执行状态的进 程,当它使用完分配给它的时间或被更高优先权的进程剥夺处理机后,又回到就绪状态,等待 下次被调度。进程在执行中若发生了某事件而暂时无法执行下去,如有输入/输出请求并等待 输入/输出完成,则进入阻塞状态。当引起进程阻塞的事件消失时,如输入/输出完成,进程由阻 塞状态变为就绪状态,重新获得被调度的资格。 (3)完成状态 当作业正常运行结束或因发生错误而终止执行,作业就处于完成状态。此时,由操作系统 将作业控制块从当前作业队列中删去,并收回其所占用的资源,将作业运行结果编入输出文件 并调用有关设备处理进程输出。在有 SPOOLING 的系统中,作业将被插入到完成作业队列中, 将运行结果送入输出井,再由 SPOOLING 系统去完成输出。 也有一些操作系统在概念上将作业的状态分为四种,即提交状态、后备状态、运行状态和 完成状态。其中提交状态指用户作业由输入设各向系统外存输入时作业所处的状态。 3.作业调度 作业调度的主要功能是按照某种原则从后备作业队列中选取作业进入主存,并为作业做 好运行前的准备工作和作业完成后的善后处理工作。 在外存中往往有许多作业,为了管理和调度这些作业,就必须记录已进入系统中的各作业 的情况。如同进程管理一样,系统为每个作业设置一个作业控制块(JCB),其中记录了作业的有 关信息。不同系统的 JCB 所包含的信息有所不同,这取决于系统对作业调度的要求。 通常作业控制块中包括的主要内容有: ⚫ 资源要求。包括:要求运行的时间、最迟完成时间、需要的主存容量、外设的种类 及数量等。 ⚫ 资源使用情况。包括:作业进入系统的时间、开始运行时间、己运行时间、内存地址、 外设号等
作业的控制方式(联机作业控制,又称直接控制:脱机作业控制,又称自动控制》〉作业 类型(如终端型、批量型:I/0繁忙、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)晌应比高者优先调度算法 短作业优先调度算法只考虑作业的运行时间,而忽略了作业的等待时间。因此就有可能出 现这样一种情况,当一个作业进入系统以后,由于系统中又不断有较短的作业进入,使得该作
⚫ 作业的控制方式(联机作业控制,又称直接控制:脱机作业控制,又称自动控制〉、作业 类型(如终端型、批量型: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)命令接口。它包括脱机命令接口和联机命令接口,其中前者适用于批处理作业用户间接 地控制自己的作业,后者适用于联机用户通过终端命令直接控制自己的作业和管理系统资源
业得不到机会运行。为解决这一问题,可采用响应比高者优先调度算法。响应比定义如下: 响应比=作业响应时间/运行时间的估计值 其中,响应时间为作业进入系统后的等待时间加上估计的运行时间。于是 响应比=1+作业等待时间/运行时间的估计值 所谓响应比高者优先调度算法,就是在每次调度作业运行时,先计算后备作业队列中每个 作业的响应比,然后挑选响应比最高者投入运行。从以上公式中可从看出,一个作业的响应比 随着等待时间的增加而提高。这样,只要系统中的某作业等待了足够长的时间,它总会成为响 应比最高者而获得运行的机会。在相同等待时间的情况下,短作业优先,而对于相同运行时间 的作业,等待时间长的作业优先运行。 (4)优先数调度算法 此算法根据作业的优先数调度作业进入系统运行。作业优先数的确定各系统有所不同, 有些系统根据作业对资源的要求确定其优先数,有的系统则使用外部优先数,即由用户自行确 定自己作业的优先数。 2.2 重点与难点学习提示 本章的目的是了解操作系统向用户提供的各种接口及作业管理的概念,为此应对以下几 个重点、难点问题做认真的学习。 2.2.1 操作系统向用户提供的接口 应对操作系统提供的几种接口内容有较深入的了解: (1)命令接口:包括联机命令接口和脱机命令接口两种类型,应对它们分别适用于哪种情 况,以及系统处理用户输入的联机命令的过程有较深入的了解。 (2)程序接口:程序接口即系统调用,应了解它与普通的过程调用存在着什么差异、它是 如何实现的。并对下面的问题进行了解:①如何由用户态转向系统态;②如何转向相应的处 理程序;③如何返回问题。 另外,在使用系统调用时,除了系统调用号外,用户还必须提供相应系统调用有关的参数, 这些参数可通过多种形式传递给内核:①寄存器形式;②参数表形式。应了解各种形式有何 优点。 (3)图形接口。图形接口通过图形化的界面以更加友好的方式向用户提供服务,读者应对组 成图形接口的四个基本要素,即指点设备、窗口、图标和菜单有一定的了解。 用户程序可利用系统提供的一组系统调用命令去调用 OS 内核中的一个(组)过程来完成 自己所需的功能。由于系统调用与一般的过程调用存在着很大的差异,故在使用和实现上有着 下述明显的不同。 2.2.2 作业及作业调度中的概念 1. 应理解作业、作业步、作业控制块、作业控制方式、作业控制语言等基本概念; 2.理解作业的状态及其转换等 3.应理解作业调度的概念、调度算法性能的衡量、调度算法应达到的目标、确定调度算 法时应考虑的因素、常用的作业调度算法等。 2.3 典型例题分析 1.操作系统的接口有哪几种?它们分别适用于哪种情况? 答:操作系统提供的接口主要有: (1)命令接口。它包括脱机命令接口和联机命令接口,其中前者适用于批处理作业用户间接 地控制自己的作业,后者适用于联机用户通过终端命令直接控制自己的作业和管理系统资源