作业与作业调度

在多道批处理系统中,作业是用户提交给系统的一项相对独立的工作。操作员把用户提交的作业通过相应的输入设备输入到磁盘存储器,并保存在一个后备作业队列中。再由作业调度程序将其从外存调入内存。

1. 先来先服务(first-come first-served,FCFS)调度算法  FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程。然后把它放入就绪队列。

2. 短作业优先(short job first,SJF)的调度算法   由于在实际情况中,短作业(进程)占有很大比例,为了能使它们能比长作业优先执行,而产生了短作业优先调度算法。  1) 短作业优先算法  SJF算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。SJF算法可以分别用于作业调度和进程调度。在把短作业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行。2) 短作业优先算法的缺点  SJF调度算法较之FCFS算法有了明显的改进,但仍然存在不容忽视的缺点:  (1) 必须预知作业的运行时间。在采用这种算法时,要先知道每个作业的运行时间。即使是程序员也很难准确估计作业的运行时间,如果估计过低,系统就可能按估计的时间终止作业的运行,但此时作业并未完成,故一般都会偏长估计。  (2) 对长作业非常不利。长作业的周转时间会明显地增长。更严重的是,该算法完全忽视作业的等待时间,可能使作业等待时间过长,出现饥饿现象。(3) 在采用FCFS算法时,人—机无法实现交互。  (4) 该调度算法完全未考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理。

3. 优先级调度算法(priority-scheduling algorithm,PSA)  基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据该优先级调度的。这样,就可以保证紧迫性作业优先运行。 优先级调度算法可作为作业调度算法,也可作为进程调度算法。当把该算法用于作业调度时,系统是从后备队列中选择若干个优先级最高的作业装入内存。

4. 高响应比优先调度算法(Highest Response Ratio Next,HRRN)   为每个作业引入一个动态优先级,即优先级是可以改变的,令它随等待时间延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。

posted on 2022-04-08 14:35  只爱敲代码  阅读(108)  评论(0编辑  收藏  举报

导航