写在前面:
- 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
- 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili
一、作业和进程的关系
(1)本质区别:
作业是用户向计算机提交任务的任务实体。
进程是完成用户任务的执行实体,是资源分配的基本单位。
没有作业任务,进程无事可干;没有进程,作业任务没法完成。
(2)存储位置:
作业建立完毕后,放在外存等待运行。
进程一经创建,总由相应的部分存于内存。
(3)组成关系:
一个作业可由多个进程组成,且必须至少由一个进程组成,反之则不然。
(4)术语应用范围:
作业的概念更多地用在批处理系统中。
进程的概念几乎可以用在所有的多道程序系统中。
二、作业调度的主要任务
作业调度的主要任务是根据JCB(作业控制块)中的信息,检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程排在就绪队列上等待调度。在每次执行作业调度时,都需做出以下两个决定:
①接纳多少作业。在每一次进行作业调度时,应当从后备队列中选取多少作业调入内存,取决于多道程序度,即允许多少个作业同时在内存中运行。
②接纳那些作业。应选择后备队列中的哪些作业调入内存,取决于所采用的调度算法。
在批处理系统中,作业进入系统后,总是先驻留在外存的作业后备队列上,因此需要有作业调度,以便将它们分批地装入内存;在分时系统中,为了做到及时响应,用户通过键盘输入的命令或数据等都被直接送入内存,因而无需配置上述的作业调度机制,因也需要有某种接纳控制措施来限制进入系统的用户数目;在实时系统中也不需要作业调度,而必需具有接纳控制措施。
三、先来先服务调度算法和短作业优先调度算法
1、先来先服务调度算法(FCFS)
(1)FCFS算法是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。
(2)当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中选择几个最先进入该队列的作业,将它们调入内存,为它们分配资源和创建进程,然后把它们放入就绪队列。
(3)FCFS算法比较有利于长作业/进程(CPU繁忙型作业/进程),而不利于短作业/进程(I/O繁忙型作业/进程)。
(4)举例:
2、短作业优先调度算法(SJF)
(1)SJF算法可以分别用于作业调度和进程调度(用于进程调度时称为短进程优先算法,简称SPF算法),它能有效地降低作业的等待时间,提高系统吞吐量。
(2)SJF算法以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。在把短作业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行。
(3)短作业优先算法的缺点:
①必须预知作业的运行时间。在采用这种算法时,要先知道每个作业的运行时间,但即使是程序员也很难准确估计作业的运行时间,如果估计过低,系统就可能按估计的时间终止作业的运行,但此时作业并未完成,故一般都会偏长估计。
②对长作业非常不利,长作业的周转时间会明显地增长。更严重的是,该算法完全忽视作业的等待时间,可能使作业等待时间过长,出现饥饿现象。
③在采用SJF算法时,人—机无法实现交互。
④该调度算法完全未考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理。
(4)举例:
四、优先级调度算法和高响应比优先调度算法
1、优先级调度算法(PSA)
(1)在优先级调度算法中,基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法是根据该优先级进行调度的。
(2)优先级调度算法可作为作业调度算法,也可作为进程调度算法,当把该算法用于作业调度时,系统从后备队列中选择若干个优先级最高的作业装入内存。
2、高响应比优先调度算法(HRRN)
(1)高响应比优先调度算法既考虑了作业的等待时间,又考虑作业运行时间的调度算法,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。
(2)如果为每个作业引入一个动态优先级,即优先级是可以改变的,令它随等待时间延长而增加,这将使长作业的优先级在等待期间不断地增加,等到足够的时间后,必然有机会获得处理机。该优先级的变化规律可描述为:
①如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而类似于SJF算法,有利于短作业。
②当要求服务的时间相同时,作业的优先权又决定于其等待时间,因而该算法又类似于FCFS算法。
③对于长作业的优先级,可以随等待时间的增加而提高,当其等待时间足够长时,也可获得处理机。