调度的介绍

介绍:操作系统把进程切换到运行状态时,就是进程占用CPU在执行,把进程从运行状态切换到其他状态,然后操作系统继续选择下一个要运行的进程,这个操作系统选择一个进程进行运行的功能叫做:调度程序。

一  调度时机

1.1就绪状态 到 运行状态:进程被创建之后,就会进入就绪队列,然后由操作系统从就绪队列中选取一个进程运行。

1.2 运行状态 到 阻塞状态:当进程发生IO事件时进程挂起,放入阻塞队列,进入阻塞状态,操作系统会选择另外一个进程进行运行。

1.3 运行状态 到 结束状态: 当进程退出来结束后,操作系统就得从就绪队列选择另外一个进程运行。

考虑硬件时钟提供某个频率的周期性中断,那么可以根据如何处理时钟中断,把调度算法分两类:

 非抢占式调度算法:挑选一个进程,然后运行这个进程直到被阻塞或者进程退出,之后才调用其他进程,不理会时钟中断这个事情.

 抢占式调度算法:挑选一个进程,然后让该进程只运行某段时间,在时间间隔的末端发生时钟中断,CPU控制返回给调度程序进行调度,就是所谓的时间片段。如果在该时间段结束时,进程还在运行,就把该进程挂起来,然后调度程序从就绪队列中挑选另一个进程进行运行。COU

二 调度原则:

2.1原则一 :运行的A程序,发生了IO事件(等待键盘输入输出),此时进程因为阻塞得到硬盘的数据返回,这里CPU就空闲下来,所以为了提高CPU的利用率,会利用A程序阻塞的时间期间,调度程序从就绪队列中选择一个进程B来运行。CPU利用率

2.2原则二:有的程序执行某个任务时间长,若是这个程序一直占用CPU,会影响系统吞吐量(CUP在单位时间内完成的进程数量)。所以为了提高吞吐量,就用调度程序权衡考虑任务时间长短的进程运行完成数量。系统吞吐量

2.3原则三:进程从开始到结束有两个时间,一个是进程运行时间,一个是进程等待时间。这两个时间总和叫做周转时间。进程的周转时间越短越好,避免出现等待时间很长,运行时间很短的进程。周转时间

2.4原则四:处于就绪队列的进程,也不让等太长时间,越短越好。需要调度程序去考虑。等待时间

2.5原则五:对于鼠标,键盘这种交互式比较强的应用,希望其响应时间越快越好,需要调度程序去考虑。响应时间

三 调度算法

在单核CPU中常用的调度算法:非抢占式先来先服务算法:每次从就绪队列中选取最先进入队列的线程,然后一直运行,直到进程退出或者挂起。然后才从队列中选择第一个进程接着运行。缺点是对短作业的等待时间长,不利于短作业,利于长作业,不利于IO频繁型作业系统。

2 最短作业优先调度算法:优先选择短作业(运行时间最短的进程来运行)有利于提高系统吞吐量。不利于长作业,若短作业比较多,容易导致长作业长期不会被执行。

3高响应比优先调度算法:前面的两个算法都没有权衡短作业和长作业,

这个高响应比优先调度算法主要权衡了短作业和长作业。每次进行进程调度时,先计算响应比优先级,然后把响应比优先级最高的进程投入运行,从上面的公式,可以发现:如果两个进程的等待时间相同,要求的服务时间越短,响应比越高,这样短作业的进程容易被选中运行。如果两个进程要求的服务时间相同时,等待时间越长,响应比就越高,这样就兼顾到了长作业进程,因为进程响应比可以随时间等待的增加而提高,当等待时间足够长时,其响应比便可以升到很高,从而获得运行的机会。

4时间片轮转调度算法:最古老公平简单的每个进程运行的时间片都是一样的,一个时间片内没有运行完的进程回到队尾。每个进程被分配一个时间段,称为时间片,即允许该进程在该时间段中运行。如果该进程在时间片结束前阻塞或结束,则CPU立即进行切换。

5最高优先级调度算法:对于希望调度有优先级,即希望调度程序就能从就绪队列中选择最高优先级的进程进行运行,这就称为最高优先级调度算法

6多级反馈队列调度算法:多级:表示有多个队列,每个队列优先级从高到低,同时优先级越高时间片越短,反馈:表示如果有新的进程加入优先级高的队列时,立刻停止当前正在运行的进程,转而去运行优先级高的队列。综合了上面几种算法的优点。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值