美文网首页
作业管理

作业管理

作者: sHuXnHs | 来源:发表于2018-06-16 01:08 被阅读0次

    作业管理

    1.作业的概念:用户一次解题过程中要求计算机所做工作的集合
    2.作业执行步骤:编辑$\rightarrow$编译$\rightarrow$链接$\rightarrow$运行


    作业步

    3.作业的控制方式

    批处理控制
    用户使用作业控制语言写出一份“作业控制说明书”(为了让操作系统自动控制执行),然后将源程序与数据交给操作系统,操作系统就按照用户的说明来控制作业的执行。
    交互式控制
    用户使用操作控制命令写出作业执行的控制意图。执行的时候,用户需要逐条输入命令,每接到一条命令,就根据命令要求来执行对作业的控制,直到结束(体现出交互性)。

    4.作业管理步骤

    $$管理步骤 \begin{cases}
    \text{作业输入(装入辅存输入井,形成后备作业队列)}\
    \text{作业调度(将作业装入主存运行)}\
    \text{作业控制(批处理控制、交互式控制)}
    \end{cases}$$

    作业输入

    1.作业控制语言

    作业控制语言的功能:
    作业的提交
    控制作业和作业步的执行
    各种软硬件资源的使用
    作业控制语言的要求:
    描述用户作业的基本情况(含用户名、作业名、使用的编程语言名、允许的最大处理时间等)
    描述资源需求(含需求的主存大小、外设种类及台数、处理器优先级、所需运行时间、需求库函数等)
    描述用户对作业执行的控制要求(作业的控制方式、作业步的执行顺序、作业的异常处理等)

    2.作业控制块JCB(类比之前的PCB\TCB)
    (1)作业控制块JCB是批处理作业存在的标志(PCB是进程在系统中存在的标志)。
    (2)JCB包含作业名、作业状态、作业类别、作业优先级、作业控制方式、资源需求量、进入系统时间、开始运行时间、运行时间、作业完成时间、所需主存地址和外设种类及台数。
    (3)JCB建立$\rightarrow$使用$\rightarrow$撤销
    作业输入到输入井时建立,作业完成后有系统输出程序撤销,作业随即也撤销。
    (4)所有作业的JCB构成一个作业表放于辅存的固定区域中。
    (5)系统输入程序、作业调度程序、系统输出程序都需要访问作业表,因而存在互斥问题。

    3.作业输入步骤
    批处理作业输入是将作业的源程序、初始数据、作业控制说明书通过输入设备输入到辅存并完成初始化的过程

    st=>start: 预输入命令
    e=>end: 结束
    op1=>operation: 作业信息存放到“输入井”中
    op2=>operation: 把作业登记到作业表中,并把作
    业中的各个文件存到“输入井”中
    op3=>operation: 被输入的作业处于“后备状态”,等待处理
    
    
    st->op1->op2->op3->e
    
    

    作业调度

    1.作用:
    (1)按照某种调度算法从后备作业队列中选取作业。
    (2)为被选中的作业分配主存和外设资源。
    (3)为选中的作业开始运行做好一切准备工作。如:修改作业状态为运行态,为运行作业创建进程,构造和填写作业表。
    (4)在作业运行完成或由于某种原因需要撤离系统时,还要完成作业的善后处理工作:包括回收分给它的全部资源,为输出必要信息编制输出文件,撤销该作业的全部进程和作业控制块等,最终将其从现行作业队列中删除。

    2.作业状态

    作业状态转换图

    (1)提交状态:一个作业经过输入设备进入到输入井 ,系统为其建立作业控制块。这时的作业处于提交状态。
    (2)后备状态:系统将已进入输入井的作业插入到输入井后备队列中,等待作业调度程序的调度运行,这时的作业处于后备状态。
    (3)运行状态:处于后备状态的作业被作业调度程序选中进入主存,系统就为它分配必要的资源,建立相应的进程,这时处于运行状态。
    (4)完成状态:作业完成其全部运行并释放其所占全部资源而正常结束或异常终止时,此时就处在完成状态。此时作业调度程序对该作业进行一系列善后处理,并退出系统。
    3.影响因素
    公平性 均衡使用资源 提高系统吞吐量 平衡系统和用户需求

    3.作业调度算法

    性能指标
    CPU利用率:有效运行时间与总的运行时间之比
    吞吐能力:单位时间内完成作业的数量
    周转时间:作业提交输入井到作业完成的时间(等待作业调度的时间+等待进程调度的时间+CPU执行的时间+进程等待I/O操作完成的时间)
    平均周转时间T:所有作业周转时间的平均值
    平均带权周转时间W:作业的周转时间与作业的运行时间之比
    T和W越小,系统对作业的吞吐量越大,系统的性能越高

    (1)先来先服务算法FCFS(与进程调度一样)
    注意:不是先进入后被作业队列就有一定先被选中,还要根据资源的分配情况来决定。
    FCFS有利于长作业,不利于短作业,但是大多数的作业是I/O繁忙的短作业。


    (2)短作业优先算法SJF
    就是先预估需要的运行时间$\longrightarrow$在作业控制说明书说明$\longrightarrow$后备队列中选取运行时间最短的作业调入主存运行

    注意
    1未考虑作业的紧迫程度
    对长作业不利
    考虑进入时间,第一个来了就执行,执行完后按时间短的优先选择

    短作业优先算法实例



    (3)响应比最高者优先算法HRRF
    响应比=$ \frac{作业响应时间}{作业运行时间} $ = $ \frac{作业等待时间+作业运行时间}{作业运行时间} $ (与带权周转时间的计算方式一样)
    优点:
    运行时间越短响应比越大,有利于短作业
    长作业等待时间长的时候,响应比会随之增大,不至于发生饥饿现象

    饥饿与死锁的区别
    饥饿是指系统不能保证某个进程的等待时间的上界,从而使进程长时间等待,当等待时间给进程和响应带来显著影响时,称发生了进程饥饿
    死锁是指在多道程序中,一组进程中的每一个进程都在无限期等待该组进程中的另一个进程所占有且永远不会释放的资源
    死锁等待的是永远不会被释放的资源,饥饿等的是会被释放但是不会分配给自己的资源(等待时间无上界)
    死锁涉及多个进程,饥饿可能只有一个进程

    响应比最高优先算法


    (4)优先数调度算法 (与进程调度一样)
    优先数确定原则:
    $\Delta$要求紧迫的优先数高
    $\Delta$I/O量大的作业优先级高,CPU量大的作业优先级低



    (5)分类调度算法|均衡调度算法
     算法根据系统运行情况和作业对资源的需求先将作业进行分类,然后作业调度程序轮流从不同的作业类中去挑选作业,尽可能使得使用不同资源的作业同时执行
     根据作业性质分为:计算量大的作业队列;I/O量大的作业队列;计算量与I/O量均衡的作业队列

    4.作业调度与进程调度
    作业调度是高级调度(批处理作业运行的前提),进程调度是低级调度(作业调度的后续)
    作业调度周期长速度慢花费时间长,进程调度频率快速度快花费时间短

    多级调度模型图

    作业控制

    批处理作业(脱机作业)的管理

    批处理作业=源程序+初始数据+作业控制说明书

    作业步的处理
    作业步的处理可细分为:
    (1)建立子进程;
    (2)为该子进程申请系统资源和外设资源等;
    (3)访问该作业的作业控制块;
    (4)子进程执行结束并释放其占有的全部资源;
    (5)撤销子进程等。

    作业执行流程图

    批处理作业的撤销:
    (1)报告用户作业是正常终止还是异常终止,若是正常终止,则把结果输出;
    (2)回收作业占据的全部资源,包括主存空间、外设及打开的数据文件等;
    (3)释放该作业的作业控制块;
    (4)注消该作业。

    交互式作业(联机作业)的管理

    交互式作业的控制命令:
    (1)作业控制命令:包括作业程序的建立、修改、编译、链接和运行等。
    (2)文件的各种操作命令:该类命令实现对用户文件和目录的控制,包括新建、修改、删除、显示和输出等。
    (3)目录操作命令:该类命令实现对用户目录的控制,包括新建目录、删除目录和修改目录的权限等。
    (4)资源申请命令:该类命令包括对各种外设的使用和重定向。

    批处理作业与交互式作业的对比

    处理作业需要经历作业调度和进程调度才能获得处理器,交互式作业只需要进程调度

    相关文章

      网友评论

          本文标题:作业管理

          本文链接:https://www.haomeiwen.com/subject/jiuveftx.html