CPU调度 操作系统笔记整理系列

Posted 雨宙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CPU调度 操作系统笔记整理系列相关的知识,希望对你有一定的参考价值。

CPU调度

调度算法

多级队列调度

  1. 多级队列调度算法将ready队列分成多个单独队列
  2. 根据进程属性,如内存大小、进程优先级、进程类型等,一个进程永久分到一个队列
  3. 每个队列有自己的调度算法,如FCFS、RR等
  4. 队列之间应有调度,通常采用固定优先级抢占调度,系统进程、交互进程、交互编辑进程、批处理进程、学生进程,五个队列优先级由高到低,每个队列与更低层队列相比具有绝对的领先,例如,只有系统进程、交互进程和交互编辑进程队列都为空,批处理队列内的进程才可运行
  5. 另一种队列之间的调度方法是,在队列之间划分时间片,每个队列都有一定比例的CPU时间,可用于调度队列内的进程,例如,前台队列可以有80%的CPU时间,而后台队列可以有20%的CPU时间

多级反馈队列调度

  1. 使用多级队列调度算法时,进程被永久地分配到某个队列
  2. 与多级队列调度算法相反,多级反馈队列调度算法允许进程在队列之间迁移
  3. 根据不同CPU执行的特点来区分进程,如果进程使用过多的CPU时间,那么它会被移到更低的优先级队列,在较低优先级队列中等待过长的进程会被移到更高优先级队列,阻止饥饿的发生
  4. 举个栗子,如图,每个进程在进入ready队列后,就被添加到队列0内,队列0内的每个进程都有8ms的时间片,如果一个进程不能在这一时间片内完成,那么它就被移到队列1的尾部,如果队列0为空,队列1头部的进程会得到一个16ms的时间片,如果不能完成那么将被抢占,并添加到队列2,只有当队列0和1为空时,队列2内的进程才可根据FCFS来运行
    在这里插入图片描述
  5. 通常,多级反馈队列调度程序可由下列参数来定义:
    (1)队列数量
    (2)每个队列的调度算法
    (3)用以确定何时升级到更高优先级队列的方法
    (4)用以确定何时降级到更低优先级队列的方法
    (5)用以确定进程在需要服务时将会进入哪个队列的方法(进程刚进入ready队列)

多处理器调度

  1. 当有多个CPU可用时,CPU调度更加复杂
  2. 负载分配
  3. 非对称多处理:只有一个处理器访问系统数据结构
  4. 对称多处理:每个处理器自我调度
  5. 处理器亲和性:避免将进程从一个处理器移到另一个处理器,而是试图让一个进程运行在同一个处理器上

实时调度

  1. 硬实时系统:要求在保证的时间内完成关键任务
  2. 软实时系统:不保证会调度关键实时进程,只保证这类进程会优先于非关键进程

算法评估

确定性模型

  1. 分析评估法:使用给定的算法和系统负荷,生成一个公式或数字,以便评估在该负荷下的算法性能
  2. 确定性模型:使用预先给定的算法和系统工作负载,计算在给定负载下每个算法的性能
  3. 优点:确定性模型简单快速,给出精确的数值,允许比较算法
  4. 缺点:确定性模型要求输入精确数字,而且它的答案只适用于这个情况

排队模型

  1. 两种分布:CPU和I/O的执行分布 进程到达系统的时间分布
  2. 计算机系统可描述成服务器网络,每个服务器都有一个等待进程队列,CPU是具有ready队列的服务器,I/O系统是具有设备队列的服务器
  3. 排队网络分析:已知到达率和服务率,可以计算使用率、平均队列长度、平均等待时间等
  4. Little公式:n= w×λ,n为平均队列长度,w为队列平均等待时间,λ为新进程到达队列的平均达到率
  5. 优点:比较调度算法
  6. 缺点:能够处理的算法和分布相当有限

仿真

  1. 为了获得更为精确的调度算法评价,可以使用仿真,代价昂贵

实现

  1. 用于评估一个调度算法唯一完全精确方式是:对它进行编程,放在操作系统内,并且观测它如何工作
  2. 困难:代价高 使用算法的环境改变

以上是关于CPU调度 操作系统笔记整理系列的主要内容,如果未能解决你的问题,请参考以下文章

CPU调度 操作系统笔记整理系列

CPU调度 操作系统笔记整理系列

死锁 操作系统笔记整理系列

死锁 操作系统笔记整理系列

内存管理 操作系统笔记整理系列

内存管理 操作系统笔记整理系列