操作系统考试复习——第三章 进程调度和实时调度

news2024/11/23 22:47:10

进程调度的方式分为:抢占式和非抢占式

采用非抢占式时,一旦把处理机分配给某进程后,就让他一直运行下去,决不会因为时钟中断或其他任何原因去抢占当前正在运行进程的处理机。直至该进程完成或因为某件事情堵塞,才把处理机分配给其他进程。

采用抢占式时,根据某种规则将某个正在执行的进程暂停然后把处理机分配给另一进程。这样的方式称为抢占式。抢占不是任意的是需要遵守某些规则的。

时间片轮转算法是主要应用在分时系统当中,在这种算法当中,系统将所有就绪进程按照FCFS策略排成一个就绪队列,调度进程总是选择就绪队列当中的第一个进程执行,但仅能运行一个时间片。在使用完一个时间片之后即使进程并未完成,它也必须被剥夺处理机让下一个进程运行。当然被剥夺之后他会处在这个队列的末尾重新排队。

时间片太长那么每一个进程都可以运行完这样就是先来先服务了,若是时间片太短那么就会频繁进行切换就会使处理机的开销很大。因此时间片应该选择恰当

多级反馈调度队列是融合了时间片轮转调度算法和优先级调度算法。

多级反馈调度队列实现思想

1.设置多个反馈队列,并为每个队列赋予不同的优先级。第一个队列优先级最高,第二个其次,其余队列逐次减少。

2.赋予各个队列的进程的运行时间片的大小各不相同。优先级越高的队列时间片越小。

3.每个队列中都是采用先进先出算法

4.按队列的优先级进行调度

基于公平原则的调度算法:1.保证调度算法:如果在系统中有n个相同类型的进程同时进行,为公平起见,须保证每个进程都获得相同的处理机时间1/n。

实时调度

实现实时调度的基本条件

1.提供必要的信息 就绪时间 开始截止时间和完成截止时间  处理时间  资源要求  优先级

2.系统处理能力强

3.采用抢占式调度机制

4.具有快速切换机制

实时调度算法分类也是分为抢占式和非抢占式

这里分为最早截止时间(EDF)优先最低松弛度(LLF)优先算法

最早截止时间(EDF)优先是根据任务的截至时间确定任务的优先级,任务的截至时间越早,优先级越高。具有最早截止时间的任务排在队列的队首。

非抢占式调度方式用于非周期实时任务

  • 任务1最先到达最先开始执行
  • 任务1执行过程中任务2、任务3到达,由于任务3截止时间更早,其优先级愈高,所以执行完任务1后执行任务3
  • 任务3执行过程中任务4到达,由于任务4截止时间更早优先级愈高,任务3执行完后执行任务4,
  • 最后执行任务2

抢占式调度方式用于周期实时任务

第二行中
固定A,B优先级,且优先级A>B;
先执行A1,A1执行完后执行B1;
B1执行了10ms后被A2抢占;
A2执行完后继续执行B2;
B2执行10ms后被A3抢占;
A3执行完后已经到达B2的截止时间了,但B2总共执行了20ms,很明显低于所需处理时间25ms。
第三行中
固定A,B优先级,且优先级B>A;
先执行B1,B1执行完后已经过了A1的截止时间,可知A1根本就没能执行到。
第四行中
A1截止时间早于B1截止时间,先执行A1;
A1执行完执行B1,B1执行10ms后A2到达;
A2截止时间早于B1截止时间,先执行A2;
A2执行完执行B1,B1执行10ms后A3到达;
B1截止时间早于A3截止时间,继续执行B3;
以此类推,每个任务有序无错过进行,能满足系统的要求。

最低松弛度(LLF)优先

该算法在确定任务优先级的时候,根据的是任务的紧急(或松弛)程度。任务紧急程度越高,优先级越高。

主要用于可抢占式调度方式中。

