计算机操作系统ComputerOperatingSystem作业管理和用户接口第二章作业管理和用户接口2.1用户与操作系统间的接口2.2作业管理的基本概念2.3作业管理的任务和功能2.4作业的输入与输出2.5作业调度2.6作业控制2.7WindowsXP的用户接口2.1.1程序接口:给程序员编写源程序时使用的接口2.1.2命令接口:给作业控制使用的接口2.1用户与操作系统间的接口接口分类图程序接口:一组系统调用命令命令接口,即作业控制接口,又分为联机用户接口和脱机用户接口2大类,具体见下图2.1用户与操作系统间的接口命令接口(键盘命令、图形化界面、作业控制语言)程序接口(系统调用命令)用户操作系统图2-1操作系统为用户提供的接口计算机它由一组系统调用命令(简称系统调用)组成。这是为程序员通过汇编程序与操作系统打交道而提供的。汇编源程序可直接使用这些命令,高级语言源程序只能使用过程调用语句,编译程序翻译为系统调用命令操作系统的对应模块是:系统调用命令处理程序系统调用所谓系统调用,实质是操作系统提供的一些子程序,用户通过这些称为系统调用命令(特殊指令、广义指令)的命令调用这些子程序,以取得操作系统的服务。通常,操作系统为了满足用户程序的各种需要,提供了功能丰富的系统调用,如文件操作、I/O设备操作、内存管理等2.1.1程序接口系统调用的执行过程用户的源程序语句必须向系统调用命令处理程序提供必要的参数,以便使它根据这些参数进行相应的处理。当用户程序执行到源程序中的系统调用命令时,产生一条相应的指令(有些操作系统称其为访管指令或软中断指令),处理机执行该指令时产生相应的软中断,系统将当前程序的执行现场保护后,转入相应的系统调用处理子程序(管态),去完成特定的系统调用功能。2.1.1程序接口系统调用命令处理程序操作系统的命令接口分为联机命令接口和脱机命令接口联机命令接口(OS对应模块:命令解释器、GUI模块)键盘操作命令内部命令。这类命令的特点是程序短小,使用频繁外部命令菜单驱动方式。图符驱动方式。它是一种面向屏幕的图形菜单选择方式。图形化用户界面。它将菜单驱动、图符驱动、面向对象技术等集成在一起,形成一个图文并茂的视窗操作环境。2.1.2命令接口脱机命令接口或批处理命令接口它是由一组作业控制命令(或称作业控制语言)组成。脱机用户是指不能直接干预作业的运行,而必须事先把要求系统所干的事用相应的作业控制命令写成一份作业操作说明书,连同其作业一起提交给系统的用户。当系统调度到该作业时,由系统的命令解释程序对其操作说明书上的命令逐条解释执行,直至遇到“撤离”命令而停止该作业为止。P9例子OS对应模块:作业控制命令解释程序2.1.2命令接口2.2.1作业、作业步、作业流2.2.2作业的分类2.2作业管理的基本概念作业用户在一次算题过程中或一个事务处理中要求计算机系统所做工作的集合。在一个多道程序的并发系统中,一个作业就是独立于其他作业的计算工作的一个单位。作业步要求计算机系统做的一项相对独立的工作叫做一个作业步,如编辑、编译、链接装配、执行各是一步2.2.1作业、作业步、作业流对作业的处理一般有这样几个作业步:编辑将高级语言源程序通过键盘或别的形式输入计算机,在编辑程序的协助下纠正输入过程中可能出现的错误,从而得到一个新的源程序。编译调用相应的编译程序,对源程序进行编译,产生目标程序。链接装配调入装入模块把编译好的目标程序连接装配成一个可执行代码。运行启动运行目标程序,得出运行结果。2.2.1作业、作业步、作业流这些作业步总是相互关联、且有严格的先后执行次序的。它们之间的关系表现为:一个作业步运行的结果将产生下一个作业步所需要的“文件”。一个作业步能否正确地执行,依赖于前一个作业步是否成功地完成。作业流指顺序装入、运行的一批作业。大的系统可能有几个作业流2.2.1作业、作业步、作业流根据计算机系统对作业处理方式的不同,可把用户作业分为两大类:批量型作业和终端型作业。对批量型作业,根据对其运行过程控制方式的不同,又可分为两种:利用作业说明书实行自动控制方式的作业,即脱机作业;利用控制台键盘操作命令直接控制的作业,即联机作业。终端型作业用户在终端上利用键盘操作命令控制和监督作业的运行,系统把作业运行的情况和结果通过CRT及时反馈给用户。终端型作业通常在分时系统及微机上运行。2.2.2作业的分类2.3.1作业管理的任务2.3.2作业管理的功能2.3作业管理的任务和功能对资源进行描述根据不同资源的特征选取适当的数据结构来描述资源,内容包括资源标识、资源分配特性、资源安全要求、资源分配状况等。对资源进行分配按照一定的分配原则从若干申请资源的作业中选出合适的作业,将作业申请资源的逻辑名与资源的物理地址进行连接,这样用户就能够开始对资源的使用。保证资源使用的安全性如果是共享资源,安全性表现在所以共享该资源的作业相互之间没有不良影响或者越权操作。如果是独享资源,安全性表现在独享资源具有实现临界资源的手段。2.3.1作业管理的任务作业的输入与输出如何组织作业并快速地把输入设备上的作业源源不断地装入高速的后援存储器上,逐步地形成后备作业队列;并且将作业的输出信息组织在输出设备上输出。作业调度在多道程序设计系统中,系统可以同时处理多个作业,因此,系统必须能够按照一定的策略选取若干作业,并将它们调入内存,分配必要的资源,使它们同时处于运行状态,共享系统的有限资源,这就是作业调度。作业控制作业是在操作系统控制下执行的。它包括作业如何输入到系统中,当作业被调度选中后如何控制它的运行,作业在运行过程中发生错误或出现故障时应怎样处理,计算的结果如何输出等。2.3.2作业管理的功能2.4.1早期联机输入输出2.4.2脱机输入输出2.4.3Spooling系统2.4作业的输入与输出在早期的批处理系统中,每个用户将需要计算机解决的计算工作组织成一个作业,交给机房。由操作员把一批作业装到输入设备(如卡片机、纸带机)上,再由cpu运行监督程序送到辅存(早期是磁带),然后再由调度程序从磁带上选择若干个作业投入运行。作业在运行过程中,若需要输出信息,将信息先输出至另一条磁带上,等到磁带上的一批作业全部运行结束后,再将输出带上的信息由输出设备(如打印机)输出。以后再重复上述过程,输入下一批作业。2.4.1早期联机输入输出2.4.1早期联机输入输出脱机批处理系统由主机和卫星机(又称外围计算机)组成。卫星机不与主机直接连接,只与外部设备打交道。卫星机把输入设备上的作业传输到大容量的后援存储器(磁带、磁盘)上,当主机需要输入作业时,就把后援存储器同主机连上。主机直接从后援存储器中调度作业并控制运行,并把运行过程中作业的输出信息以文件形式保存在后援存储器上,等一批作业结束后,将后援存储器重新与卫星机连接,卫星机负责将作业的输出信息从输出设备上向外输出。2.4.2脱机输入输出2.4.2脱机输入输出Spooling系统指脱机I/O不再单独使用卫星机,而是由主机上的通道来完成,并可与主机并行工作,为实现此功能所配置的软件系统。它们和用户进程一样,也受系统调度程序调度运行,但它们的优先级比任何用户进程都高。输入进程负责从输入设备上读入作业,把作业记录在一组盘区中(这组盘区称为作业的输入井)。一个用户作业在运行中有信息要输出时,首先通过文件管理系统组织输出文件,并存于相应的一组盘区中(这组盘区称为作业的输出井)。以后当所要的输出设备有空时,系统通过调度Spooling输出进程把输出文件从输出井传送到相应的输出设备。2.4.3SPOOLing系统2.4.3SPOOLing系统图2-5SPOOLing系统输入设备输入设备通道外存输出井输入井输出设备输出设备通道主机系统通道输入管理模块输出管理模块Spooling系统补充说明通道:可以看做是小CPU,指令系统简单,主要是输入输出相关的指令在增加了通道的主机系统中,磁盘也是通过一种类型的通道连接内存的,图中的主机系统指内存+CPUSpooling输入模块配合设备驱动程序,在CPU上运行,从而产生和输入设备相连的通道的程序,放入内存并通知输入通道运行该程序,从而控制输入装置将作业输入到输入井由于输入进程在主机系统中,因此支持用户动态提交作业,源源不断地送入系统2.5.1作业的状态2.5.2作业控制块2.5.3作业调度的功能及调度性能的衡量2.5.4作业调度算法2.5作业调度一个作业在进入系统到运行结束的生命期内,一共有四种状态:提交状态作业处于从输入设备进入输入井的过程中。后备状态作业全部进入输入井后,系统为每个作业建立作业控制块,并把其JCB放入作业后备队列,为作业调度做准备。运行状态一个作业被作业调度程序选中而进入主存开始运行,到作业计算完成为止,这时,作业宏观运行,实质可能是就绪、执行或等待完成状态当作业正常运行完成或因故障而终止时,作业进入完成状态。2.5.1作业的状态2.5.1作业的状态系统中往往有很多批处理作业被收容在磁盘输入井中,为了管理和调度这些作业,就必须记录已进入系统的各作业的情况,为此,系统为每个作业设置一个作业控制块(记为JCB,JobControlBlock),记录作业的有关信息。作业存在的整个过程中,相应的JCB也存在,只有当作业退出系统时,JCB才被撤消。JCB是一个作业存在的标志。2.5.2作业控制块作业调度又称为高级调度或宏调度,是按照某种调度算法从所有处于后备状态的作业队列中挑选一个或多个作业进入主存中运行作业调度还要为选中的作业分配资源,做好作业运行前的准备。完成作业调度的程序称为作业调度程序。作业调度在多道批处理系统中是非常必要的2.5.3作业调度的功能及调度性能的衡量作业调度程序的功能按照系统选定的调度算法,从后备作业队列中选取一个或多个作业。为被选中的作业分配运行时所需要的系统资源。如分配主存和外设资源。为被选中的作业开始运行做好一切准备工作。如将作业的后备状态改为运行状态等。作业正常运行完成或因故障而中断需要撤离系统时,作业调度程序还要完成作业的善后处理工作。2.5.3作业调度的功能及调度性能的衡量作业i的周转时间Ti定义为:Ti=Tei-Tsi(其中Tei为作业i的完成时间,Tsi为作业i的提交时间);n个作业的平均周转时间T为:T=(T1+T2+…+Tn)/n作业i的带权周转时间Wi定义为:Wi=Ti/Tri(其中Tri为作业i的实际运行时间)n个作业的平均带权周转时间W为:W=(W1+W2+…+Wn)/n2.5.3作业调度的功能及调度性能的衡量先来先服务调度算法(FIFO/FCFS)短作业优先调度算法(SJF)响应比高者优先调度算法优先数调度算法2.5.4作业调度的算法2.5.4作业调度的算法-FCFS先来先服务(FCFS,FirstComeFirsServe)调度算法是按作业来到的先后次序进行调度的。作业号提交时间运行时间18.02.028.50.539.00.149.50.22.5.4作业调度的算法-FCFS作业提交时间运行时间开始时间完成时间周转时间带权周转时间18.02.08.010.02.01.028.50.510.010.52.04.039.00.110.510.61.616.049.50.210.610.81.36.5平均周转时间T=(2.0+2.0+1.6+1.3)/4=1.725平均带权周转时间W=(1.0+4.0+16.0+6.5)/4=6.875短作业优先调度算法是依据每个作业的JCB中提供的运行时间,每次调度作业时,总是选取运行时间最短的作业运行。这种算法对短作业有利,作业的平均周转时间最佳,也容易实现,但它不考虑长作业的利益,有可能使长作业得不到运行的机会。2.5.4作业调度的算法-SJF2.5.4作业调度的算法-SJF作业提交时间运行时间开始时间完成时间周转时间带权周转时间18.02.08.