首页 > 编程语言 >操作系统三种处理机调度算法介绍

操作系统三种处理机调度算法介绍

时间:2024-11-26 22:29:45浏览次数:9  
标签:操作系统 处理机 作业 J1 J3 算法 时间 周转 执行

以下是对先来先服务(FCFS)、短作业优先(SJF)、高响应比优先(HRRN)详细介绍:

先来先服务(FCFS)算法

• 算法原理:按照作业或进程到达系统的先后顺序进行调度,先到达的先被服务,就如同日常生活中排队办事一样,先来的人先得到处理。

• 计算步骤:

1. 记录每个作业(或进程)的到达时间和服务时间(即执行该作业所需的时间)。

2. 依据到达时间对所有作业进行排序,形成一个等待队列,到达时间早的排在前面。

3. 依次计算每个作业的周转时间,周转时间 = 作业完成时间 - 作业到达时间。

4. 最后计算平均周转时间,平均周转时间 = 所有作业周转时间之和÷作业数量。

• 举例:假设有三个作业 J1、J2、J3,它们的到达时间分别为 0、1、2,服务时间分别为 3、2、1。

• 按照 FCFS 算法,J1 先执行,其完成时间就是它的服务时间 3(因为它 0 时刻就到达了),周转时间为 3 - 0 = 3。

• 接着 J2 执行,它的开始时间是 J1 完成的时间 3,完成时间就是 3 + 2 = 5,周转时间为 5 - 1 = 4。

• 最后 J3 执行,开始时间是 5,完成时间是 5 + 1 = 6,周转时间为 6 - 2 = 4。

• 平均周转时间为 (3 + 4 + 4)÷3 = 11÷3。

短作业优先(SJF)算法

• 算法原理:优先选择估计运行时间最短的作业或进程进行调度,旨在使系统整体的平均周转时间尽可能短,让短作业能快速得到处理机资源并完成。

• 计算步骤:

1. 同样先记录每个作业的到达时间和服务时间。

2. 在每次处理机空闲时,从当前的就绪队列中挑选出服务时间最短的作业来执行。

3. 按照和 FCFS 算法相同的方式计算每个作业的周转时间以及平均周转时间,即周转时间 = 完成时间 - 到达时间,平均周转时间 = 所有作业周转时间之和÷作业数量。

• 举例:还是上述的 J1、J2、J3 三个作业。

• 首先比较它们的服务时间,J3 的服务时间最短为 1,所以 J3 先执行,它在到达时间 2 开始执行,完成时间就是 2 + 1 = 3,周转时间为 3 - 2 = 1。

• 接着 J2 执行,开始时间是 3,完成时间为 3 + 2 = 5,周转时间为 5 - 1 = 4。

• 最后 J1 执行,开始时间是 5,完成时间是 5 + 3 = 8,周转时间为 8 - 0 = 8。

• 平均周转时间为 (1 + 4 + 8)÷3 = 13÷3。

高响应比优先(HRRN)算法

• 算法原理:响应比 =(等待时间 + 服务时间)÷服务时间。每次调度时选择响应比最高的作业或进程,综合考虑了作业的等待时间和服务时间,既照顾到了短作业,又不会让长作业长时间等待而得不到执行机会。

• 计算步骤:

1. 记录每个作业的到达时间和服务时间。

2. 计算每个作业的初始响应比,在处理机空闲时,选择响应比最高的作业执行。

3. 当有作业正在执行时,其余作业的等待时间会随着时间推移而增加,所以需要在每次调度决策前重新计算各作业的响应比。

4. 同样按照周转时间的常规计算方式算出每个作业的周转时间以及平均周转时间。

• 举例:假设有三个作业 J1、J2、J3,到达时间分别为 0、1、2,服务时间分别为 3、2、1。

• 初始时,J1 响应比为(0 + 3)÷3 = 1,J2 响应比为(0 + 2)÷2 = 1,J3 响应比为(0 + 1)÷1 = 1,因为 J1 先到达,所以 J1 先执行。

• 当 J1 执行到时间为 1 时,J2 的等待时间变为 1,响应比为(1 + 2)÷2 = 1.5,J3 的等待时间变为 1,响应比为(1 + 1)÷1 = 2,此时 J3 响应比最高,J3 执行。

• J3 完成时间为 2(到达时间 2 开始执行,服务时间 1),周转时间为 2 - 2 = 0。

• 接着 J2 执行,完成时间为 2 + 2 = 4,周转时间为 4 - 1 = 3。

• J1 继续执行完,完成时间为 4 + 3 = 7,周转时间为 7 - 0 = 7。

• 平均周转时间为 (0 + 3 + 7)÷3 = 10÷3。

对比来看:

