2.2 处理机调度

2.2.1 调度的概念

调度的基本概念:处理机调度是对处理机进行分配,从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发执行

调度的层次

1)作业调度(高级调度):从外存上处于后备队列的作业中挑选一个,给它分配内存、输入输出设备等必要资源,并建立相应的进程,以获得竞争处理机的权力。作业调度就是内存与外存之间的调度。

2)内存调度(中级调度):把那些暂时不能运行的进程调至外存等待,并修改进程状态为挂起态,当具备运行条件且内存有空闲时,由内存调度来决定把外存上已具备运行条件的就绪进程重新调入内存,修改进程状态为就绪态。内存调度的目的是提高内存利用率和系统吞吐量。内存调度实质上是存储器管理中的对换功能。

3)进程调度(低级调度):按照某种算法从就绪队列中选取一个进程,将处理机分配给它。进程调度是最基本的,不可或缺。

三者对比:

2.2.2 调度的目标

比较处理机调度算法的性能

1)CPU利用率=CPU有效工作时间 / CPU有效工作时间+CPU空闲等待时间

2)系统吞吐量:单位时间内处理机完成的作业数量。长作业会降低系统的吞吐量

3)周转时间:周转时间=作业完成时间-作业提交时间 带权周转时间=周转时间/作业实际运行时间

4)等待时间:进程处于等处理机的时间之和

5)响应时间:用户提交请求到系统首次产生响应所用的时间

2.2.3 调度的实现

1、调度的时机、切换与过程

不能进行进程的调度与切换的情况:

1)在处理中断的过程中

2)进程在操作系统内核临界区

3)其他需要完全屏蔽中断的原子操作过程中

应进行进程调度与切换的情况:

1)发生调度的条件且当前进程无法继续运行下去

2)中断处理结束或自陷处理结束后,返回被中断进程的用户态程序执行现场前

2、进程调度方式

1)非抢占调度方式:一个进程正在执行,如果有更重要紧急的进程进入就绪队列,仍然要等到当前进程运行完后,才能分配处理机给其他进程。适用于批处理系统。

2)抢占调度方式:和非抢占不同,如果有紧急的进程需要处理机,则允许调度程序去暂停正在执行的进程,并将处理机分配给紧急的进程。适用于分时系统、实时系统。

3、典型的调度算法

调度算法学习思路:1)用于作业调度还是进程调度 2)抢占式还是非抢占式 3)优点缺点 4)是否会导致饥饿

1)先来先服务调度算法(FCFS)

选择最先到达的作业或进程

1、既可用于作业调度,又可进程调度

2、非抢占式

3、优点:算法简单,但效率低 缺点:对长作业有利,对短作业不利;有利于CPU繁忙型作业,不利于I/O繁忙型作业

4、不会导致饥饿

2)短作业优先调度算法(SJF)

对短作业(进程)优先调度

1、既可用于作业调度,又可进程调度

2、分为抢占式和非抢占式

3、优点:在所有进程几乎同时到达的情况下,SJF的平均等待时间、平均周转时间最少

​ 缺点:该算法对长作业不利,未考虑作业的紧迫程度

4、会导致饥饿现象

非抢占式:

抢占式:

3)高响应比优先调度算法

在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务

响应比=等待时间+运行时间 / 运行时间

1、既可用于作业调度,又可进程调度

2、非抢占式

3、优点:综合考虑了等待时间和运行时间(要求服务时间),等待时间相同时,要求服务时间短的优先(SJF的优点)要求服务时间相同时,等待时间长的优先(FCFS的优点),对于长作业来说,随着等待时间越来越久,其响应比也会越来越大,从而避免了长作业饥饿的问题。

4、不会导致饥饿现象

4)优先级调度算法

1、既可用于作业调度,又可进程调度

2、分为抢占式和非抢占式

根据进程创建后按其优先级是否可以改变将进程优先级分为:1、静态优先级 2、动态优先级

进程优先基带设置可参照以下原则:

1、系统进程>用户进程

2、交互型进程>非交互型进程(前台进程>后台进程)

3、I/O型进程>计算型进程

非抢占式:

抢占式:

5)多级反馈队列调度算法

算法规则:设置多级就绪队列,各级队列优先级从高到低,时间片从小到大新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经是在最下级的队列,则重新放回该队列队尾,只有第k 级队列为空时,才会为k+1级队头的进程分配时间片

1、用于进程调度

2、抢占式

3、优点:兼顾长短作业,有较好的响应时间

4、会导致饥饿

6)时间片轮转调度算法

按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。

1、用于进程调度(只有作业放入内存建立了相应的进程后,才能被分配处理机时间片)

2、抢占式

3、优点:公平、响应快,适用于分时操作系统

​ 缺点:由于高频率的进程切换,因此有一定开销;不区分任务的紧急程度。

4、不会导致饥饿

5、时间片应选择合适,太大会退化成先来先服务算法,太小会导致进程之间过于频繁切换,使处理机开销增大

