操作系统 调度和用户接口 (一)
一、作业的组织和管理
什么是作业(Job)?
用户角度:在一次算题过程中或者一个事务处理过程中从输入程序和数据到输出结果,要求计算机系统所作工作的总和。
系统角度(批处理系统):作业由程序、数据和作业说明书组成的,系统的任务是针对作业进行资源分配。
教材中的定义:作业是用户在一次算题过程中或者一个事务处理过程中要求计算机系统所做工作的总和,它是用户向计算机系统提交一项工作的基本单位。为理解方便我们可以将作业看作是一个任务。
例子:到ATM机取款(作业)
可能的步骤
这里的步骤是作业步
作业步:在作业的处理过程中,计算机所做的相对独立的步骤。
一个作业就是由这些顺序相连的作业步组成的。
作业的组成
作业由程序、数据和作业控制信息(作业说明书)三部分组成。
作业说明书主要提供给批处理作业用户使用,它体现用户对作业的控制意图,包括:
作业基本情况:用户名、作业名、编程语言、最大处理时间等。
作业控制描述:作业控制方式、作业步的操作顺序、作业执行出错处理。
作业资源要求描述:处理时间、优先级、内存空间、外设类型和数量、实用程序要求等。
作业说明书要使用专门的作业控制语言(JCL)书写。
作业调度
系统调度一般分为三种:高级调度,中级调度,低级调度。
作业调度属于高级调度,也成为宏观调度,其功能为:检查系统是否满足作业的资源要求,并按一定算法选取作业。
当作业调度程序选择到一个作业时,作业只是有资格获得处理机,但不一定立刻就能占有运行。何时能够真正运行由进程调度策略决定。
作业的处理过程
作业的输入/输出方式
作业的输入:指把作业从输入介质上送入系统并加以组织,在磁盘上形成一个后背作业的过程。
作业的输出:指将作业执行的结果由系统经输出设备输出的过程。
分类:联机输入/输出:由主机(CPU)直接控制输入/输出。效率低下,资源不能得以充分利用。
脱机输入/输出:介绍如下
脱机输入/输出采用人工干预方式:主要用于早期批处理系统,由于主机和外围处理机之间采用的是手工操作方式,因此效率依然不高,而且收到很多限制。
SPOOLing系统
即外围设备同时联机操作,又称为假脱机。兼具脱机和联机方式的优点,可以实现联机方式下的主机和外围设备的同时工作。
技术基础:多道程序设计技术,通道技术
通道技术:外设和主机之间数据传送的一种方式
思想:利用一个进程来模拟脱机输入时的外围控制机的功能,把低速I/O设备上的数据传送到高速磁盘上;同时再利用另一个进程来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上,这样,,便可在主机的直接控制下,实现脱机输入、输出功能。
SPOOLing系统的优点
提高了I/O速度,类似脱机输入/输出,缓和CPU和I/O速度之间的矛盾。
将独占设备改造为共享设备。SPOOLing系统中所谓的设备分配只是在输入输出井中分配一个存储区和建立一张I/O请求表而已。
实现了虚拟设备功能,多个进程共享一台独立设备。
作业注册(作业录入)
为每个作业创建作业控制块(JCB)
JCB是系统中作业存在的唯一标志,是系统为管理作业设置的一个数据结构,里面记录有与作业相关的各种信息,只有当作业退出系统时,JCB才被撤销。
JCB内容:
标识信息:作业名,用户名,用户账号
状态信息:提交、后备、执行、就绪、等待、完成
调度参数:优先级
资源需求量;
其他控制信息
将作业放入作业后备队列
调度算法的评价因素
吞吐量:单位时间内CPU完成作业的数量
CPU利用率:从0%~100%。
周转时间:评价批处理系统的性能指标。
周转时间:
T=作业完成时刻-作业提交时刻
例如:作业8:00提交,执行时间为1小时,10:00运行结束,
则其周转使劲啊T=10:00-8:00=2(hours)
平均周转时间
周转系数(带权周转时间)
W=T/作业执行时间
例如上面的作业的周转系数W=2/1=2
平均周转系数:
调度算法的选择
1、面向用户的准则和评价
1)周转时间段
2)响应时间快
3)截止时间的保证
4)优先权准则
2、面向系统的准则
1)达到系统设计目标
2)系统吞吐量大
3)处理机利用率高
4)各类资源的平衡利用
调度的方式:
非抢占方式:
采用这种调度方式时,一旦把处理机分配给某进程后,便让进程一直执行,直到该进程完成或发生某事件而被阻塞时,才把处理机分配给其他进程,绝不允许某进程抢占已经分配出去的处理机。
这种调度方式的优点是实现简单、系统开销小,适用于大多数批处理系统环境。缺点是难以满足紧急任务的要求,不适用于实时、分时系统要求。
抢占方式:
这种调度方式,允许进程调度程序根据某个原则,去停止某个正在执行的进程,将已分配给进程的处理机,重新分配给另一个进程。抢占的原则有:
时间片原则
优先权原则
调度算法
单道批处理系统作业调度算法
单道批量处理系统中作业调度的主要任务是有效地实现作业之间衔接,尽量提高系统资源利用率,减少操作人员的干予。在单道批量处理中,通常采用下述三种算法:
1、先来先服务算法:
思想:按作业到达的先后顺序进行调度,
优点:非常简单
缺点:没有考虑作业的执行时间,不利于短作业的执行。
2、短作业优先调度算法
思想:优先调度要求运行时间最短的作业。
优点:可以有效降低作业的平均等待时间,提高系统吞吐量。
缺点:对长作业不利,可能会发生“饥饿”现象。
3、响应比高者优点调度算法
思想:为每个作业设置一个优先权(响应比),调度之前先计算各作业的优先权,优先数高者优先调度。
优点:既照顾了短作业,也考虑到了作业到达先后顺序,并克服了长作业的饥饿现象,是一种较好的折中算法。
缺点:每次调度前需要对所有作业计算优先权。
下面介绍一下响应比到底怎么计算,响应比我们简称为RP。
RP=作业响应时间/作业运行时间
=(作业等待时间+作业运行时间)/作业运行时间
=1+作业等待时间/作业运行时间
从中我们可以看出:
1)如果作业等待时间相同,则运行时间越短,其RP值越高
2)如果运行时间相同,则作业等待时间越长,RP值 越高。
多道批处理系统作业调度算法
在多道批量处理系统中,为提高处理机的利用率,改善主存和I/O设备的利用情况,作业调度程序可以选择多个作业同时执行,通常采用以下两种作业调度算法:
优先级调度算法:为了照顾时间要求紧迫的作业和I/O繁忙的作业,系统为作业设置优先级,并根据优先级进行调度。
均衡调度算法:这种算法的基本思想是根据系统的运行情况和作业本身的特性对作业进行分类,作业调度程序轮流地从这些不同类别的作业中挑选作业执行。这种算法力求均衡地使用系统的各种资源,即注意发挥系统效率,又使用户满意。
多道程序环境下作业调度的性能:
假设一个两道作业的批处理系统,现有4个作业,提交时刻、执行时间分别如下:
调度过程分为两步:
1)作业调度:假设在此使用短作业优先调度算法
2)处理机调度:采用抢占式优先级调度算法,规定短作业享有较高优先级。
作业被调度程序选中后进入内存,但并不一定执行,两道作业指的是内存中一次可以放两个作业,不是cpu同时处理两个作业
进程可以抢着占用cpu,但作业不可抢着进入内存。