• FCFS 算法简单直观,容易实现,但对短作业不太友好,长作业先到达时可能导致短作业等待时间过长,平均周转时间可能较长。

• SJF 算法能有效降低平均周转时间,让短作业优先执行,但它需要事先知道作业的服务时间,而且长作业可能长时间得不到执行机会,容易出现“饥饿”现象。

• HRRN 算法在一定程度上兼顾了长作业和短作业,通过动态计算响应比来决定执行顺序,避免了 SJF 中长作业饥饿的问题,不过计算响应比会增加一定的系统开销。

标签:操作系统,处理机,作业,J1,J3,算法,时间,周转,执行
From: https://blog.csdn.net/m0_74349025/article/details/144069754

相关文章

  • node.js毕设基于智能算法的健康食材订购系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于健康食材订购系统的研究,现有研究主要以传统的食材订购流程优化为主,如提高配送效率、降低成本等方面。专门针对运用智能算法来构建健康食材订购系统......
  • 如何使用Matlab实现基于柯西变异和正余弦改进的麻雀搜索算法(SCSSA)优化卷积-长短期记忆
    4-SCSSA-CNN-BiLSTM时间序列预测柯西变异和正余弦改进的麻雀搜索算法(SCSSA)优化卷积-长短期记忆神经网络的数据预测模型Matlab语言1.Matlab版本要在2020B以上。优化的参数为:学习率,隐藏层节点数,正则化参数。评价指标包括:R2、MAE、RMSE和MAPE等,图很多,出图结果如图所示,2......
  • 如何实现基于柯西变异和正余弦改进的麻雀搜索算法(SCSSA)优化卷积-长短期记忆神经网络(CN
    97-融合正余弦和柯西变异的麻雀搜索算法左侧窗口:列出了多个.m文件,这表明这是一个MATLAB项目,包含了不同的脚本和函数文件。例如,“SSA.m”,“PSO.m”,“GWO.m”,“SCSSA.m”等,这些都是不同优化算法的实现文件。右侧窗口:展示了一张三维图形(左上角),可能是某个测试函数的表面图,通......
  • 代码随想录算法训练营day58| 117.软件构建 47.参加科学大会
    学习资料:https://www.programmercarl.com/kamacoder/0117.软件构建.html#拓扑排序的背景图论拓扑排序:收集入度为0的节点,删掉该节点后其他节点的入度可能变化,记得更新,然后继续删除入度为0的点,直到没有。整个过程的顺序就对应了有向图dijkstra算法:类似prim,也是贪心,找距离源点最近......
  • 算法练习:34. 在排序数组中查找元素的第一个和最后一个位置
    题目链接:34.在排序数组中查找元素的第一个和最后一个位置。在这里我们可以用暴力的解法:就是一次判断,第一次遇见的元素==target,和最后一次遇见的,就保存起来但是这样暴力解法时间复杂度为O(N)。时间复杂度超出了题目意思。优化解法:因为数组是有序的,我们可以根据二分查找思想......
  • JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化
    目录JavaScript中通过Array.sort()实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)一、为什么要使用Array.sort()二、Array.sort()的使用与技巧1、基础语法2、返回值3、使用技巧三、Array.sort()的复杂用法与实际......
  • 多目标优化算法:多目标红尾鹰算法(MORTH)求解WFG1-WFG9,提供完整MATLAB代码
    一、红尾鹰算法红尾鹰算法(Red-tailedhawkalgorithm,RTH)是2023年提出的一种新型群智能优化算法,它通过模拟红尾鹰的狩猎行为来解决优化问题。以下是对红尾鹰算法的详细介绍:算法简介红尾鹰算法(RTH)模拟了红尾鹰的狩猎行为,具有进化能力强、搜索速度快、寻优能力强的特点。该......
  • HotSpot算法的实现细节
    HotSpot算法的实现细节根节点枚举HotSpot是使用一组称为OopMap的数据结构来直接得到对象引用的。一旦类加载动作完成的时候,HotSpot就会把对象内什么偏移量上是什么类型的数据计算出来,存放到OopMap中,这样收集器在扫描时就可以直接得知这些信息了,并不需要真正一个不漏地从G......
  • Redis LRU算法和LFU算法
    Redis的近似LRU和LFU算法基本概念Least:最小、最少LRU(LeastRecentlyUsed)全称是最近最少使用LFU全称是最少使用算法(LeastFrequentlyUsed:使用频率最少)标准LRU算法实现原理:使用链表存储元素并按照一定的顺序进行排列。当空间满的时候,会踢掉链表尾部的元素。当某个元......
  • 贪心算法——装船问题
    1.问题装船问题Description王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中挑选若干吨上船,在满足货物总重量小于等于M的前提下,运走的货物的价重比最大。Input输入数据的第一行有一个......