进程管理之处理机调度

匿名 (未验证) 提交于 2019-12-03 00:22:01

在多道程序环境下,进程数目往往多于处理机数目,致使它们竞争使用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。分配处理机的任务是由进程调度程序完成的。它是操作系统设计的中心问题之一。

一个作业从提交开始,往往要经历三级调度:高级调度、中级调度、低级调度。

高级调度(长程/作业/宏观调度)

  • 从外存后备队列中选择作业进入内存就绪队列。
  • 在批处理系统中,大多配有作业调度。
  • 作业调度执行频率较低。

中级调度(交换调度)

  • 在内存和外存对换区之间按照给定的策略选择进程对换。
  • 解决内存紧张问题,提高内存的利用率和系统吞吐量。

低级调度(短程/CPU/进程/微观调度)

  • 任务是从就绪队列中选择一个进程来执行并由分派程序(Dispatcher)分配处理机。
  • 是 OS 中最基本的调度。
  • 时间尺度通常是毫秒级的,由于低级调度算法的频繁使用,要求在实现时做到高效。
  • 常采用非抢占(非剥夺)方式和抢占(剥夺)方式两种。

三级调度之间的联系:

  • cpu利用率

CPU是计算机系统中最重要和昂贵的资源之一,所以应尽可能使CPU保持“忙”状态,使这一资源利用率最高。

  • 系统吞吐量

表示单位时间单位内CPU完成作业的数量

  • 周转时间

周转时间 = 作业完成时间 - 作业提交时间

  • 等待时间

是指进程处于等处理及状态的时间之和。

  • 响应时间

是指从用户提交到首次产生响应产生的时间。

  • 先来先服务(FCFS)调度算法
  • 短作业优先(SJF)调度算法
  • 优先级调度算法
  • 高响应比优先调度算法
  • 时间片轮换调度算法
  • 多级反馈队列调度算法(集合了前几种算法的有点)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!