【操作系统】调度算法

这篇具有很好参考价值的文章主要介绍了【操作系统】调度算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

🏫基本概念

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

🏩短作业优先(SJF, Shortest Job First)

🍆细节

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

🌇时间片轮转(RR,Round-Robin)

🏰时间片大小的影响

🗼优先级调度算法

🌄多级反馈队列调度算法

🌈实例 

🗽多级队列调度


 

🏫基本概念

非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
 

剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。
 

饥饿:某进程/作业长期得不到服务。

等待时间:指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。

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

带权周转时间:作业周转时间 / 作业实际运行的时间

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

【操作系统】调度算法


🏩短作业优先(SJF, Shortest Job First)

  1. 短作业/进程优先调度算法:每次调度时选择当前已到达运行时间最短的作业/进程。
  2. 严格来说,用于进程调度应该称为短进程优先调度算法(SPF)
  3. 抢占式的短作业优先算法又称“最短剩余时间优先算法”(SRTN):每当有进程加入就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度。

【操作系统】调度算法


🍆细节

【操作系统】调度算法


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

高响应比优先算法:非抢占式的调度算法,只有当前运行的进程主动放弃CPU时(正常/异常完成,或主动阻塞),才需要进行调度,调度时计算所有就绪进程的响应比,选响应比最高的进程上处理机。

【操作系统】调度算法

以上三种算法主要关心对用户的公平性、平均周转时间、平均等待时间等评价系统整体性能的指标,但是不关心“响应时间”,也并不区分任务的紧急程度,因此对于用户来说,交互性很糟糕。因此这三种算法一般适合用于早期的批处理系统,当然,FCFS算法也常结合其他的算法使用,在现在也扮演着很重要的角色。

🌇时间片轮转(RR,Round-Robin)

时间片轮转调度算法:轮流让就绪队列中的进程依次执行一个时间片(每次选择的都是排在就绪队列队头的进程)

【操作系统】调度算法


【操作系统】调度算法


【操作系统】调度算法


【操作系统】调度算法


🏰时间片大小的影响

  1. 如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大。
  2. 另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小。

🗼优先级调度算法

  1. 非抢占式的优先级调度算法:每次调度时选择当前已到达优先级最高的进程。当前进程主动放弃处理机时发生调度。
  2. 抢占式的优先级调度算法:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。另外,当就绪队列发生改变时也需要检查是会发生抢占

【操作系统】调度算法


【操作系统】调度算法


🌄多级反馈队列调度算法

【操作系统】调度算法

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

🌈实例 

【操作系统】调度算法

  1. 进程1在第1级队列执行一个时间片,进程1未结束,进入第2级队列
  2. 进程2在第1级队列执行一个时间片,进程2未结束,进入第2级队列
  3. 进程1在第2级队列执行两个时间片,进程1未结束,进入第3级队列
  4. 进程2在第2级队列执行一个时间片,由于此时进程3进入第1级队列,故执行优先级更高的进程3一个时间片,进程3执行完毕。
  5. 第1级队列为空,为第2级队列分配时间片,此时只有进程2,进程2在第2级队列执行两个时间片,进程2执行完毕。
  6. 进入第3级队列,进程1在第3级队列执行四个时间片,进程1尚未结束,但是进程1已经处于最后一个队列,则重新放回最下级队列队尾,执行最后一个时间片,结束进程1。

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

🗽多级队列调度

【操作系统】调度算法文章来源地址https://www.toymoban.com/news/detail-473932.html

到了这里,关于【操作系统】调度算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 操作系统中的调度算法

    处理机调度层次: 1.高级调度( 作业 调度/) 2.中级调度( 内存 调度/) 3.低级调度( 进程 调度/) 一、作业调度算法 1.先来先服务算法(FCFS) 2.短作业优先算法(SJF) 3.优先级调度算法(PR) 4.高响应比调度算法(PR特例) 5.时间片轮转算法(RR) 6.多级队列调度算法 7.基

    2024年02月10日
    浏览(31)
  • 操作系统之调度算法(学习笔记)

    周转时间 :从作业被提交给系统开始,到作业完成为止的这段时间间隔称为作业周转时间。( 周转时间=作业完成时间-作业提交时间 ) 平均周转时间 :作业周转总时间 / 作业个数( 平均周转时间=(作业1周转时间+作业2周转时间+……作业n周转时间)/n ) 服务时间 :进程在

    2024年02月03日
    浏览(31)
  • 【操作系统之进程调度算法习题】

    在一个具有三道作业的批处理系统中,作业调度采用先来先服务(FCFS) 调度算法,进程调度采用 短作业优先调度算法。现有如下所示的作业序列, 注意 1.具有三道作业的批处理系统指的是内存最多能有3个作业; 2.表格样式是考试时候的格式,练习时候也按这个格式练习各作业的周

    2024年02月11日
    浏览(39)
  • 《操作系统》—— 处理机调度算法

    前言: 在之前的文章中,我们已经了解了进程和线程相关的基本概念,今天我们将要了解的是关于处理机调度相关的知识。   目录 (一)调度的概念 1、调度的基本概念 2、调度的层次 3、三级调度的关系 (二)调度的目标 (三)调度的实现 1、调度器 2、调度的时机、切换

    2024年02月02日
    浏览(50)
  • 操作系统磁盘调度算法(c++)

    先来先服务这个没什么好说了,按顺序来就是了。将需要访问的磁道序列直接作为算法的访问序列,然后将每次移动的磁道数量记录下来。 最短寻道时间优先,每次执行完,看一下离自己最近的哪条磁道有任务,就移动过去执行。每次寻找下一次访问的磁道号时,都遍历磁道

    2024年02月04日
    浏览(30)
  • 操作系统进程调度算法——先来先服务、时间片轮转、优先级调度算法

    (1)算法内容: 先来先服务调度算法是一种最简单的调度算法,可以应用于高级调度也可以运用于低级调度。高级调度时,FCFS调度算法按照作业进入后备作业队列的先后顺序选择作业进入内存,即先进入后备作业队列的作业被优先选择进入内存,然后为选中的作业创建进程

    2023年04月21日
    浏览(30)
  • 磁盘调度算法(操作系统实验 C++)

    通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的实现方法。 问题描述: 设计程序模拟先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开

    2024年02月07日
    浏览(44)
  • 操作系统实验—进程调度算法(java)

    目录 文章目录 前言 一、实验原理 二、实验步骤 1.创建PCB类 2.创建创建类 3.设计主窗口类 4.调度界面函数 5.算法类及其调度算法通用函数 6.进程调度算法函数 总结 操作系统实验1:进程调度算法,步骤3、4在一个类中,步骤5、6在一个类中。 (1)先到先服务调度算法:按照进程提

    2024年02月04日
    浏览(39)
  • 【操作系统】七大处理机调度算法详解

            处理机调度是操作系统中最核心的问题之一,它负责分配处理机的时间,使得各个进程能够按照一定的顺序得到执行。处理机调度算法的好坏直接影响到整个系统的性能和效率。因此,研究处理机调度算法对于提高计算机系统的性能和效率具有非常重要的意义。

    2024年02月03日
    浏览(33)
  • 操作系统有关进程调度算法(含先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法)

    本文采用的进程调度算法有:先来先服务,短作业优先,优先级调度算法和时间片轮转调度算法。 针对这四种算法,我采用的是建立数组结构体,如: 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。采用FCFS算法,每次从

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包