• 操作系统调度算法


    比较调度算法的准则

    • CPU使用率:CPU处于忙状态的时间百分比
    • 吞吐量:单位时间内完成的进程数量
    • 周转时间:进程从初始化到结束(包括等待)的总时间
    • 就绪等待时间:进程在就绪队列中的总时间
    • 响应时间:从提交请求到产生响应所花费的总时间

    决策模式

    决策模式说明选择函数在执行的瞬间的处理方式,通常分为以下两类:

    非抢占:一旦进入运行状态,就不会终止直到运行结束。

    抢占:当前正在运行的进程可以被打断,并转移到就绪态。一个调度算法是否能抢占,对进程的顺序有着极大的影响。

    一、先来先服务(FCFS)

    先来先服务是最简单的策略,也称为先进先出FIFO。首先它是一个非抢占的。如字面意思,它根据进程到达时间决定先运行哪一个进程。

    • FCFS的周转时间

              示例:3个进程,计算时间分别为12,3,3

    •  FCFS优点

    简单

    • 缺点
    1. 平均等待时间波动较大:短进程可能排在长进程后面
    2. I/O资源和CPU资源的利用率较低:CPU密集型进程会导致I/O设备闲置时,I/O密集型进程也等待。

    二、短进程优先算法(SPN)

    选择就绪队列中执行时间最短进程占用CPU进入运行状态,就绪队列按预期的执行时间来排序,短进程优先算法具有最优平均周转时间

    • SPN算法中一组进程的平均周转时间

    • 而修改进程执行顺序不能减少平均等待时间

    • 短进程优先算法缺点:
    1. 可能导致饥饿:连续的短进程流会使长进程无法获得CPU资源
    2. 需要预知下一个CPU计算的持续时间,简单的解决办法—询问用户,用户欺骗就杀死相应进程,用户不知道到,则...
    • 短进程优先算法的执行时间预估:用历史的执行时间来预估未来的执行时间。

     三、最高响应比优先算法(HRRN)

    选择就绪队列中响应比R值最高的进程

    • 特点
    1. 在短进程优先算法的基础上改进
    2. 不可抢占
    3. 关注进程的等待时间
    4. 防止无限期推迟 

    四、时间片轮转算法(RR, Round-Robin)

    1.时间片:分配处理及资源的基本时间单元

    2.算法思路

    • 时间片结束时,按FCFS算法切换到下一个就绪进程
    • 每隔(n-1)个时间片进程执行一个时间片q

    3.时间片为20的RR算法示例

    4.时间片轮换算法中的时间片长度

    • RR算法开销,额外的上下文切换
    • 时间片太长
    1. 等待时间过长
    2. 极限情况退化为FCFS
    • 时间片太小
    1. 反映迅速,但产生大量的上下文切换
    2. 大量的上下文切换开销影响到系统吞吐量
    • 时间片长度选择目标
    1. 选择一个合适的时间片长度
    2. 经验规则:维持上下文切换开销处于1%以内

    五、多级队列调度算法(MQ)

    1. 就绪队列被划分为多个独立的子队列

    • 如:前台(交互),后台(批处理)

    2.每个队列拥有自己的调度策略

    • 如:前台-RR,后台-FCFS

    3. 队列间的调度

    1. 固定优先级
    • 先处理前台,后处理后台
    • 可能导致饥饿

     2.时间片轮换

    • 每个队列得到一个确定的能够调度其进程的CPU总时间
    • 如:80%CPU时间用于前台,20%CPU时间用于后台

    六、多级反馈队列算法(MLFQ)

    进程可在不同队列中移动的多级队列算法

    • 时间片大小随优先级级别增加而增加
    • 如进程在当前的时间片没有完成,则降到下一个优先级

     MLFQ算法的特征:

    1. CPU密集型进程的优先级下降很快
    2. I/O密集型进程停留在高优先级
  • 相关阅读:
    Groups And SiteGroups
    【objc】objectivec学习(1)
    【正则】正则表达式和自动机
    【android】ListView的item事件和item里面的view的事件同时存在
    【计划】rss,搜索
    【objc】Foundation Kit
    【设计】【爬虫】针对某一主题做的爬虫,使用Jsoup解析
    【java】【实践】阅读代码,一些较好的实践
    【java】【HtmlParser】HtmlParser使用
    【learn】learn1
  • 原文地址:https://www.cnblogs.com/cjsword/p/12178442.html
Copyright © 2020-2023  润新知