调度算法1

一、 先来先服务FCFS(First Come First Serve)

        先来先服务"(First Come, First Served,简称FCFS)是一种调度算法,常用于处理队列中的任务或进程。它的基本原则是按照任务或进程到达的顺序进行处理,即先到达的任务先被处理,后到达的任务排在后面等待执行。

        在计算机领域,FCFS常用于操作系统中的进程调度。当多个进程处于就绪状态时,操作系统按照它们进入就绪队列的顺序依次选择下一个要执行的进程。这种调度算法简单直观,但可能导致"先来先服务"效应,即如果一个长时间运行的任务占用了CPU,那么后续的任务需要等待较长时间才能执行,权周转时间大

        总的来说,FCFS是一种简单而直观的调度算法,但并不总是能够提供最佳性能,特别是在面对长任务和短任务混合的情况下。其他调度算法如最短作业优先(SJF)和优先级调度等被设计用来解决一些FCFS可能遇到的性能问题。        

二、 最短作业优先SJF、最短进程优先SPF、抢占式最短剩余时间优先SRTN

1. SJF(短作业优先)

定义: SJF 是一种非抢占式的进程调度算法,也被称为 Shortest Job Next 或 Shortest Job First。该算法根据每个进程的执行时间长度来决定下一个要执行的进程。

工作原理:

  1. 系统为就绪队列中的所有进程按照它们的执行时间排序,从短到长。
  2. 调度器选择就绪队列中执行时间最短的进程,并将其分配给 CPU 执行。
  3. 进程一旦开始执行,将一直运行直到完成,没有被其他进程抢占。

优点:

  • 最小化平均等待时间。
  • 提高系统的吞吐量。

缺点:

  • 难以准确估计任务的执行时间。
  • 长任务可能会一直等待短任务的完成(短作业优先效应)。

应用:

  • SJF 在批处理系统中效果较好,但在交互式系统中可能导致用户体验下降。
2. SPF(短进程优先)

        定义: SPF 是一种非抢占式的进程调度算法,它与 SJF 类似,但是在 SPF 中,进程被视为一组关联的任务(即一个进程)。SPF 选择执行时间最短的进程,而不是任务,来决定下一个要执行的进程。

工作原理:

  1. 系统为就绪队列中的所有进程按照它们的执行时间长度排序,从短到长。
  2. 调度器选择就绪队列中执行时间最短的进程,而不是任务,并将其分配给 CPU 执行。
  3. 进程一旦开始执行,将一直运行直到完成,没有被其他进程抢占。

优点:

  • 最小化平均等待时间。
  • 提高系统的吞吐量。

缺点:

  • 长进程可能一直等待,导致长进程等待短进程的完成(短作业优先效应)。

应用:

  • SPF 在批处理系统中效果较好,但在交互式系统中可能导致用户体验下降。
3. SRTN(抢占式最短剩余时间优先算法)

        最短剩余时间优先算法:每当有进程加入就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度。

  1. 操作系统为就绪队列中的所有进程按照它们的剩余执行时间排序,从短到长。
  2. 调度器选择剩余执行时间最短的进程,并将其分配给 CPU 执行。
  3. 如果有一个新的进程到达,且其剩余执行时间比当前执行进程的剩余执行时间更短,那么调度器可以中断当前执行的进程,转而执行新到达的进程。

优点:

  • 最小化每个任务的等待时间,因为它会动态考虑任务的实际执行情况。

缺点:

  • 实时性能可能较差,因为长任务可能会一直等待。
  • 实现相对较复杂,需要准确追踪每个任务的剩余执行时间。

应用:

  • SRTN 适用于需要实时响应的系统,但可能由于频繁的抢占而导致上下文切换的开销增加。

三、 高响应比优先HRRN

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

  1. 对于每个就绪进程,计算其响应比率,响应比率计算公式为:响应比率 = (等待时间 + 服务时间)/ 服务时间。
  2. 选择具有最高响应比率的进程,并将其分配给 CPU 执行。
  3. 进程一旦开始执行,将一直运行直到完成,没有被其他进程抢占。

优点:

  • 考虑了等待时间和服务时间,综合考虑了短进程和长进程,有助于避免长进程一直等待的问题。
  • 提高系统的整体性能。

缺点:

  • 响应比率的计算可能需要频繁的更新,增加了计算的开销。
  • 对于短进程和长进程的处理存在一定的权衡,可能不适用于所有场景。

应用:

  • HRRN 适用于批处理系统和交互式系统,希望综合考虑各个进程的等待时间和服务时间,以提高整体性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/264618.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的医院交互系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

AWR1642 boost开发板支持的TI参考设计

打开radar_toolbox_1_30_00_05\source\ti\examples\examples_overview,通过输入“1642”查找AWR1642 BOOST支持的参考设计,通过筛选,支持AWR1642 BOOST的参考设计如下: 挑选出两个参考设计上手,一个是“nonos_oob_16xx",不带OS;另一个是”short range radar“,比较…

ConcurrentModificationException日志关键字报警引发的思考

本文将记录和分析日志中的ConcurrentModificationException关键字报警,还有一些我的思考,希望对大家有帮助。 一、背景 近期,在日常的日志关键字报警分析时,发现我负责的一个电商核心系统在某时段存在较多ConcurrentModificatio…

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

C# WPF上位机开发(通讯协议的编写)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 作为上位机,它很重要的一个部分就是需要和外面的设备进行数据沟通的。很多时候,也就是在这个沟通的过程当中,上…

使用python绘制现有彩票记录走势图

在数据分析和可视化的领域中,彩票走势图是一个经典的例子,它可以展示彩票数字随时间的出现频率和趋势。这里使用英国使用EuroMillions彩票的历史数据作为示例,使用Python和Matplotlib库来创建一个简单的走势图。可以在以下网站搜索.csv文件。…

dell r720远程网络安装ubuntu20.04(无U盘)

登陆后界面,在主界面上,我们就可以看到各个硬件组件的状态。在快速启动任务栏中,可以对系统电源进行操作,如开机、关机等。安装操作系统,在虚拟控制台预览处点击>启动 按照浏览器出现的提示确定安装控件等&#x…

实现加盐加密方法以及java nio中基于MappedByteBuffer操作大文件

自己实现 传统MD5可通过彩虹表暴力破解, 加盐加密算法是一种常用的密码保护方法,它将一个随机字符串(盐)添加到原始密码中,然后再进行加密处理。 1. 每次调用方法产生一个唯一盐值(UUID )密码…

uc_16_UDP协议_HTTP协议

1 UDP协议 适合游戏、视频等情景,安全性要求不高,效率要求高。 1)UDP不提供客户机与服务器的链接: UDP的客户机与服务器不必存在长期关系。一个UDP的客户机在通过一个套接字向一个UDP服务器发送了一个数据报之后,马上…

VOL-vue 框架 文件上传控件关于大文件上传等待的修改

我的项目在测试voltable列表组件中对阿里云OSS做附件上传时,几十M的文件可能就会需要一段时间来上传,才能有OSS的状态和链接返回。 但是控件VolUpload.vue并没有去在这方面做任何交互体验上的控制,而且VolUpload.vue本身写的几个上传函数都是…

MyBatis 四大核心组件之 Executor 源码解析

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

【计算机网络】滑动窗口 流量控制 拥塞控制 概念概述

参考资料:计算机网络第八版-视频课程