进程调度

调度的基本概念

调度的最根本目标

  • 保证CPU资源和其他资源利用的合理性和有效性

  • 合理性:根据调度策略合理分配处理机,既要保证系统实现特殊功能的要求,又要使各个作业合理使用处理机资源

  • 有效性:按调度策略使处理机和I/O设备得到合理有效的分配,资源充分利用

  • Scheduler程序:制定调度策略

    Dispatcher程序:用于将处理机资源的控制权分配给选中的进程

调度的类型

  • 高级调度/作业调度:按算法从后备作业队列中选择满足条件的作业,分配资源,创建PCB,入主存就绪队列
    • 用于多道批处理系统,执行频率低
  • 低级调度/进程调度:按算法从就绪队列中选择满足条件的进程,分配CPU运行
    • 抢占/非抢占
    • 必须有进程调度,频率高
  • 中级调度/内存调度:将主存中长期未执行的进程,按算法入盘交换区;满足执行条件后再入主存

选择准则

  • 面向用户四准则
    • 响应时间
    • 周转时间:作业提交到完成经过的时间
    • 截止时间保证
    • 优先权准则
  • 面向系统三准则
    • 系统吞吐量:单位时间内处理的任务数
    • CPU利用率
    • 各类资源的平均利用

调度中的时间

周转时间

  • 周转时间 = 作业完成时间 - 作业提交时间
  • 平均周转时间 = (作业1周转时间 + ... +作业n周转时间) / n
  • 带权周转时间 = 作业周转时间 / 作业实际运行时间
  • 平均带权周转时间 = (作业1带权周转时间 + ... + 作业n带权周转时间) / n

等待时间

  • 进程等待处理机的时间之和
  • 衡量调度算法优劣的标准

响应时间

  • 从用户提交请求到系统首次产生响应所用时间

典型调度算法

先来先服务FCFS(First Come First Serve)

  • 思想:第一个来的第一个服务
  • 优点:简单,易于实现;公平;
  • 缺点:平均等待时间长;短作业不利;紧迫性作业不利;
  • 若一个进程很长时间得不到运行,则称为“饿死现象”,FCFS不会饿死

短作业优先SJF(Shortest Job First)

  • 思想:最短的作业先 抢占式/非抢占式
  • 优点:平均等待时间最小;系统吞吐量增加;
  • 缺点:长作业不利;需要知道每个作业所需的执行时间;

时间片轮转RR(Round Robin)

  • 思想:按时间片轮着来,下一个运行的进程按照队列形式选出
  • 优点:平均响应时间短
  • 缺点:性能与时间片大小有关
  • 如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。结束的进程会从运行队列中清除,剩下的时间片随进程结构的清除而清除,并不影响到其他进程的调度

优先权调度PSA(Priority)

  • 思想:优先权最高的先 一般数小优先权大

  • 类型:抢占式/非抢占式

  • 优先权类型:静态优先权、动态优先权

    • image-20200309162048511

高响应比优先HRRN(Highest Response Ratio Next)

  • 思想:最高响应比是下一个 动态优先权

  • 响应比Rp=1+(等待时间/要求运行时间) 等待时间在动态变化

多级队列调度(Multilevel Queue)

  • 思想:系统设置多个就绪队列,分配不同优先权,先调用优先权高的进程,高优先权队列为空时才调度低一级优先权队列中的进程。

多级反馈队列(优点融合)

  • 思想:
    1. 设置多个不同的优先权就绪队列
    2. 各队规定一时间片,优先权越高,时间片越小
    3. 新进程先入高优先权队列,执行规定时间片,未完成,入下一级队尾
    4. 高优先权队列为空,执行下一级队列进程...
    5. 若有新入就绪队列的进程,中止低优先权队列进程执行。被中止进程入本队队尾
    6. 最后一级队列采用时间片轮转
  • 优点:
    • 终端型作业用户:短作业优先
    • 短批处理作业用户:周转时间较短
    • 长批处理用户:经过前面几个队列得到部分执行,不会长期得不到处理

实时系统及多核系统的调度

实时系统

image-20200312203520184

完成截止时间转为开始截止时间要求,满足实时任务对截止时间的要求

蓝色为A周期;红色为B周期;箭头为在一个周期内最晚要开始任务的时间,即开始截止时间;

箭头在前面的任务更紧迫;

  • 实时系统要求
    • 提供必要的调度信息
    • 抢占式调度方式
    • 有较强的中断处理机构
    • 具有快速任务分配机制
原文地址:https://www.cnblogs.com/localhost-ha/p/12449109.html