【操作系统三】CPU调度

一、CPU调度的概念

由于CPU往往是比需要执行的进程数目要少的,因此就需要某种规则来确定处理这些不同进程任务的顺序。不可能同时处理这些进程任务,CPU调度就是从就绪队列中按照某种算法选择一个进程,并将CPU交其使用,实现多个进程任务之间的并发执行。

二、CPU调度的层次

三种调度层次:高级调度、中级调度、低级调度

高级调度:由于内存有限,可能无法将所有的进程对应的程序都读入内存并为其创建PCB,因此只能将程序存储在外存中,在需要执行时再将其调入内存并创建PCB,获得竞争上CPU的机会。当该进程任务执行完毕后,便撤销PCB,撤出内存。

中级调度:为了提供内存的利用率和系统吞吐量。通过虚拟内存技术,将一部分外存虚拟为内存,实际上内存还是那么大,只不过操作系统会对暂时不运行的进程再内存中的内容调到外存中,这就是进程的挂起态。当需要运行时再读入内存,中级调度就是决定何时将哪个挂起态的进程恢复到内存中。虽然进程处于挂起态,但是其PCB仍然保存在内存中。(注意挂起态和阻塞态的区别,挂起态是进程调度导致的,阻塞态时进程仍然在内存中不会被调度到外存)。进程在运行过程中,可能多次调入调出内外存,因此中级调度频率高于高级调度。一个进程只会高级调度一次,只在刚运行时高级调度到内存中。

低级调度:低级调度是最常见的调度。频率很高,大概几十毫米一次。其作用是按照某种算法从就绪队列中选择一个进行上CPU运行。常说的调度算法主要研究的就是低级调度问题。

三、CPU调度(进程调度)

进程调度就是操作系统按照某种算法,从就绪队列中选择一个进程为其分配CPU资源,使其上CPU执行。

1、进程调度的时机

临界资源是只能由一个进程访问的资源,而访问临界资源的代码就是临界区。

2、进程调度的切换方式、过程

进程调度的方式有两种:一种是非抢占式的,另外一种是抢占式的。

非抢占式的方式中,CPU资源只有进程可以主动放弃,而不能被操作系统强行剥夺。而抢占式的方式中,当时间片结束或者由更加紧急的任务,操作系统可以强行剥夺CPU资源,将当前运行的进程下掉CPU,并将其分配给其它的进程。

进程调度包括进程的选择和切换,选择是按照调度算法选择让谁接下来获得CPU执行权;切换是完成正在运行进程的各种信息的保存(保存到PCB),并将获得CPU执行权的进程的各种信息恢复(程序计数器、程序状态字、各种寄存器现场都保存在PCB中,在这个恢复阶段是需要CPU进行处理的),因此进程的切换是会占用CPU资源的,频繁的调度会导致系统效率降低,极端情况下CPU用于调度的时间比真正执行进程的时间还要长。

四、各种进程调度评价指标计算

五、进程调度算法

三种进程调度算法:先来先服务、短作业优先、高响应比优先

前三个是非抢占式的算法:

1、先来先服务

可以用于作业调度或者进程调度,按照先到达的先得到服务的规则进程处理。对于作业就是先到后备队列的,对于进程就是先到就绪队列的。是非抢占式的算法,不会有饥饿。缺点是对短作业不利,因为可能先到的长作业长时间占据着,短作业需要等很久。

2、短作业(进程)优先

这种方式下,最短的(需要CPU时间短的)作业后者进程被调度,分别用于作业调度和进程调度。非抢占式的算法,可能会饥饿。对长作业不利,如果不断地有短作业到达,那么长作业一直得不到资源。

3、高相应比优先算法

上面两种都有问题,因为没有兼顾进程(作业)的等待时间和需要执行的时长。高相应比算法解决了这个问题。

非抢占式的算法。每次需要调度时,计算每个进程(作业)的相应比,然后选择相应比最高的进程(进程)。不会导致饥饿。

上述三种算法主要倾向于公平性,而对于紧急任务紧急处理的情况没有考虑,因此对于交互式操作系统很差,比如现在用的windows图形化的操作系统窗口,对鼠标、键盘的响应就需要快速处理。

后面三个是抢占式的算法:

4、时间片轮转算法

为每一个进程依次分配一个固定长度的时间片,让每个进程轮流上CPU执行,当时间片结束剥夺进程的CPU。抢占式的算法,不会有饥饿。

5、优先级调度算法

按照进程的优先级进行调度,同优先级进程依次调度。适合实时操作系统。抢占式的。可能会有饥饿。

6、多级反馈队列调度算法

可能会导致饥饿。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值