操作系统_第三章 3.2 进程调度

进程调度

一、基本概念:进程调度是指在内存中选取就绪队列进程,为其分配cpu;

通过多道程序来尽量提高cpu利用率;

1、运行的宏观与微观:宏观是指通常说的运行,微观是指正在cpu上运行running

cpu的利用率理论上不会超过100%,受到硬件限制,如内存、

2、cpu-I/O 执行期

进程的执行包括了一系列的cpu周期执行与输入输出等待

3、cpu执行期分布(注意:执行期不是指整个程序执行需要的时间)

执行期分布直方图
在这里插入图片描述

呈指数型分布;cpu型程序(在cpu中执行的时间较长),I/O型程序(输入输出时间较长)

二、需要进程调度的情况(低级调度

①从running到waiting需要调度

②从running到ready需要调度

③从waiting到ready需要调度

④terminates

在调度的过程中,需要将调度前进程的状态信息保存下来,保存到PCB;类似于中断现场的保护

信息的保存与恢复,在PCB、寄存器等中

调度延时:调度所花费的时间

调度算法

1、调度准则

①cpu利用率:越高越好

②吞吐量throughput:单位时间内完成作业的数量,越大越好

③周转时间Turnaround time:提交完毕到执行完成的时间,越短越好

~周转时间组成:后备等待事件+ready状态的时间+running状态时间+waiting状态的时间

④等待时间waiting time:就绪队列中等待的时间(可能不止等待一次)

⑤响应时间response time:提交完成到首次给出响应的时间;

提交——>后备——>运行状态(宏观)

后备队列——>运行状态需要高级调度

运行状态(微观):ready-running-waiting

2、调度算法

①先来先服务原则 FCFS,而不是先进先出;

哪个进程先进入就绪队列,就先执行哪个;可以用Gant 图(甘特图)来表示多个进程需要等待的时间

②短作业优先调度,SJF,short job first

分类:非抢占的/非剥夺式 抢占式/剥夺式的;其中抢占式的平均等待时间更短

等待时间=结束时间-执行时间-到达时间

优点:等式时间较短 ;缺点:不能确定后一个进程的执行期,出现“饥饿”(即执行时间长的进程可能一直被阻塞);

后一个进程的执行期不确定,使用指数平均方法来估计执行期

③最高优先级调度HPF priority

每一个进程都赋予一个优先级,优先级越高 就优先分配CPU;

分类:非抢占的/非剥夺式 抢占式/剥夺式的;SJF也是一张优先级调度

缺点:出现“饥饿”(即优先级低的进程可能一直被阻塞),解决方法:采用可变优先级(即动态优先级)

④时间片轮转 round robin RR

就绪队列中的进程轮流获取一个小的时间片q(通常为10-100毫秒,下限小于中断时间,太小则剥夺处理机制的次数频繁,系统开销增大,时间片过长也不好),轮转运行;

通常平均等待时间比SJF多,但响应时间比SJF少;

⑤多级队列调度

进程等待队列多个,前台队列(较为紧急)与后台队列,两个队列使用的调度算法可以不一样

⑥多级反馈队列调度

系统按多个优先级设置若干个就绪队列,优先级较低的队列中进程只有在优先级高的队列中为空时才能运行;对级别较高的队列分配较小的时间片,除了第n级队列(级别最低)是按RR法调度之外,其他各级队列均按先来先服务调度;当高等级中的进程获取时间片未能运行完成时,则转入下一个队列中…以此类推至级别最低的一个中,一直进行RR调度;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值