操作系统-调度算法-1(先来先服务算法 短作业优先 高响应比优先 )

2024-01-31 18:44

本文主要是介绍操作系统-调度算法-1(先来先服务算法 短作业优先 高响应比优先 ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 总览
  • 先来先服务算法
    • 例题
  • 短作业优先
    • 例题(非抢占式的短作业优先调度算法)
    • 例题(抢占式的短作业优先调度算法)
    • 注意
  • FCFS和SJF两种算法的思考
  • 高响应比优先
    • 例题
  • 小结

总览

在这里插入图片描述

先来先服务算法

不会导致饥饿:只要该进程或作业在队列中,那么当其前面的都执行完(前面的总会执行完)后终将会轮到它被服务
在这里插入图片描述

例题

注意运行时间是在CPU运行的时间
等待时间=周转时间-被服务的时间
IO操作和CPU运行都是被服务的时间
在这里插入图片描述

短作业优先

”最短的“:不严谨,看情况判断对错
源源不断地短作业到来的话,长作业可能会产生饥饿现象
在这里插入图片描述

例题(非抢占式的短作业优先调度算法)

时刻零的时候只能执行P1进程,当执行完P1进程后,发现P2和P3和P4都到达了,此时执行运行时间最短的P3,然后P2和P4的运行时间都是一样的,又P2是先到达就绪队列的,所以先调度P2

在这里插入图片描述

例题(抢占式的短作业优先调度算法)

此时调度算法执行的两个时间点:一个是就绪队列改变,此时会比较新到达的进程的剩余时间比当前运行的进程剩余时间。一个是进程完成时,此时会从就绪队列中选择剩余时间最少的上处理机

在这里插入图片描述
运算结果
在这里插入图片描述

注意

在这里插入图片描述

FCFS和SJF两种算法的思考

等待时间长=到达时间早
在这里插入图片描述

高响应比优先

不会导致饥饿
在这里插入图片描述

例题

在这里插入图片描述

小结

这几种调度算法不关系响应时间,也不区分认任务的紧急程度=交互性糟糕
如果一个系统不关注响应时间,并且不区分任务的紧急程度,会导致用户交互性糟糕的原因如下:

  • 用户体验差:如果系统不考虑响应时间,用户可能需要等待很长时间才能得到反馈,这会让用户感到沮丧和不满。
  • 效率低下:不区分任务紧急程度可能导致关键任务被延迟,影响整体工作效率。
    缺乏优先级管理:系统应能根据任务的重要性和紧迫性进行合理排序,否则可能导致资源浪费和目标错位。
  • 存在交互机会少,自然也会使得交互性很糟糕

早期的批处理系统是一种自动处理程序和数据的方式,用户提交一批作业后,不再干预,由系统自动运行
在这里插入图片描述

这篇关于操作系统-调度算法-1(先来先服务算法 短作业优先 高响应比优先 )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/664712

相关文章

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为