1.先来先服务FCFS
定义:系统按照作业到达的先后次序来进行调度(优先考虑等待时间最长的作业),并且不管该作业所需执行时间的长短。
例子:
2.短作业优先SJF
定义:系统在调度时会从作业后备队列中优先选择运行(执行)时间最短的作业。
例子:
3. 高相应比优先调度HRRN
定义:定义一个既考虑作业的等待时间又考虑到作业的执行(运行)时间的调度算法,定义一个响应比优先级,在队列中响应比最高的优先调度。
响应比=(等待时间+执行时间)/执行时间=响应时间/执行时间。
例子:
4.短作业抢占式调度
定义:系统允许新到的短进程抢占当前的长进程的处理机,即新到的短进程的执行时间小于当前长进程的剩余时间。
例子:
5.时间片轮转调度RR
定义:系统安排就绪队列上的每个进程每次仅运行一个可自定义时长的时间片。
例子:
进程 | 到 | 执 | 开 | 结 | 周 | 权周 |
P1 | 0 | 10 | 0 | 19 | 19 | 1.9 |
P2 | 0 | 1 | 1 | 2 | 2 | 2 |
P3 | 0 | 2 | 2 | 7 | 7 | 3.5 |
P4 | 0 | 1 | 3 | 4 | 4 | 4 |
P5 | 0 | 5 | 4 | 14 | 14 | 14/5 |
下图是时间片调度的整个过程,数字1—5表示进程P1--P5
6.最早截止时间优先调度算法EDF
定义:系统根据任务的截止时间来确定任务的优先级,任务的截止时间越早,那么它的优先级就越高。这个算法适用于非抢占式,也适用于抢占式。非抢占式用于非周期实时任务,抢占式用于周期实时任务。
例子:
非抢占式
抢占式
7.最低松弛度优先调度算法LLF
定义:在确定任务的优先级时根据的是任务的松弛程度,松弛程度越低,那它的优先级就越高。在此算法中抢占处理机的唯一条件是要抢占处理机的任务的松弛程度达到0,则可以在某个任务运行期间抢占处理机,其余方式均不可抢占正在运行的处理机。
松弛度=必须要完成的时间点-需要执行的时间-当前时间
注意:在该式子中需要执行的时间是动态的,是该作业仍然需要占用处理机的时间。
例子: