文章目录

  • 知识总览
  • 几个需要思考的问题
  • 调度算法
    • 先来先服务(FCFS)
      • 实例
      • 小结
    • 短作业优先
      • 非抢占式短作业优先(SJF)
        • 实例
      • 抢占式最短剩余时间优先(SRTN)
        • 实例
      • 小细节
      • 小结
    • FCFS与SJF的思考
    • 高响应比算法
      • 实例
      • 小结
  • 总结

知识总览

几个需要思考的问题

各种调度算法的学习思路

  1. 算法思想?
  2. 算法规则?
  3. 这种调度算法是用于作业调度还是进程调度?
  4. 抢占式?非抢占式?
  5. 优点和缺点?
  6. 是否会导致饥饿?(饥饿的意思就是某进程/作业长期得不到服务,就会处于饥饿的状态)

调度算法

先来先服务(FCFS)

类似排队买东西付钱。只有进程主动放弃处理机时,才会选择进程调度。

实例


复习一下之前评价的性能指标算法,周转时间是完成时间减去到达时间,这里要注意的是完成时间,应该算总的完成时间,完成了几个进程就得加进去,比如算第二个进程的周转时间,就是用总的完成时间(包括第一个),即7+4,减去第二个进程的到达时间2,即为9。带权周转时间(意思就是这个进程的周转时间比运行时间大多少倍的概念,P3这个进程体验很糟糕),是周转时间比上运行时间,用第一部分算出的周转时间比一下就行,需要注意的是带权周转时间是大于等于1的。还有就是等待时间,就是周转时间减去运行时间,在带有IO操作的部分,还必须把IO操作的时间给减去才能得到等待时间。所以算出来了周转时间其他的指标都好算。

小结


综上,FCFS就是对长作业有利,对短作业不利,因为都是排队,总是会被执行到,所以不会导致饥饿。

短作业优先

非抢占式短作业优先(SJF)

就是最短的作业/进程,优先得到服务。(所谓最短,是指要求服务时间最短)

实例


因为是短作业优先,在0时刻只有P1到达。所以只服务P1,P1运行完后,系统时钟到了时刻7,这时候其他进程也都到达了,因为短作业优先,所以先P3,因为P3的运行时间最短,又因为P2,P4运行时间相同,但是P2先到达,所以优先运行P2,最后的顺序就是P1324。
比较平均的评价指标,发现SJF是要比FCFS要好的。

抢占式最短剩余时间优先(SRTN)

因为这是抢占式的,每当有新的进程加入到就绪队列的时候,会引发就绪队列改变,现在就是要看一下新来的进程会不会抢占处理机。

实例


就是每加入一个进程,都会将当前进程的剩余时间与新加的进程的运行时间进行比较,哪个快就先做哪个,另外一个就挂起。

小细节



默认都是非抢占式的算法。

小结

FCFS与SJF的思考


FCFS没考虑好作业的运行时间,导致对长作业有利短作业不利;SJF则是完全不考虑等待时间,导致对短作业有利长作业不利

高响应比算法

要综合考虑作业/进程的等待时间和要求服务的时间。
响应比就是考虑了等待时间与要求服务时间的一个指标,计算公式如上所示。响应比肯定是大于等于1的数。

实例

因为是非抢占式的,所以最开始应该是按照FCFS执行,就执行P1,P1执行完后,计算剩下各个进程的响应比,则找到了P3响应比最大,就执行P3,之后再类推。

小结


综合了FCFS以及SJF的优点。

总结

OS2.2.4:FCFS、SJF、HRRN调度算法相关推荐

  1. FCFS,SJF,HRRN调度算法

    FCFS,SJF,HRRN调度算法 各种调度算法的学习思路 算法思想 算法规划 这种调度算法是用于作业调度还是进程调度 抢占式?非抢占式? 优缺点 是否会导致饥饿(某进程/作业长期得不到服务) 先来先 ...

  2. FCFS、SJF、HRRN调度算法

    文章目录 FCFS.SJF.HRRN调度算法 知识总览图 先来先服务(FCFS,First Come First Serve) 短作业优先(SJF,Shortest Job First) 对FCFS和 ...

  3. 【操作系统 - 1】先来先服务FCFS和短作业优先SJF进程调度算法

    操作系统系列 学习至此,发现很多学了但很久没用的知识,久而久之,慢慢遗忘.等哪天还需要的话,却发现已经忘得差不多了,即使整理了文档(word等),还是得从头再学一遍.读研第一学期,发现很多东西都可以从 ...

  4. FCFS,SJF以及PSA进程调度算法效率的比较

    实现 下面是用 Java 程序比较 FCFS,SJF 和 PSA 算法效率的示例代码: FCFS 思路 对于 FCFS 算法,我们可以定义一个 Process 类来表示一个进程,其中包含进程名称.到达 ...

  5. 《操作系统》实验一:先来先服务FCFS和短作业优先SJF进程调度算法

    [实验题目]:先来先服务FCFS和短作业优先SJF进程调度算法 [实验学时]:4学时 [实验目的] 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变.进程调度的策略及对系统性能的评价方法. ...

  6. FCFS,SJF以及PSA进程调度算法的比较

    实现 下面是用 Java 程序比较 FCFS,SJF 和 PSA 算法效率的示例代码: FCFS 思路 对于 FCFS 算法,我们可以定义一个 Process 类来表示一个进程,其中包含进程名称.到达 ...

  7. 操作系统(五):FCFS/SJF/非抢占优先级/RR

    操作系统(五):FCFS/SJF/非抢占优先级/RR 一.题目1(书上170页5.7) 5.4 5.4 Consider the following set of processes, with th ...

  8. 最短作业优先(SJF)调度算法

    最短作业优先(SJF)调度算法将每个进程与其下次 CPU 执行的长度关联起来.当 CPU 变为空闲时,它会被赋给具有最短 CPU 执行的进程.如果两个进程具有同样长度的 CPU 执行,那么可以由 FC ...

  9. 计算机操作系统学习之FCFS、SJF和HRRN调度算法

    文章目录 一.FCFS算法(先来先服务) 二.SJF算法(短作业优先算法) 1.不可抢占的情况(即SJF算法) 2.可抢占的情况(最短剩余时间优先算法 即SRTN算法) 3.优缺点 4.补充 三.HR ...

最新文章

  1. Finalize/Dispose/Destructor
  2. java哈希表单例使用_java 、HashMap 和单例
  3. Share Point 2013使用Windows PowerShell 获取,删除UserProFile
  4. 组件化开发,制作Cocoapods Git库
  5. 3.5 集束搜索的误差分析-深度学习第五课《序列模型》-Stanford吴恩达教授
  6. Study 1 —— HTML5概述
  7. Java中的定制国际化(i18n)
  8. HTML DOM教程 36-HTML DOM Link 对象
  9. 多线程启动定时器 会等待上一次执行完成?_Java多线程
  10. Php的if自动转换类型,php类型的自动转换
  11. windows下执行testng用例
  12. python opencv 利用 GrabCut 算法(opencv已经实现)从图像中分离出前景
  13. centos ipv6 网卡_Linux_03-Centos的基本网络配置
  14. Again Twenty Five!
  15. java 基础学习——基本技巧(一)
  16. perl操作postsql
  17. 西南科技大学OJ题 集合的交运算的实现1045
  18. Ubuntu常用命令
  19. 整站SEO优化方案:整站优化的方案的流行格式
  20. 【图像检测-缺陷检测】基于灰度共生矩阵实现痕迹检测matlab代码

热门文章

  1. 关于Vue引用组件时地址报错Already included file name ‘xxx‘ differs from file name ‘xxx‘ only in casing的原因
  2. 4*4薄膜键盘的电路连接和驱动(树莓派)
  3. EPC、EPS以及LTE、SAE的关系
  4. 关于大数据和人工智能发展的思考
  5. MacBook Pro(13 英寸,2011 年末)A1278安装Windows11蓝屏代码WDF_VIOLATION问题解决
  6. labview智能闹钟
  7. oracle11g的g什么意思,oracle11g到底是什么
  8. 工业通讯 | KEBA 控制器通过 NT50 连接西门子 PLC
  9. python网易云爬虫——实现网易云歌词的爬取(输入歌手的id,即可实现歌词的爬取)
  10. 开源要自立?华为如何“复制”Google模式