操作系统(3) 处理机调度

目录

一、处理机调度概述

1.基本准则

(1)CPU利用率

(2)系统吞吐量 

(3)周转时间

(4)等待时间

(5)响应时间

2.进程调度方式

(1)非剥夺调度方式(非抢占方式)

(2)剥夺调度方式(抢占方式)

二、调度算法

1.FCFS算法(先来先服务)

(1)算法规则:

 (2)适用情况:

(3)优缺点

2.SJF算法(短作业优先)

(1)算法规则:

(2)适用情况:

(3)优缺点:

3.优先级算法

(1)算法规则:

(2)使用情况:

(3)类型:

(4)优先级的类型:

(5)优缺点:

4.RR算法(时间片轮转)

(1)算法思想:

(2)算法规则:

(3)适用情况:

(4)类型:

(5)优缺点:

5.HRRN算法(高响应比优先)

(1)算法思想:

(2)算法规则:

(3)适用情况:

(4)优缺点:

6.多级反馈队列调度算法

(1)算法思想:

(2)算法规则:

(3)适用情况:

(4)类型:

(5)优缺点:

总结


一、处理机调度概述

1.基本准则

不同的调度算法具有不同的特性,在选择调度算法时,必须考虑算法的特性。为了比较处理机调度算法的性能,人们提出了很多评价准则,下面介绍其中主要的几种。

(1)CPU利用率

CPU是计算机系统中最重要和昂贵的资源之一,所以应尽可能使保持“忙”的状态, 使这一资源利用率最高。

(2)系统吞吐量 

  • 表示单位时间内CPU完成作业的数量。 
  • 长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量。 
  • 短作业需要消耗的处理机时间较短,因此能提高系统的吞吐量。 
  • 调度算法和方式的不同,也会对系统的吞量产生较大的影响。 

(3)周转时间

周转时间是指从作业提交到作业完成所经历的时间,是作业等待、在就绪队列中排队、在处理机上运行及进行输入/输出操作所花费时间的总和。 

  • 作业的周转时间:

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

  • 平均周转时间: 

平均周转时间 = (作业1的周转时间 + ...... + 作业n的周转时间)/n

  • 带权周转时间(作业周转时间与作业实际运行时间的比值):

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

  • 平均带权周转时间(多个作业带权周转时间的平均值):

平均带权周转时间 = (作业1的带权周转时间 + ...... + 作业n的带权周转时间) / n 

(4)等待时间

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

(5)响应时间

响应时间指从用户提交请求到系统首次产生响应所用的时间。

2.进程调度方式

是指当某个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即优先权更高的进程进入就绪队列,此时应如何分配处理机的方式。 通常有以下两种进程调度方式: 

(1)非剥夺调度方式(非抢占方式)

非剥夺调度方式是指当一个进程正在处理机上执行时,即使有某个更为重要或紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而进入阻塞态时,才把处理机分配给更为重要或紧迫的进程。

(2)剥夺调度方式(抢占方式)

采用剥夺式的调度,对提高系统吞吐率和响应效率都有明显的好处。但“剥夺” 不是一种任意性行为,必须遵循一定的原则,主要有优先权、短进程优先和时间片原则等。


二、调度算法

1.FCFS算法(先来先服务)

(1)算法规则:

先来先服务算法(first come first server,FCFS)按照作业/进程到达的先后顺序来进行调度。

 (2)适用情况:

可用于作业调度也可用于进程调度。 

(3)优缺点

  • 优点:算法实现简单。 
  • 缺点:对长作业有利,对短作业不利。

2.SJF算法(短作业优先)

(1)算法规则:

短作业优先调度算法(short job first,SJF)以作业的长短来计算优先级,作业越短,其优先级越高。 

(2)适用情况:

可用于作业调度及进程调度。 

(3)优缺点:

  • 优点:“最短的”平均等待时间及平均周转时间。 
  • 缺点:①必须先知道作业的运行时间。 
  • ②对长作业不利,会出现饥饿现象。
  • ③没有考虑作业的紧迫程度。

3.优先级算法

(1)算法规则:

基于进程(作业)的紧迫程度,由外部赋予进程相应的优先级,根据优先级进行调度。 

(2)使用情况:

可用于作业调度也可用于进程调度甚至I/O调度。

(3)类型:

抢占式优先级调度算法:只需出现另一个优先级更高的进程,调度就会发生变化非抢占式优先级调度算法:主动放弃。

(4)优先级的类型:

①静态优先级:在创建进程时确定,其在进程的整个运行期间不变。 