比起早期的批处理操作系统来说,由于计算机造价大幅降低,因此之后出现的交互式操作系统(包括分时操作系统、实时操作系统等)更注重系统的响应时间、公平性、平衡性等指标。而这几种算法恰好也能较好地满足交互式系统的需求。因此4、5、6这三种算法适合用于交互式系统。(比如UNIX使用的就是多级反馈队列调度算法)

进程切换

上下文切换:指CPU从一个进程的运行转到另一个进程上运行,在这个过程中,进程的运行环境发生了实质性的变化

模式切换:用户态和内核态的切换

题目:

1、时间片轮转调度算法是为了() A

A.多个用户能及时干预系统 B.使系统变得高效

C.优先级较高的进程得到及时响应 D.需要CPU时间最少的进程最先做

2、下列调度算法中,()调度算法是绝对可抢占的。 B

A.先来先服务 B.时间片轮转 C.优先级 D.短进程优先

3、假设系统中所有进程同时到达,则使进程平均周转时间最短的是()调度算法 D

A.先来先服务 B.时间片轮转 C.优先级 D.短进程优先

4、下列与进程调度有关的因素中,在设计多级反馈队列调度算法时需要考虑的是()I II III IV

I 就绪队列的数量 II 就绪队列的优先级

III 各就绪队列的调度算法 IV 进程在就绪队列间的迁移条件

操作系统——处理机调度相关推荐

  1. 操作系统--处理机调度

    操作系统–处理机调度 三个层次 高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程 中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内 ...

  2. 操作系统 - 处理机调度仿真

    实验一:处理机调度仿真(10学时) 实验内容: 在处理机三级调度系统中,编程仿真作业调度与进程调度.作业调度采用短作业优先的方式,进程调度采用优先级方式或时间片轮转方式. 实验目的: 现代操作系统以进 ...

  3. 操作系统-处理机调度详解(调度层次及FCFS、SPF、RR等算法)

    目录 调度层次 处理机调度算法 评价指标 非剥夺式/抢占式 非抢占式优先级调度算法 先来先服务(FCFS) 短进程优先(SPF) 响应比优先算法(HRRN) 剥夺式/抢占式 最短剩余时间优先(SRTN ...

  4. 操作系统—处理机调度

    建议将思维导图保存下来观看,或者点击这里在线观看

  5. 操作系统学习笔记 第三章:处理机调度与死锁(王道考研)

    本文章基于网课: 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系 ...

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

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

  7. 处理机调度实验c语言,操作系统实验处理机调度C语言实现

    操作系统实验处理机调度C语言实现 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...

  8. 操作系统(十一)处理机调度概述

    在多道程序系统中,调度是指资源分配,而处理机调度则指的是对处理机这种资源的分配. 处理机调度算法是指根据处理机分配策略所规定的处理分配算法,在不同的操作系统中采用的调度方式和调度算法并不完全相同. 一 ...

  9. 操作系统(十三)处理机调度的概念、层次

    2.2.1 处理机调度的概念.层次 目录 2.2.1 处理机调度的概念.层次 2.2.1.1 处理机调度的概念 2.2.1.2 处理机调度的三个层次 2.2.1.3 小结 2.2.1.1 处理机调度的 ...

最新文章

  1. JavaScript如何获得项目根路径
  2. SAP——102和122和161区别
  3. 谈谈如何学习flutter之flutter成神之路
  4. RabbitMQ的元数据重建
  5. 设计行业专业素材导航网站|行业流行
  6. Linux系统管理(5)——使用yum快速搭建LAMP环境【方便快捷版】
  7. LuaForUnity8:uLua简介
  8. 打开MSDTC的方法(图解)
  9. 硬盘测试软件得分数据怎么看,SSD硬盘测试结果分析怎么看的
  10. 我的团长我的团第十四集
  11. 触动精灵mysql用法教程_触动精灵如何使用 触动精灵脚本编写教程攻略大全
  12. 表单ajax提交插件,详解javascript表单的Ajax提交插件的使用
  13. Mac修改shell版本(类型)
  14. 【类不类三】来自星星的哥顿人与正则表达式
  15. 你的项目刚刚启动?是时候考虑Globalization了! 1
  16. 关于分布式存储,这是你应该知道的
  17. 工程流体力学笔记暂记25 (管内流动的流态与损失-雷诺数)
  18. 一步掌握关键运营数据!金蝶用友标准方案有点东西
  19. 虚拟机Linux共享文件夹设置
  20. 黄金多头全面上攻 趁胜追击冲击千九关口

热门文章

  1. 字体在ppt中可以整体替换吗_如何批量替换PPT中的字体?
  2. dialog 弹出框,遮罩层覆盖内容
  3. 纪念品分组java_纪念品分组 (Java代码)
  4. 试题 算法训练 礼物
  5. 【Unity3D插件】Glow插件分享《边缘发光插件》
  6. 智能指纹锁迎来大风口,能否在三年内成为大众消费品?
  7. 【Pytorch学习笔记2】Pytorch的主要组成模块
  8. windows权限管理
  9. 双十一最后一天该怎么入手,几款必备的好物分享
  10. ldap服务器配置信息错误,客户域控启用了LDAP服务器签名要求导致配置域信息失败...