任务松弛度计算公式:任务的松弛度=必须完成时间-其本身的运行时间-当前时间

周期性任务A,要求每20ms执行一次,执行时间为10ms;
周期性任务B,要求每50ms执行一次,执行时间为25ms;
t=0s时,A1的松弛度=20ms-10ms-0ms=10ms,B1的松弛度=50ms-25ms-0=25ms,先执行A1;
A1执行完后,B1的松弛度=50ms-25ms-10ms=15ms,A2的松弛度=40ms-10ms-10ms=20ms,执行B1;
B1执行10ms后,B1的松弛度=50ms-25ms-20ms=5ms,A2的松弛度=40ms-10ms-20ms=10ms,继续执行B1;

 

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

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

相关文章

MMediting1.X进行视频超分训练和测试(BasicVsr++)

因为MMediting更新了版本,整体的变化比较大,导致之前的一些介绍操作的帖子不太适合新手入门,这里以作者自己对BasicVsr模型进行测试和训练的过程,写一下具体的操作过程。 (1)找到模型     首先在config…

JavaScript判断是否为NaN

(旅行是最劳顿,最麻烦,叫人本相必现的时候。经过长期苦旅行而彼此不讨厌的人,才可以结交作朋友。——钱钟书) 为什么NaN在js值得一提 相信你在实际开发中,经常遇到一下场景 const pasNumber parseInt(un…

财报解读:照明行业景气上行,欧普照明已步入增长“快车道”

2023年,随着文旅景观照明复苏,教室照明市场蓬勃发展,双碳战略下照明数字化系统加速建设,照明企业迎来行业曙光。近日,A股绿色照明龙头企业欧普照明股份有限公司(下称“欧普照明”,股票代码60351…

刷题记录˃ʍ˂

一、1033. 移动石子直到连续 思路 这道题是一道数学题,它一共分为三种可能 第一种可能为三个石子本来就是连续的时候 第二种可能为最少步数为1的时候,相邻石子不能大于一格 第三种可能为最少步数为2的时候,这时相邻石子大于一格 那么第二…

华为MPLS跨域C1方式RR场景(数据经过RR)实验配置

目录 配置BGP邻居的建立 配置MPLS LDP 配置RR之间的MP-BGP邻居 根据图配置接口的IP地址和IGP协议 配置BGP邻居的建立 PE1和RR1建立IBGP邻居、RR1和ASBR1建立IBGP邻居(RR1作为反射器) PE1和RR1建立MP-IBGP邻居(RR1传给PE1的Vpnv4路由要求更…

2023 hnust 大三下 人工智能导论课程 期中考试复习笔记

前言 ★大概率考✦个人推测考点※补充内容没有完全覆盖“人工智能导论复习2023.pdf”的重点致谢:hwl、lyf、lqx 题型 问答:5*10分综合:15分设计:25分开放题/论述题:10分 第1章 绪论 人工智能的定义 智能 思考与…

Android ADB安装apk失败:INSTALL_FAILED_TEST_ONLY

droid ADB安装apk失败:INSTALL_FAILED_TEST_ONLY 解决: 1、一种是在代码里面加, 在gradle.properties配置文件加入属性,把testOnly设置为false Android安装apk失败:The application could not be installed: INSTALL_FAILED_TES…

Java内存模型之JMM

计算机硬件存储系统 因为有这么多级的缓存(cpu和物理主内存的速度不一致) CPU的运行并不是直接操作内存而是把内存里边的数据读取到缓存,而内存的读和写操作的时候就会造成不一致的问题 JVM规范中试图定义一种Java的内存模型(ja…

【算法与数据结构】递归函数设计技巧

数学归纳法 step1: 验证P(1)成立step2: 证明如果P(k)成立,那么P(k1)也成立step3: 联合step1和step2,证明由P(1)->P(n)成立 例1: 证明: 1 3 . . . ( 2 n − 1 ) n 2 13...(2n-1) n^2 13...(2n−1)n2 证明P(1)成立&#…

Midjourney之logo设计(建议收藏)

目录 宠物诊所的logo设计 常见的Logo类型 图形logo: 字母LOGO APP LOGO 进阶技巧 设置艺术家风格 去掉不需要的元素 ChatGPT Midjourney设计logo 聊天(国产):文心一言通义千问 绘图(国产) UI设计 ChatGP…

LangChain入门(四)-构建本地知识库问答机器人

在这个例子中,我们会介绍如何从我们本地读取多个文档构建知识库,并且使用 Openai API 在知识库中进行搜索并给出答案。 目录 一、安装向量数据库chromadb和tiktoken 二、使用案例 三、embeddings持久化 四、在线的向量数据库Pinecone 一、安装向量数…

Maya云渲染怎么操作?看这一篇就够了

Autodesk Maya 是一款3D动画和视觉效果软件,拥有强大的角色建模、绑定、动画和模拟工具集,与Maya兼容的渲染器包括 Arnold(默认渲染器)、iRay、Maxwell、ProRender、Octane、Redshift、V-Ray、RenderMan 等。 与 Autodesk 的所有产…

异常排查 | 有关页面部署Tomcat造成的端口冲突问题

今日在写Servlet的时候,将网页部署到tomcat时,出现了如下错误👇 严重 [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]一开始其实还没有发现这个地方出了问题&…

安装适用于Linux的Windows11子系统(WSL2)

1. 主板BIOS开启虚拟化 开启虚拟化需要在BIOS中进行设置,进入主板BIOS→找到虚拟化设置→开启。 2. 检验是否开启虚拟化 打开Windows命令行,并运行 systeminfo固件中已启用虚拟化为是,代表主板BIOS已经开启虚拟化。 3. 启用Windows功能…

操作系统——内存管理

0.关注博主有更多知识 操作系统入门知识合集 目录 7.1内存管理功能 思考题: 7.2物理内存管理 7.2.1分区内存管理 思考题: 7.2.2分区放置策略 7.2.3内存覆盖技术 7.2.4内存交换技术 7.2.5内存碎片 7.3虚拟内存管理 7.3.1页式虚拟存储管理 思…

安全服务体系建设主体内容

安全服务体系建设总共10类工作内容,每类分若干咨询方案或技术实施方案,同时也是一个长期建设与服务的工作,这些工作都是依据《网络安全等级保护基本要求》、《网络安全等级保护安全设计技术要求》《网络安全等级保护定级指南》。关于如何定级在这篇 等保定级报告模版_luozho…

STM32F4_USMART调试组件

目录 1. USMART是什么? 2. USMART的特点 3. USMART实现流程 4. USMART组件 5. 在usmart_config.c中添加想要被USMART调用的函数 6. 实验程序 6.1 main.c 6.2 usmart.c 6.3 usmart.h 7. USMART调试的优越性说明 1. USMART是什么? USMART 是 AL…

压力测试工具Jmeter安装及使用

1.安装Jmeter Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。 1.1.下载 可以Apache Jmeter官网下载,地址:http://jmeter.apache.org/download_jmeter.cgi 1.2.解压 因为下载的是zip包&#xff…

三次样条曲线CubicSpline

本文参考老张在上海轨迹规划 之 三次样条曲线(概念性质) - 知乎 (zhihu.com) 什么是三次样条曲线 之 三次 样条是一种数据插值的方式,在多项式插值中,多项式是给出的单一公式来尽可能满足所有的数据点,而样条则使用多…

刷题刷题。

租用游艇 1.格式化输入二维数组&#xff1a;1-2&#xff0c;1-3&#xff0c;1-4&#xff0c;2-3&#xff0c;2-4&#xff0c;3-4... ... for(int i1; i<n-1; i) for(int ji1; j<n; j) 2.三重for循环枚举路径&#xff1a;第…