进程调度算法(操作系统)

news2024/11/26 3:50:10

1、 前置知识

1.1 非抢占式与抢占式

1.1.1 非抢占式

非抢占式指的是一个线程的在执行期间,另一个线程的到达,尽管各项标准都优于执行线程(例如优先级高于当前执行线程),也不会抢占CPU资源,会耐心的等待该线程执行完毕,再尝试获取CPU资源(有点公平锁的味道)。

1.1.2 抢占式

抢占式指的是一个线程再执行期间,另一个线程的到达会影响该线程的执行,例如到达线程优先级高于执行线程,那它会抢占CPU资源(有点非公平锁的味道)。

1.2 饥饿现象

是否存在进程不被分配资源。

1.3 文中例子:

进程到达时间运行时间优先级
P1071
P2242
P3413
P4542

1.4 涉及的公式:

1. 周转时间=完成时间-到达时间

2. 带权周转时间=周转时间/运转时间

3. 等待时间=周转时间-运行时间

 

2. 进程调度算法

2.1 先来先服务

算法规则:按照进程到达的先后顺序进行服务

是否可抢占:非抢占式算法

调度顺序:P1->P2->P3->P4

优点:公平、算法实现简单

缺点:排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验不好。即:对长作业有利,对短作业不利

是否会导致饥饿:不会

2.2 短作业优先

算法规则:按照执行时间的长度进行服务

是否可抢占:非抢占式算法、抢占式算法  (两个版本都有)

2.2.1 非抢占式

调度顺序:P1->P3->P2->P4

2.2.2 抢占式

调度顺序:P1->P2->P3->P2->P4->P1

调度顺序分析:()里面表示还需要多少执行时间

0时刻(P1到达):P1(7)

2时刻(P2到达):P1(5)、P2(4)

4时刻(P3到达):P1(5)、P2(2)、P3(1)

5时刻(P3完成、P4到达):P1(5)、P2(2)、P4(4)

7时刻(P2完成):P1(5)、P4(4)

11时刻(P4完成):P1(5)

2.2.3 总结

优点:执行时间短的进程收益

缺点:对执行时间长的进程不利,如果有陆续的执行时间比较短的进程进来,执行时间长的进程可能永远得不到服务;

是否会导致饥饿:会,如果有陆续的执行时间比较短的进程进来,执行时间长的进程可能永远得不到服务,这种现象为"饥饿"现象。

2.3 高响应比优先

调度顺序:P1->P3->P2->P4

调度顺序分析:()里面表示进程的响应比

0时刻:只有P1到达就绪队列,P1上处理机

7时刻(P1完成):就绪队列有P2((5+4)/4=2.25)、P3((3+1)/1=4)、P4((2+4)/4=1.5)

8时刻(P3完成):P2((6+4)/4=2.5)、P4((3+4)/4=1.75)

12时刻(P2完成):P4((7+4)/4=2.75)

响应比公式:(等待时间+要求服务的时间)/ 要求服务的时间

是否可抢占:非抢占式算法

优点:综合考虑了等待时间和要求服务的时间,等待时间相同时,要求服务时间端的优先(短作业优先的优点),要求服务时间相同时,等待时间长的优先(先到先服务的优点)。对于长作业来说,随着等待时间越来越久,其响应比也会越来越大,从而避免了长作业饥饿的问题。

是否会导致饥饿:不会

2.4 时间片轮转

算法规则:按照个进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如:100ms),若进程未在一个时间片内执行完成,则剥夺处理机,将进程重新放到就绪队列的队尾。

是否可抢占:抢占式算法

优点:公平,响应快,适用于分时操作系统

缺点:由于高频率的进程切换,因此有一定的开销;没有区分任务的紧急程度

是否会导致饥饿:不会

2.5 优先级调度

2.5.1 非抢占式

调度顺序:P1->P3->P2->P4

2.5.2 抢占式

调度顺序:P1->P2->P3->P2->P4->P1

调度顺序分析:与响应比优先一样逻辑,只不过那里比较的是响应比,这里比较的是优先级

静态优先级策略:

【1】系统进程优先级高于用于进程

【2】前台进程优先级高于后台进程

【3】重点关注I/O操作频繁的进程--提升其优先级

动态优先级策略(从追求公平、提升资源利用率等角度考虑):