②动态优先级:在创建进程之初,先赋予进程一个优先级,然后动态的调整优先级。

(5)优缺点:

  • 优点:用优先级区分紧急程度,运用于实时os。
  • 缺点:可能导致饥饿(低优先级进程的饥饿)。

4.RR算法(时间片轮转)

(1)算法思想:

时间片轮转算法(Round-Robin)公平地、轮流地为各个进程服务, 让每个进程在一定时间间隔内都可以得到响应。

(2)算法规则:

按照各进程到达就绪队列的顺序, 轮流让各个进程执行一个时间片。 若进程未到一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。

(3)适用情况:

可用于进程调度。

(4)类型:

属于抢占式算法。 由时钟装置发出时钟中断来通知CPU时间片已到。 

(5)优缺点:

  • 优点:公平,响应快,适用于分时操作系统。
  • 缺点:不能区分任务的紧急程度,需要进程切换,消耗较大。

5.HRRN算法(高响应比优先)

(1)算法思想:

高响应比优先调度算法(Highest Respomse Ratio Nex,HRRN )综合考虑作业或进程的等待时间和要求服务的时间。 

(2)算法规则:

每次调度前先计算各个作业或进程的响应比(优先级),选择响应比最高的作业或进程为其服务。

 响应比(R)=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间

(3)适用情况:

可用于作业调度及进程调度。

(4)优缺点:

  • 优点:综合考虑了等待时间和运行时间,较好的实现了折中。 
  • 缺点:每次调度前都要算响应比,会增加系统的开销。 
  • 注意:不会导致饥饿现象。高响应比优先算法

6.多级反馈队列调度算法

(1)算法思想:

对其他调度算法的折中权衡。 

(2)算法规则:

  • 设置多个就绪队列.各级队列优先级从高到低,时间片从小到大。
  • 每个队列都采用FCFS调度算法。 
  • 按队列优先级调度。只有当第1~i一1队列均空时,才会调度第i队列中的进程。

(3)适用情况:

可用于进程调度

(4)类型:

属于抢占式的算法。

(5)优缺点:

  • 优点:用优先级区分紧急程度,运用于实时OS 。 
  • 缺点:可能导致饥饿(低优先级进程的饥饿)。

(6)图示


总结

本篇对操作系统处理机调度的内容进行了概括梳理,便于理解和复习。部分内容源自网络,如有侵权请联系作者删除处理,谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】深入理解进程的优先级(Linux 2.6版本O(1)调度算法)

进程的优先级 【前置知识】一、进程的优先级(一)为什么要有优先级?(二)进程的优先级的范围 二、操作系统是如何实现进程的优先级?(Linux内核2.6版本O(1)调度算法) 【前置知识】 首先我们要了解…

【excel】设置二级可变联动菜单

文章目录 【需求】在一级菜单选定后,二级菜单联动显示一级菜单下的可选项【步骤】step1 制作辅助列1.列转行2.在辅助列中匹配班级成员 step2 名称管理器step3 制作二级下拉菜单step4 消除二级菜单中的空白 【总结】 之前做完了 【excel】设置可变下拉菜单&#xff…

导航时间与坐标转换

前言: 该章节代码均在Gitee中开源:因为这章是学校作业,所以稍微正经点. 时空位置转换https://gitee.com/Ehundred/navigation-engineering/tree/master/%E5%8D%AB%E6%98%9F%E5%AF%BC%E8%88%AA%E5%8E%9F%E7%90%86/%E5%AF%BC%E8%88%AA%E6%97…

Idea-Linux远程开发部署

第一步:File->Remote Development 第二步: 第三步: 第四步:在Host位置填写Linux虚拟机的IP地址,在Username、Password填写对应的账号密码后点击Test Connection测试连接。 第五步: 第六步:在…

【leetcode--文本对齐(还没整理完)】

根据题干描述的贪心算法,对于每一行,我们首先确定最多的是可以放置多少单词,这样可以得到该行的空格个数,从而确定该行单词之间的空格个数。 根据题目中填充空格的细节,我们分以下三种情况讨论: 当前行是…

Vue——样式绑定的几种方式

文章目录 前言往期回顾绑定对象绑定对象的另一种写法绑定数组数组与对象的嵌套 前言 样式绑定在vue中属于一种很常见的操作。在之前博客中针对样式的绑定操作,介绍了一个指令v-bind。缩写为:xxx。 vue 官网 样式绑定 往期回顾 先简单回顾下最开始绑定标签样式的操…

搭建gateway网关

