1、第5章 作业管理及批处理作业 Chapter 5 Job Management and Patch Operation,教学要求,本章目的: 主要讨论操作系统如何组织作业,如何控制和调度多个作业。 教学目标: 掌握操作系统接口、作业的概念;了解作业管理的功能及状态转换;掌握批处理作业的程序接口、作业组织、作业控制和调度。 重点与难点: 作业的概念;批处理作业的程序接口、作业控制。 专业术语: 作业、作业控制块、作业的状态,Agenda,5.1 操作系统接口概述 5.2 作业、作业步和作业流 5.3 作业管理的功能 5.4 作业的状态及其转换 5.5 批处理作业,5.1 操作系统接口概述,现代操
2、作系统为用户提供了三类接口:作业控制级接口、程序级接口、图形用户接口。 作业控制级接口(命令接口)。为用户提供各种命令来组织作业的工作流程和控制作业的运行。 脱机用户接口。由一组作业控制命令(即作业控制语言)组成,用以描述用户对作业运行的控制意图。当系统执行该作业时,按作业说明书上的作业控制语言,逐条解释执行。 现在,在UNIX/Linux中,则将运行和控制命令放到Shell文件之中。由操作系统读取这些命令,并依照执行,从而完成作业。 联机用户接口,也叫交互式命令接口。提供一组联机命令,以实现用户与计算机之间的交互,即允许用户在终端上键入命令并启动命令运行,以获得操作系统的服务,并控制自己程序
3、的运行。,作业管理及批处理作业,5.1 操作系统接口概述,程序级接口。由一系列的系统调用命令(函数)组成。利用系统调用命令,用户可在程序中调用操作系统所提供的一些子功能,对资源和硬件设备的使用以及作业的执行提出各种请求,并取得系统的服务。 图形用户接口。随着图形界面的广泛应用,以窗口系统与菜单驱动的操作交互方式逐渐流行起来,也为使用计算机系统的用户提供对计算机直观、方便、快捷的操作方式。,作业管理及批处理作业,5.2 作业、作业步和作业流,作业。作业是用户在一次算题过程中或一个事务处理中要求计算机系统所做的工作的总和,也是用户向计算机系统提交任务的基本单位。作业在结构上应包括程序、数据和作业控
4、制意图。 作业步。一个作业需要若干步才能完成。我们把计算机系统为完成作业的一部分特定工作而执行的相对独立的步骤称为作业步。 作业流。在批处理系统中,系统管理员通常把用户的若干作业依次安置在相应的输入设备上,在系统控制下,依次输入到辅存中,形成作业流。,作业管理及批处理作业,5.3 作业管理的功能,作业管理的基本功能有两个,即作业调度与作业控制。 作业调度 在多道程序设计系统中,系统可以同时处理多个作业,因此,系统必须能够按照一定的策略选取若干作业,并将它们调入内存,分配必要的资源,使它们同时处于运行状态,共享系统的有限资源。 作业调度通过调度算法选择其中之一或若干作业,使之投入运行。好的调度算
5、法既要能提高系统效率,也应能使进入系统的作业及时得到计算机结果。,作业管理及批处理作业,5.3 作业管理的功能,作业控制 作业是在操作系统控制下执行的。它包括作业如何输入到系统中,当作业被调度选中后如何控制它的运行,作业在运行过程中发生错误或出现故障时应怎样处理,计算的结果如何输出等等。 为了对作业进行有效的控制和管理,必须记录各作业的情况,系统为每个作业配置了一个作业控制块(JCB),并将所有作业的作业控制块组织成作业控制块表或队列。 作业和作业控制块一一对应,系统通过作业控制块感知作业的存在。系统在作业进入后备状态时就为它创建JCB,当作业在系统是状态发生变化时,都需及时修改JCB,当作业
6、执行完毕进入完成状态时,系统根据JCB释放有关资源,撤消JCB和作业。,作业管理及批处理作业,5.4 作业的状态及其转换,在批处理系统中,一个作业从进入系统到运行结束,一般需要经过提交、收容、执行和完成四个阶段。作业在这四个阶段中分别处于提交状态、后备状态、执行状态和完成状态。,作业管理及批处理作业,5.4 作业的状态及其转换,提交状态。用户在上机解题前事先准备好作业,包括程序、数据及作业说明书,将它们制成卡片或纸带信息,然后提交给计算中心。此时,作业处于提交状态。 后备状态。作业提交后,系统操作员将用户的作业卡片或纸带,通过脱机输入或SPOOLing系统输入到系统磁盘的相应盘区(即输入井)中
7、,系统为这些作业建立作业控制块JCB,以便对作业进行管理。此时,这些作业被插入到后备作业队列中,并等待被调度执行,处于后备状态。这一过程称为收容阶段,也称为作业注册。,作业管理及批处理作业,5.4 作业的状态及其转换,运行状态。当一个后备作业被作业调度选中,并且分配了必要的资源后,系统为它创建一组进程,作业就进入了执行状态。在宏观上讲,作业调入内存后就进入了“运行状态”,但在微观上讲,作业的进程可能被进程调度程序选中而在CPU上运行,也可能在运行中因等待I/O或某个事件的发生而处于阻塞状态,也可能因等待CPU而处于就绪状态,因而处于不同的进程状态。实际上,进程的状态是对作业运行状态的细化。因此
8、,作业调度也称为宏观调度或高级调度,而进程调度又称为微观调度或低级调度。 完成状态。当作业正常运行完毕或因发生错误而异常结束时,作业便进入完成状态。作业调度程序将撤销该作业的作业控制块,回收所分配的资源,将作业的运行结果编入输出文件,并将文件送到输出井中,最后由SPOOLing系统完成输出。,作业管理及批处理作业,5.5 批处理作业,5.5.1 程序接口 程序接口是提供给用户在编程时使用的接口,也称系统调用。通过这些接口,用户在程序中可以调用操作系统所提供的一些子功能,以完成特定的功能。 系统调用是一种特殊的功能调用,它通过访管指令或软中断的方式,中断现行程序的执行,转去执行操作系统所提供的子
9、程序,完成特定的系统功能,然后控制又返回到系统调用命令之后的一条指令处,被中断的程序将继续执行。,作业管理及批处理作业,5.5 批处理作业,Linux操作系统中的系统调用 目前流行的Linux操作系统是Unix的一个变种,它功能强大,为用户提供了众多系统调用,大致上可分为进程控制、文件管理、进程通信和系统维护等几方面。 进程控制 创建进程fork( ) 查询进程标识getpid( ) 结束进程exit(status) 等待子进程结束wait( ) 执行一个文件exec( ) 文件管理 创建文件creat( ) 打开文件open( ) 读文件read( ) 写文件write( ) 进程通信 获得
10、消息队列msgget( ) 发送消息mdgsend( ) 接收消息msgrev( ) 系统维护 设置时间stime( ) 查询时间time( ),作业管理及批处理作业,5.5 批处理作业,5.5.2 批量型作业的组织结构 一个批量型作业,原则上由作业申请与作业体组成。 作业申请一般用作业控制语句进行描述 作业体是用户向系统提交的一个实体 5.5.3 作业控制 作业必须由用户用作业控制语言(命令)来规定如何控制作业的运行。 在UNIX操作系统中,作业控制语言主要是以文本配置文件和shell命令语言为主要语言。在DOS操作系统中是采用以.bat为后缀的批处理文件的方式将作业控制命令和运行命令存入其
11、中的方式。,作业管理及批处理作业,5.5 批处理作业,5.5.3 作业的输入与输出 脱机输入输出技术。由外围机单独完成。 SPOOLing系统引入通道技术,使外围设备同时联机操作。它把作业的输入输出交给主机与通道共同承担。系统开工后,输入进程负责从卡片或纸带读入器上读入用户作业,并通过通道将作业送入后援存储器中指定的盘区(即输入井)中;作业调度程序直接从输入井中选择作业,并将其投入运行;作业运行时,需要输出的结果及有关信息由文件系统组织成输出文件,存入后援存储器指定的盘区(即输出井)中;在输出设备空闭时,输出进程从输出井取出输出文件,并通过通道将将它们送输出设备输出。,作业管理及批处理作业,5
12、.5 批处理作业,5.5.4 作业调度 作业调度,就是要按照某种策略,从后备作业队列中选择一个或几个作业投入运行,在作业完成后作善后处理工作。 调度性能评价。其可采用的指标有:CPU利用率、吞吐量、周转时间、就绪等待时间、响应时间等。 常见的作业调度算法 先来先服务调度算法。根据作业进入系统(即到达输入井)的先后次序来选择作业。算法简单,容易实现,但效率较低。 短作业优选调度算法。以作业进入系统时所提出的“运行时间”为依据,总是优先选取要求运行时间最短的作业投入运行。 响应比高者优先调度算法。响应比是指作业响应时间与作业等待时间之比 。在每次作业调度时计算所有后备作业的响应比,然后选择响应比最
13、高的作业投入运行。采用这种算法,短作业等待较短的时间就可获得较高的响应比,所以得到优待;而长作业只要等待足够长的时间也能得到较高的响应比,所以不会被无限制地推迟。,作业管理及批处理作业,5.5 批处理作业,5.5.4 作业调度 常见的作业调度算法 优先级调度算法。在每次作业调度时计算和检查所有后备作业的优先级(一般以优先数形式表示),然后选择优先级最高的作业投入运行。 均衡调度算法。根据作业的资源要求等特性和系统的当前运行情况,将作业分成若干类,调度程序轮流地从不同类别的作业中挑选作业,尽可能地使得使用不同资源的若个作业同时运行。这样,不仅使系统资源得到均衡的利用,提高了系统的效率,又可减少使用同类资源的作业相互间的等待,从而加快了执行的速度,具有较好的用户满意度。,作业管理及批处理作业,