处理机调度

一、什么是处理机调度 ?
就是从就绪队列中 按照一定的算法选择一个进程将处理机分配给它运行

二、调度的三个层次
1、高级调度 :从外存的后备队列挑选 n个作业,为它建立相应的进程 (建立PCB(无 - > 创建态 - > 就绪态)
高级调度是外存与内存之间的调度,一个作业只能调入一次,调出一次,作业调入时会建立相应的PCB,调出时删除 相应的PCB
2、中级调度: 决定将哪个处于挂起状态的进程重新调入内存 (阻塞挂起 - > 阻塞态)
(为了解决内存不够,处于挂起的进程为被移到外存去)
3、低级调度 : 从就绪队列中,按照一定策略,将处理机分配给他 (就绪态 - > 运行态)

进程调度 (低级调度)

一、进程调度的时机
1、什么时候需要进程调度 ?
(1)当前运行的进程主动放弃处理机 ;
(2) 当前运行的进程被动放弃处理机

2、什么时候不能进行进程调度 ?
(1)在处理中断的过程中。 中断的操作过程比较复杂,需要硬件的支持,很难在中断过程钟进行进程的切换
(2)进程在 操作系统内核程序临界区 中 (这个时候切换,可能导致出错)
(3)原语执行过程中

二、进程调度的方式
(1)非剥夺调度方式 : 只允许进程主动放弃处理机
(2)剥夺调度方式 : 当一个进程正在执行,如果有一个更紧急的进程任务,则立即暂停正在执行的进程,把处理机分配给紧急的进程

三、进程的切换与过程
1、什么是进程切换 ?
进程切换是指一个进程让出处理器,由另外一个进程占用处理机的过程
2、进程切换的过程
(1)对原来进程的各种运行书数据进行保存
(2)对新进程的各种数据恢复

调度算法的评价指标


一、CPU利用率计算

二、系统吞吐量的计算

三、周转时间的计算


四、等待时间

五、响应时间


调度算法

一、 先来先服务 (FCFS)
(1)算法思想 : 主要是从 “ 公平 ”的角度考虑
(2)算法规则 : 按照作业 / 进程 到达的先后顺序进行服务
(3)用于作业/进程调度:
用于作业调度时,考虑的是哪个作业先到达后备队列中那个 ; 用于进程调度,考虑的是哪个进程先到达 就绪队列
(4)不可以抢占
(5)优点 : 公平,算法实现简单
(6)缺点 : 对长作业有利,多短作业不利
(7)不会导致饥饿

二、短作业优先 SJF
(1)算法思想 : 追求最少的平均等待时间 ,最少的平均周转时间,最少的平均带权周转时间
(2)算法规则 : 最短的作业/进程 优先得到服务
(3)用于作业/进程调度
(4)SJF 和SPF 是非抢占式算法,而最短剩余时间优先算法 是 抢占式的
(5)优点 : 最短的平均等待时间 ,平均周转时间
(6)缺点: 不公平, 对长作业不利
(7)会导致饥饿



三 、高响应比优先 HRRN
(1)算法思想 : 综合考虑作业/进程 等待时间和要求服务时间
(2)算法规则 : 在每次调度的时候 计算各种作业/进程 的响应比,优先选择响应比高的,为它服务

(3)用于作业/进程调度
(4)非抢占式
(5)优点 : 不会导致饥饿,相对公平

四、时间片轮转
(1)算法思想 : 公平轮流的为各个进程服务,让每个进程在一定的时间内都能得到响应
(2)算法规则: 按照进程在就绪队列中的顺序,轮流的各执行一个时间片,如果到时间还没运行完,就剥夺处理机,将进程放回 达就绪队列对尾
(3)用于作业/进程 调度
(4)属于抢占式
(5)优点 : 公平,响应快 , 不会造成饥饿
(6)缺点: 由于高频繁的切换进程 ,会增加开销,而且不区分任务紧急程度

五、优先级调度算法
(1)算法思想 : 按照任务的紧急程度,来决定处理顺序
(2)算法规则 :调度时 选择优先级最高的作业/进程
(3)用于作业/进程 调度
(4)抢占、非抢占都有
(5)适用实时操作系统
(6)缺点: 会造成饥饿

六、多级反馈队列调度算法 (综合起来 最佳
(1) 算法思想 : 对其他调度算法的折中权衡
(2)算法规则:
1、设置多级就绪队列,各级队列 优先级从高到低,时间片 从小到大
2、新进程到达时 ,先进入第1级队列,按照先来先到原则排队等待 被分配时间片 ;
如果用完时间片,进程还没结束,则进入下一个级别的队列中
如果此时已经是 最下级的队列 ,则重新放回队尾
3、只有当k 级队列为空 ,k+1 级队列 才能分配到时间片
(3)用于作业/进程调度
(4)属于抢占式 : 当 k 层队列中进程正在运行 ,如果 在 1~ k -1 层队列中进入了新进程, 则新进程会抢占处理机
(5)优点 : 对各类型的进程 相对公平
(6)缺点: 会导致饥饿

关于操作系统中的调度相关推荐

  1. 操作系统中的处理机调度调度_操作系统中的流程分类和调度

    操作系统中的处理机调度调度 处理 (Process) In the operating system, there are numerous task and application program ...

  2. 操作系统 系统开销比率_操作系统中的最高响应比率下一个(HRRN)调度

    操作系统 系统开销比率 操作系统中的HRRN调度是什么? (What is HRRN Scheduling in Operating System?) HRRN is the abbreviation ...

  3. 操作系统中的处理机调度调度_操作系统中的多处理器调度

    操作系统中的处理机调度调度 多处理器操作系统 (Multiprocessor Operating system) A multiprocessor system consists of several ...

  4. 操作系统中的进程是如何 “调度” 的?

    一.处理机调度的概念和层次 1.1 调度的基本概念 当有一堆任务要处理,但由于资源有限,这些事情没法同时处理.这就需要确定某种规则来决定处理这些任务的顺序,这就是"调度"研究的问题 ...

  5. 如何避免操作系统中多线程资源竞争的互斥与同步?

    作者 | 小林coding 来源 | 小林coding(ID:CodingLin) 前言 先来看看虚构的小故事 已经晚上 11 点了,程序员小明的双手还在键盘上飞舞着,眼神依然注视着的电脑屏幕. 没办 ...

  6. 操作系统中的进程与线程

    简介 在传统的操作系统中,进程拥有独立的内存地址空间和一个用于控制的线程.但是,现在的情况更多的情况下要求在同一地址空间下拥有多个线程并发执行.因此线程被引入操作系统. 为什么需要线程? 如果非要说是 ...

  7. 中断技术在计算机系统中的应用,中斷在操作系统中的应用.doc

    中斷在操作系统中的应用 中断在操作系统中的应用 (**大学 电子信息学院, 四川 成都 610065) 摘要: 计算机执行期间,系统内如果发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前 ...

  8. 【408预推免复习】操作系统之处理机调度与死锁

    [408&预推免复习]操作系统之处理机调度与死锁 文章目录 1 作业调度和进程调度 2 实时调度和死锁概述 3 预防死锁和避免死锁 1 作业调度和进程调度 什么是处理机调度? 处理机调度:如何 ...

  9. 【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )

    文章目录 一.Linux 内核在操作系统中的层级 二.Linux 内核子系统 三.Linux 内核子系统之间的关系 一.Linux 内核在操作系统中的层级 Linux 内核 所在层级 : 整个计算机系 ...

最新文章

  1. 【Oracle】表空间相关集合
  2. Hibernate Mysql 写入中文乱码 解决方法
  3. 《操作系统真象还原》-阅读笔记(下)
  4. 关于IT结合测试,事前DB与事后DB的问题(之一:如何能更好的看出更新效果)。
  5. flume与kafka的整合
  6. 微信开发者工具打开导入其他人的项目源码 修改appid
  7. SpringBoot06 统一响应格式
  8. 爱客影视 程序存在文件写入漏洞 分析
  9. AD学习之旅(9)— 新建PCB封装库
  10. 基于matlab的简易诊断系统,基于matlab的图像识别
  11. 析论易语言软件加密技术(创世纪篇)
  12. 关于使用Curvy插件实现物体沿指定路径移动的方法
  13. ORACLE AutoVue 服务器/桌面版/WebService/SDK安装
  14. 宣化科技职业学院计算机网络技术,职业技术学校专业建设-宣化科技职业技术学院-计算机网络技术.doc...
  15. 最简单的11g Active DataGuard(ADG)搭建配置过程(项目步
  16. 连锁酒店网络互联解决方案
  17. 我不服!这开源项目居然才888个星!?
  18. 小程序插件接入、开发与注意事项
  19. 如何将xls批量转换成xlsx
  20. 【问题已解决】Unrecognized option: --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED

热门文章

  1. iis里运行php_IIS PHP,让IIS支持php语言,IIS下配置php运行环境教程图解
  2. 7-7 计算油费(2022-高级语言程序设计练习——分支结构程序设计)
  3. [Linux] Linux文件系统
  4. CorelDRAW2023最新版本配置及新功能介绍
  5. 微软IE10之屌丝体验点评
  6. 使用vue写一个bilibili小组件
  7. 00 -- jieba分词
  8. 高可用 高并发 单机介绍以及在不同场景下锁的不同选择
  9. #恭喜闲侃群通过人肉的方式对接了ChatGPT
  10. jQuery中的serialize()和serializeArray()区别