1.创建springBoot项目 可以将Server URL换成start.aliyun.com 2.配置路由与跨域处理 路由: server:port: 10010 # 网关端口 spring:application:name: gateway # 服务名称cloud:nacos:server-addr: localhost:8848 # nacos地址gateway:routes: # 网关路由配置- i…

Java的冷知识你知道吗?

1、方法参数不能超过255个 在Java中,方法的参数数量是有限制的,最多不能超过255个。这个知识点可能对于大多数程序员来说并不常用,因此即使是经验丰富的Java开发者也可能不清楚这一点。2、Java中的自动装箱与拆箱 自动装箱是Java 5引入的新特…

站点被篡改快照被劫持解决服务方法教程_一招制敌

站点被篡改快照被劫持解决服务方法教程_一招制敌 被篡改表现形式: 站点打不开或跳转到别的网站。 攻击者目的: 报复、勒索、卖防御产品(如DDOS防御产品)。 攻击成本: 工具(如VPN购买)成本、人…

当新手小白有了一块【香橙派OrangePi AIpro】.Demo

当新手小白有了一块【香橙派OrangePi AIpro】.Demo 文章目录 当新手小白有了一块【香橙派OrangePi AIpro】.Demo一、香橙派OrangePi AIpro概述1.简介2.引脚图 二、“点亮”香橙派OrangePi AIpro1.官方工具下载2.官方镜像下载3.镜像烧录4.访问香橙派 AIpro 三、香橙派OrangePi A…

数据结构第三篇【链表的相关知识点一及在线OJ习题】

数据结构第三篇【链表的相关知识点一及在线OJ习题】 链表链表的实现链表OJ习题顺序表和链表的区别和联系 本文章主要讲解关于链表的相关知识,喜欢的可以三连喔 😀😃😄😄😊😊🙃&#…

Dubbo 自定义 Filter 编码实例

Dubbo的Filter机制为我们做应用的扩展设计提供了很多可能性,这里的Filter也是“责任链”机制的一种实现场景,作为Java码农,我们也经常接触到很多责任链的实现场景,如Tomcat进入Servlet前的filter,如Spring Aop代理的链…

性能飙升50%,react-virtualized-list如何优化大数据集滚动渲染

在处理大规模数据集渲染时,前端性能常常面临巨大的挑战。本文将探讨 react-virtualized-list 库如何通过虚拟化技术和 Intersection Observer API,实现前端渲染性能飙升 50% 的突破!除此之外,我们一同探究下该库还支持哪些新的特性…

自友科技破解走班教育排课难题

新高考后,校园教务都面临着晋级,其中走班教育的分班排课是个巨大的挑战。 所以在分班排课的时候要清楚一下几个问题 一是:清楚的核算学生的选考科目。学生选科提交后做好并承认,最好是在分班后不要改或很少的一部分人改动。 二是…

手写防抖debounce

手写防抖debounce 应用场景 当需要在事件频繁触发时,只执行最后一次操作,可以使用防抖函数来控制函数的执行频率,比如窗口resize事件和输入框input事件; 这段代码定义了一个名为 debounce 的函数,它接收两个参数:fn…

linux中最基础使用的命令

小白学习记录: 前情提要:Linux命令基础格式!查看 ls看目录的小技巧 进入指定目录 cd查看当前工作目录 pwd创建一个新的目录(文件夹) mkdir创建文件 touch查看文件内容 cat、more操作文件、文件夹- 复制 cp- 移动 mv- 删除【危险操作&#xff…

Scrum 的速度如何衡量和提高

了解你的 Scrum 团队的实际开发速度是非常多敏捷团队的诉求,而速度(Velocity)作为敏捷项目的度量工具,为管理者提供了对团队工作能力深入了解的机会。 这份指南将深入探讨 Scrum 中速度的概念,指导你如何进行计算&…

cURL error 60: SSL certificate problem: unable to get local issuer certifica

本地小程序把接口换到本地的服务器接口,然后就报错了: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) 经查询查到:此问题的出现是由于没有配…

5月更新!优维EasyOps®平台7大新功能上线~

5月,优维EasyOps全平台产品能力又升级啦!👏 快来看看都有新增的功能与优化吧!👇 重点升级 架构可观测 1.系统监控态势感知 过去,用户在使用监控平台的过程中,存在如下问题: 告警…

基于单片机的超声波倒车雷达设计

摘 要:文 章设计了一种基于单片机的超声波倒车雷达系统,以 AT89C51 型单片机作为控制核心,集距离测量、显示,方位显示和危险报警于一体,以提高驾驶者在倒车泊车时的安全性和舒适性。本设计采用 Keil 软件对系统程序…