CPU调度学习笔记


调度的基础

  1. CPU与I/O操作并行执行(由硬件决定)
  2. 任何进程中都是CPU与I/O交替执行(使得进行I/O操作时,CPU可以让其它进程先运行)

I/O操作完成之后,一定需要内核处理一下,才可以产生下一个I/O操作
所有陷入到操作系统以后的工作,都可能发生调度(从内核返回时)

不可抢占型调度,合作型(都处于运行态,但进程自身进行不下去了):

  • 当一个进程从运行态切换到等待态
  • 当一个进程终止时

抢占型调度,可剥夺型(可能产生“竞争条件”):

  • 当一个进程从运行态切换到就绪态
  • 当一个进程从等待态切换到就绪态

对于非抢占调度,一旦CPU分配给一个进程,那么该进程会一直使用CPU直到进程终止或切换到等待状态。

短期调度:在内存作业中选择就绪执行的作业,并为它们分配CPU
中期调度:作为一种中等程度的调度程序,尤其被用于分时系统,一个交换方案的实施,将部分运行程序移出内存,之后从中断处继续执行
长期调度(作业调度程序):确定哪些作业调入内存以执行。

三者主要的不同是执行的频率,短期调度必须经常调用一个新进程,由于在系统中,长期调度处理移动的作业时,并不频繁被调用,可能在进程离开系统时才被唤起。

调度算法

  • 先到先服务调度(FCFS)
    会产生护航效果,该算法是非抢占的。一旦CPU被分配给了一个进程,该进程就会保持CPU直到释放CPU为止,即程序终止或是请求I/O。
  • 最短作业优先调度(SJF)
    对于给定的一组进程,SJF算法的平均等待时间最小。经常用于长期调度。困难在于如何知道下一个CPU区间的长度。
    该算法可能是抢占的或非抢占的。抢占SJF调度有时称作最短剩余时间优先调度。
  • 优先级调度
    可以分为抢占型或非抢占型;
    内部定义优先级使用一些测量数据以计算进程优先级,如时间极限、内存要求、打开文件的数量和平均I/O区间与平均CPU区间之比都可以用于计算优先级
    外部定义优先级是通过操作系统之外的准则来定义的,如进程重要性、用于支付使用计算机的费用类型和数量、赞助工作的单元、其它(通常为政治)因素。
    可能会出现无穷阻塞或饥饿(可以利用老化来解决)
  • 轮转法调度(RR):为分时系统设计,可以抢占
    通过时钟中断(而不是进程告诉内核)得知时间片用完了
    时间片过大相当于先进先出调度,时间片过小的话进程切换开销大
  • 多级队列调度
    优先级(从高到低):系统进程、交互进程、交互编辑进程、批处理进程、学生进程
  • 多级反馈队列调度:允许进程在队列之间移动。主要思想是根据不同CPU区间的特点以区分进程。如果进程使用过多CPU时间,那么它会被转移到更低优先级队列
    参数有:队列数量、每个队列的调度算法、用以确定何时升级到更高优先级队列的方法、用以确定何时降级到更低优先级队列的方法、用以确定进程在需要服务时应进入哪个队列的方法

评价指标

  • CPU利用率:所有进程使用CPU的时间/CPU的时间
  • 吞吐量:单位时间内完成的进程个数
  • 周转时间:从进程提交到进程完成的时间(从创建到结束),包括等待进入内存、在就绪队列中等待、在CPU上执行和I/O执行;周转时间通常受输出设备速度的限制。
  • 等待时间(在就绪状态的等待时间,而非在等待态的时间):CPU调度算法并不影响进程运行和执行I/O的时间,它只影响进程在就绪队列中等待所花的时间。
  • 响应时间:从用户提出请求到给出反馈的时间

需要使CPU使用率和吞吐量最大化,而周转时间、等待时间、响应时间最小化。

多处理调度

  • 非对称多处理
  • 对称多处理

实时调度

  • 软实时
  • 硬实时:有严格的时间约束,不满足则失败

调度案例

  • Solaris调度
  • Windows XP调度
  • Linux调度

评估调度算法

准则包括:

  • 最大化CPU使用率
  • 最大化吞吐量

评估方法

  • 确定模型法
  • 排队模型法
    Little公式:描述了就绪队列在稳定时的任务情况
  • 模拟法
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值