操作系统作业管理练习及答案
??##一、作业管理概述
(一)作业的概念
作业是用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需的数据及命令等。例如,用户编写一个程序,从输入数据开始,经过编译、链接,最后运行得到结果,这整个过程就构成了一个作业。
(二)作业管理的功能
作业管理主要负责作业的调度与控制。它的功能包括作业的输入、作业的组织与存储、作业的调度、作业的执行以及作业的输出等。
1.作业输入:将用户提交的作业通过各种输入设备(如键盘、磁盘等)送入计算机系统。
2.作业组织与存储:对输入的作业进行合理的组织和存储,以便后续处理。通常会将作业存放在外存(如磁盘)中,等待调度执行。
3.作业调度:从后备作业队列中选择若干个作业调入内存,为它们分配资源,建立进程,使它们能够竞争CPU运行。
4.作业执行:按照作业控制说明书的要求,由操作系统控制作业进程的执行,包括CPU的分配、内存的使用、I/O设备的操作等。
5.作业输出:将作业的执行结果通过输出设备(如打印机、显示器等)输出给用户。
##二、作业控制块(JCB)
(一)JCB的定义
作业控制块是作业在系统中存在的唯一标志,它包含了作业的基本信息、资源需求信息、作业的状态信息等。每个作业都有一个对应的JCB,操作系统通过JCB来管理作业。
(二)JCB的内容
1.作业标识:用于唯一标识一个作业,通常由用户提供或系统自动生成。
2.用户标识:标识作业的所有者。
3.作业类型:如计算型作业、I/O型作业等。
4.作业状态:包括提交、后备、运行、完成等状态。
5.优先级:表示作业的重要程度,优先级高的作业优先得到调度。
6.预计运行时间:作业预计需要的CPU运行时间。
7.所需资源:作业执行所需的各种资源,如内存大小、I/O设备等。
8.作业开始时间:作业开始执行的时间。
9.作业结束时间:作业执行完毕的时间。
(三)JCB的作用
1.操作系统通过JCB了解作业的各种信息,从而进行作业的调度和管理。
2.当作业的状态发生变化时,操作系统根据JCB中的信息进行相应的调整。
3.JCB是作业在系统中流转的重要依据,它记录了作业从提交到完成的整个过程。
##三、作业调度算法
(一)先来先服务(FCFS)算法
1.算法描述:按照作业到达的先后顺序进行调度,先到达的作业先被调度执行。
2.优点:算法简单,实现容易。
3.缺点:可能会使短作业等待时间过长,不利于系统整体效率的提高。
4.示例:假设有三个作业J1、J2、J3,它们的到达时间分别为0、1、2,运行时间分别为2、1、3。按照FCFS算法,调度顺序为J1、J2、J3。J1在0时刻开始运行,2时刻结束;J2在2时刻开始运行,3时刻结束;J3在3时刻开始运行,6时刻结束。
(二)短作业优先(SJF)算法
1.算法描述:优先调度运行时间短的作业。
2.优点:能使平均周转时间最短,提高系统效率。
3.缺点:对长作业不利,可能会使长作业长时间得不到调度,而且需要事先知道作业的运行时间。
4.示例:对于上述三个作业J1、J2、J3,按照SJF算法,调度顺序为J2、J1、J3。J2在1时刻开始运行,2时刻结束;J1在2时刻开始运行,4时刻结束;J3在4时刻开始运行,7时刻结束。
(三)优先级调度算法
1.算法描述:根据作业的优先级进行调度,优先级高的作业优先得到调度。
2.优点:可以根据作业的重要程度合理分配资源,提高系统的整体性能。
3.缺点:确定优先级的方法比较复杂,如果优先级设置不合理,可能会导致某些作业长期得不到调度。
4.示例:假设作业J1、J2、J3的优先级分别为3、2、1。按照优先级调度算法,调度顺序为J1、J2、J3。
(四)高响应比优先调度算法
1.算法描述:响应比=(等待时间+运行时间)/运行时间。每次调度时,计算每个作业的响应比,选择响应比最高的作业进行调度。
2.优点:综合考虑了作业的等待时间和运行时间,既照顾了短作业,又不会使长作业等待时间过长。
3.示例:假设有作业J1到达时间为0,运行时间为2;作业J2到达时间为1,运行时间为1。在2时刻,J1已经等待了2分钟,J2等待了1分钟。J1的响应比=(2+2)/2=2,J2的响应比=(1+1)/1=2。此时可以随机选择一个作业,假设选择了J1。在J1运行结束后,J2的响应比会随着等待时间的增加而不断提高,当有新的作业到达时,再重新计算响应比进行调度。
##四、练习题目
(一)选择题
1.作业调度的关键在于()
A.选择恰当的进程管理程序
B