【1】如果某进程在就绪队列中等待了很长时间,则可以适当提升其优先级

【2】如果某进程占用处理机运行了很长时间,则可以适当降低其优先级

【3】如果发现一个进程需要频繁的进行I/O操作,则可以适当提升其优先级

是否可抢占:非抢占式算法、抢占式算法  (两个版本都有)

优点:用优先级区分紧急程度、重要程度,适用于实时操作系统。可灵活地调整对各个进程的偏好程度。

缺点:如果源源不断的有高优先级的进程进来,则可能会导致饥饿线程

是否会导致饥饿:

2.6 多级反馈队列调度

算法规则:

【1】设置多级就绪队列,各级队列优先级从高到低,时间片从小到大;

【2】新进程到达时想进入第1级队列,按先到先服务原则排队等待被分配时间片,若用完时间片进程还没结束,则进程进入下一级队列队尾;

【3】只有第k级队列为空时,才会为k+1级队头的进程分配时间片

是否可抢占:抢占式算法 (在k级运行的进程,如果此时有新的进程进入{1至k-1级},则会先运行该进程,因为该进程的优先级较高)

优点:

【1】对各类型进程相对公平(先到先服务的优点)

【2】每个新到达的进程都可以很快的就得到响应(时间片轮转的优点);

【3】短进程只用较少的时间就可以完成(短作业优先的优点);

【4】不必实现估计进程的运行时间,可以灵活地调整各类进程的偏好程度(优先级调度的优点)

是否会导致饥饿:会,如果有源源不断的新进程进来会导致饥饿

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【matlab程序】海图坐标轴单位的唯一

