调度算法的意义

程序运行时,通常会有多个进程或线程同时竞争CPU,但是如果只有一个CPU可用,那就必须选择下一个要运行的进程。在操作系统中完成选择工作的一部分叫做调度程序。
但是进程也有区分,
CPU密集型:大多时间在计算
IO密集型:大多时间在IO等待切换(由于现在CPU的性能提高 ,主要是IO密集型)
image.png
调度算法的目的就是为了保持系统所有部分尽可能忙碌
主要有四个指标衡量调度算法的好坏,吞吐量、周转时间、CPU利用率、响应时间。
并且调度程序需要考虑到CPU利用率,因为进程的切换比较高,用户态必须切换到内核态,然后保存当前进程的状态,包括在进程表中存储寄存器值以便以后重新装载。
调度算法分类:批处理、交互式、实时
image.png

批处理系统的调度

先来先服务

First-come first-served,按照进程请求的顺序使用CPU。相当于有一个就绪进程的单一队列。
优点:易于理解便于在程序中运用。
缺点:如果某个进程过大,会导致后面进程饥饿。

短作业优先:

缺点:对长进程不友好。

最短剩余时间优先

是短作业优先的抢占式版本,总是选择剩余运行时间最短的那个进程运行,需要对整个事件同当前进程的剩余时间比较,如果右小于当前进程的,当前进程就会被挂起,运行新的进程。

交互式系统的调度

轮转调度

每个进程都会被分一个时间段,即时间片,允许该进程在该时间片内运行。调度程序需要维护一张可运行进程列表。:
缺点:时间片设置的过长会导致短的交互请求的响应时间变长,过短会导致过多进程切换降低CPU效率。
image.png

优先级调度

优先级可以是静态赋予也可以是动态赋予。比如将优先级设为该进程在上一时间片所占部分的倒数。
缺点:可能会导致低优先级进程产生饥饿现象。需要偶尔堆优先级进行调整。

彩票调度

实时系统的调度

实时系统是时间起主导作用的系统。

硬实时

即必须满足绝对的截止时间。将程序划分为一组进程实现,每个进程的行为都是可以预测和提前掌握的。

软实时


渡7399
1 声望0 粉丝

小白学习中,文章里的内容有些是借鉴别人的


引用和评论

0 条评论