zoukankan      html  css  js  c++  java
  • CPU调度算法

    批处理系统中的调度算法:

    *需要考虑的因素:
    1. 吞吐量
    2. cpu利用率
    3. 周转时间
    4. 公平性*

    1.先来先服务: FCFS:

    • 优点:实现简单
    • 缺点:可能造成周转时间长

    2.最短作业优先 SJF(非抢占式)

    • 优点:平均周转时间最短
    • 缺点:不公平,短任务多时,长任务一直得不到执行,产生starvation。

    3. 最短剩余时间优先 SRTN :Shortest Remainning Time Next

    SJF的抢占式版本

    4. 最短相应比优先 HRRN:highest response ratio next

    • 是一个综合考虑的算法
    • 调度时,先计算每个进程的响应比,之后总是选择响应比高的执行。

    响应比R = 1+(等待时间/处理时间)

    交互式系统中的调度算法

    考虑主要因素:

    • 响应时间
    • 公平性

    1.RR-round Robin (时间片轮转):

    • 目标:为改善短任务的平均响应时间
    • 主要思想:
      1.周期性切换
      2.每个进程分配一段时间片
      3.利用时钟中断进行进程切换

    • 如何选择合适长度的时间片:

      -时间片太长:
      1.如何每个进程的处理时间都小与时间片的长度,就会退化为FCFS
      2.延长短进程的响应时间

      -时间片太短:
      1.频繁的cpu切换浪费cpu

    • 优点:
      1.公平
      2.有利于交互式计算,响应时间短

    • 缺点
      1.由于进程切换,RR算法开销较大
      2.对于各个进程处理时间大致相同的情况不利,造成更大的平均处理时间。

    mutilevel feedback (多级反馈队列)

    • unix BSD5.3 版本使用的调度算法
    • 是一个综合的调度算法

    基本思想:

      • 设置多个就绪,第一级队列优先级最高
      • 优先级高,时间片越短,优先级越低,时间片越长。
      • 第一级队列为空时,开始调度第二级队列,以此类推
      • 各级队列使用RR算法调度
      • 当一个新创建进程就绪后,进入第一级队列
      • 进程用完时间片,放弃cup,就进入下一级队列
      • 由于阻塞而放弃cpu的进程,进入相应的等待队列,一旦等待的事件发生,就回到原来的就绪队列
      • 多级反馈队列对i/o型进程更友好
  • 相关阅读:
    转载 | CSS文本溢出显示省略号
    转载 | CSS书写顺序
    转载 | CSS布局大全
    threejs sprite 制作标签
    typeScript 中的类
    Es5中的类
    typeScript中的函数
    websocket在vue项目中的使用
    typeScript中的变量数据类型
    echarts 中的1/4圆环行图的使用
  • 原文地址:https://www.cnblogs.com/tiancai/p/8204009.html
Copyright © 2011-2022 走看看