【matlab程序】海图坐标轴单位的唯一 【matlab程序】海图坐标轴单位的唯一 本文写作来源,从实际出发,用于实际: 热带海洋学报,投稿须知: 其中一条关于海图制作规范中: 经度标识(E, W&#…

真题详解(0/1背包)-软件设计(四十九)

真题详解(线性表)-软件设计(四十八)https://blog.csdn.net/ke1ying/article/details/130119249 多态有四种类型: 参数多态:应用比较广泛的多态,称为最纯多态。 包含多态:最常见的就是子类型化。 过载多态&#xff1…

Nfinity: YouTube创作者如何通过SocialFi变现

Nfinity推出了一个具有革命性的SocialFi平台:该平台通过生成NFT来帮助YouTube创作者实现内容变现。 YouTube做为全球第一大视频内容平台,尽管通过付费会员和广告收入的分成,为创作者们提供了大量的盈利机会,但它也存在很多的局限性…

【MybatisPlus快速入门】—— 基础入门

入门篇 我们先简单回顾一下 Mybatis 的用法,再引出MybatisPlus 1.1 Mybatis 框架回顾 🌔 1、什么是Mybatis框架呢? 一个持久层框架,目的是简化持久层的开发我们就使用springboot整合Mybatis,实现Mybatis框架的搭建…

NBT - 生成式蛋白设计,AI带来的蛋白质工程飞跃

科学家们创建了一个能够从头合成人工酶的人工智能系统。实验测试发现,一些酶与自然界中发现的酶具有相同的功效,即使人工生成的氨基酸序列与任何已知的天然蛋白质明显不同。实验表明,尽管自然语言处理是为了阅读和编写语言文本而开发的&#…

蓝牙技术|安卓将支持超宽带语音,蓝牙通话更清晰

Android 的蓝牙通话即将迎来质的飞跃,超宽带语音技术将让你的声音更清晰、更真实。 Android 专家 Mishaal Rahman 发现,Android 开源项目仓库中最近添加了一个补丁,实现了与蓝牙免提配置文件 v1.9 相关的功能。据IT之家了解,这个…

【初识C++】(关键字,命名空间)

文章目录一、C中的关键字二、命名空间1.命名空间规则展开命名空间域 和 #include 的区别2.正确使用命名空间三、C中的输入和输出一、C中的关键字 二、命名空间 命名空间是对于全局变量来说,我们在定义变量或函数时,函数名可能会和库中的函数名产生冲突。…

window 和 linux 安装 Tesseract-OCR

一、 Window 安装 Tesseract-OCR 1.安装 tesseract-ocr-w64-setup-5.3.1.20230401.exe 下载地址:https://digi.bib.uni-mannheim.de/tesseract/ 2. 配置 PATH 环境变量 3. 配置TESSDATA_PREFIX 环境变量 4. 在 cmd 中查询是否安装成功 5. 在安装的目录 tessda…

算法刷题总结 (七) 双指针

算法总结7 双指针一、双指针的概念1.1、什么是双指针?1.2、常见类型1.2.1、快慢指针1.2.2、左右端点指针1.2.3、区间指针 - 滑动窗口汇总二、经典例题2.1、快慢指针(1)、链表判环141. 环形链表142. 环形链表 II287. 寻找重复数876. 链表的中间…

人工智能学习07--pytorch15(前接pytorch10)--目标检测:FPN结构详解

FPN:用于目标检测的特征金字塔网络 backbone:骨干网络,例如cnn的一系列。(特征提取) (a)特征图像金字塔 检测不同尺寸目标。 首先将图片缩放到不同尺度,针对每个尺度图片都一次通过算法进行预测。 但是这样一来&#…

第二章:HTML CSS 网页开发基础(一)

一、HTML HTML&#xff1a;是一种网页制作标注性语言。HTML通过浏览器的翻译将页面呈现给用户。 1、1 HTML文档结构 HTML文档由4个主要标记组成&#xff0c;<html>、<head>、<title>、<body> <html>标记 该标记是所有html文件的开头&a…

[STM32F103C8T6]DMA

DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设 与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于 CPU&#xff0c;在这个时间中&#xff0c;CPU对于内存的工作来说就无法使用。 我自己…

实验设备管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a;https://download.csdn.net/download/qq_50954361/87682549 更多系统资源库…

构建新摩尔定律下的算力分发网络

摩尔定律最早由英特尔创始人之一戈登摩尔在1965年提出&#xff0c;他认为集成电路上可以容纳的晶体管数目在大约每经过18到24个月便会增加一倍。20年后的今天&#xff0c;面对日新月异的社会和突飞猛进的数字化需求&#xff0c;摩尔定律也随着社会的进步而被赋予了新的定义。Li…

第八章 法律关系

目录 第一节 法律关系的概念 一、法律关系的定义与特征 二、法律关系的种类 &#xff08;一&#xff09;纵向&#xff08;隶属&#xff09;的法律关系和横向&#xff08;平权&#xff09;的法律关系 &#xff08;二&#xff09;单向&#xff08;单务&#xff09;法律关系、双…

基于ITIL搭建公司IT治理服务框架

ITIL帮助组织标准化其IT服务和流程。ITIL文档包括各种政策、程序和指南&#xff0c;帮助IT团队向客户提供优质的服务。 根据ITIL框架的五个阶段&#xff0c;ITIL文档被广泛分类为不同的类别。 这些阶段包括服务战略、服务设计、服务过渡、服务操作和持续服务改进。每个类别都有…

android内存泄漏检测,Android内存泄露检测之LeakCanary的使用

为了能够简单迅速的发现内存泄漏&#xff0c;Square公司基于MAT开源了LeakCanary。使用LeakCanary&#xff0c;在内存泄漏后&#xff0c;通过分析引用链可以分析内存泄漏的原因&#xff0c;LeakCanary用于检测Activity、Fragment的内存泄漏。 下面通过一些实际案例来进行分析。…

如何替换spring boot中spring框架的版本

背景 我开源的一个项目中&#xff0c;有朋友提到存在Spring Framework 身份认证绕过漏洞(CVE-2023-20860)。 解决方案是升级spring 框架版本&#xff1a; Spring Framework 5.3.X 系列用户建议升级Spring Framework到5.3.26及以上安全版本修复该漏洞Spring Framework 6.0.X 系…

HashMap 学习笔记

HashMap&#xff1a; 为什么经常深入考察&#xff1f; 基于java写的代码会访问很多东西&#xff0c;比如数据库&#xff0c;缓存&#xff0c;消息中间件。 HashMap数据结构 底层是数组 原本已经有很多个位置了 原本是取模但是优化成了性能更高的hash&(n-1) 让哈希值…

【性能测试】5年测试老鸟,总结性能测试基础到指标,进阶性能测试专项......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 性能测试是为了评估…