DJ3-4 实时调度

news2024/11/16 12:47:30

目录

3.4.1  实现实时调度的基本条件

1. 提供必要的信息

2. 系统的处理能力强

3. 采用抢占式调度机制

4. 具有快速切换机制

3.4.2  实时调度算法的分类

1. 非抢占式调度算法

2. 抢占式调度算法

3.4.3  常用的几种实时调度算法

1. 最早截止时间优先 EDF(Earliest Deadline First)算法

2. 最低松弛度优先 LLF(Least Laxity First)算法


3.4.1  实现实时调度的基本条件

1. 提供必要的信息

1)就绪时间。这是该任务成为就绪状态的起始时间。

2)开始截止时间和完成截止时间。

3)处理时间。一个任务从开始执行,直至完成所需的时间。  

4)资源要求。任务执行所需的一组资源。

5)优先级。

2. 系统的处理能力强

在实时系统中,通常都有着多个实时任务。若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理。

解决的方法是提高系统的处理能力,其途径有二:

其一仍是采用单处理机系统,但须增强其处理能力,以显著地减少对每一个任务的处理时间;

需要花钱升级单处理机的处理能力

其二是采用多处理机系统。

3. 采用抢占式调度机制

在含有硬实时任务的实时系统中,广泛采用抢占机制。当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,这样便可满足该硬实时任务对截止时间的要求。


 

4. 具有快速切换机制

  • 对外部中断的快速响应能力
  • 快速的任务分派能力

3.4.2  实时调度算法的分类

1. 非抢占式调度算法

1)非抢占式轮转调度算法

  1. 调度程序每次选择队列中的第一个任务投入运行
  2. 当该任务完成后,便把它挂在轮转队列的末尾,等待下次调度运行

2)非抢占式优先调度算法

如果在系统中存在着实时要求较为严格的任务,则可采用非抢占式优先调度算法,为这些任务赋予较高的优先级。

  • 当这些实时任务到达时,把它们安排在就绪队列的队首;
  • 等待当前任务自我终止或运行完成后,才能被调度执行

2. 抢占式调度算法

1)基于时钟中断的抢占式优先权调度算法

某实时任务到达后,如果该任务的优先级高于当前任务的优先级,这时并不立即抢占当前任务的处理机,而是等到时钟中断到来时,调度程序才剥夺当前任务的执行,将处理机分配给新到的高优先权任务。

调度时间 ≤ 两个时间中断之间的间隔时间

2)立即抢占的优先权调度算法

一旦出现外部中断,只要当前任务未处于临界区,便能立即剥夺当前任务的执行,把处理机分配给请求中断的紧迫任务。

只要当前进程执行完当前的那条机器指令,实时进程就立马把它踹了。

3.4.3  常用的几种实时调度算法

1. 最早截止时间优先 EDF(Earliest Deadline First)算法

该算法要求在系统中保持一个实时任务就绪队列:

  • 该队列按各任务截止时间的早晚排序
  • 具有最早截止时间的任务排在队列的最前面

调度程序总是选择就绪队列中的第一个任务,为之分配处理机,使之投入运行。

1)非抢占式调度 + EDF 算法

2)抢占式调度 + EDF 算法

  • 采用抢占式调度
  • 任务 A 和 B 周期分别为 20ms 和 50ms
  • 任务 A 和 B 每周期执行时间分别为 10ms 和 25ms

2. 最低松弛度优先 LLF(Least Laxity First)算法

1)LLF 算法

松弛度 = 完成截止时间 - 剩余运行时间 - 当前时间

该算法按照松弛度对实时任务的就绪队列进行排序。松弛度最小的任务排在队列最前面,调度程序总是选择就绪队列中的队首任务执行。

2)抢占式调度 + LLF 算法

  • 采用抢占式调度:但仅当松弛度 = 0 时才抢占
  • 任务 A 和 B 周期分别为 20ms 和 50ms
  • 任务 A 和 B 每周期执行时间分别为 10ms 和 25ms

分析过程:

任务切换时机:

  • 当前任务执行完毕时,选择松弛度最小的任务执行
  • 某一任务松弛度 = 0 时,选择该任务执行

注意:当某一新任务到达时,即使它的松弛度比当前任务的小,只要松弛度不为 0,就不能进行抢占!这样可以减少任务切换的开销。

执行顺序:

3)抢占方式和时机

① 当队列中等待的任务的松弛度 = 0 时才进行抢占。如:20ms 时,虽然 A2 的松弛度比 B1 的松弛度小,但是 A2 并没有抢占 B1 。

② 当任务执行结束或无任务执行时,再比较队列中等待的任务的松弛度,较小的先执行。

 

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

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

相关文章

拼多多按关键字搜索商品 API

一、拼多多平台优势: 1、独创拼团模式 拼团拼单是拼多多独创的营销模式,其特点是基于人脉社交的裂变传播,非常具有传播性。 由于本身走低价路线,加上拼单折扣,商品的分享和人群裂变效果非常明显,电商前期…

单向链表和双向链表的实现 (LinkedList)

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

Markdown发布静态网页

解析markdown_利用 markdown 生成页面实践_灰色派的博客-CSDN博客 业务需求 1.为什么要用 markdown 来生成页面? 对于展示型网站,例如官网这种场景,会有很多小的页面,运营会根据市场时刻有增删修改类似页面的需求,如…

MapReduce笔记

总计:切片就是对一个文件按逻辑进行切片,默认每128m为一个切片,不是物理切片,每个切片对应着一个mapTask进行处理。而且切片是针对每一个文件进行切片的,即一个文件一个文件切片,不是把所以待处理的文件总量…

游戏运营是什么?运营专员需要具备什么能力?

游戏运营主要是负责公司游戏的运营计划制定,包含通过用户对游戏的反馈和数据分析找出产品所存在的问题,并进行优化。通过各种促销活动、节假日实行游戏付费内容来刺激消费,实现游戏和品牌双赢的打造过程。 游戏运营分很多种:用户…

python获取数据类型

之前将字面量时就将到过 数据是有类型的 python的数据类型还挺多的 而现阶段 我们主要接触了 字符串 浮点数 正整数 对应的类型 都有自己的名称 字符串 string 浮点数 float 正整数 int python提供了一个type语句 用于验证数据类型 我们打开编辑工具 编写代码如下 print(typ…

每日一问-ChapGPT-20230416-中医基础-经络

文章目录每日一问-ChapGPT系列起因每日一问-ChapGPT-20230416-中医基础-经络人体的经络有哪些,有什么规律,怎么记忆问诊的具体细节当日总结每日一问-ChapGPT系列起因 近来看了新闻,看了各种媒体,抖音,官媒&#xff0c…

FPGA与ASIC的区别

先来看张图,本图体现出了集成电路产业链:设计业、制造业、封测业。 关于制造、封装测试我们看两张图稍作了解即可: 数字IC ASIC设计流程及EDA工具: (1)了解数字IC设计:在VLSI时代&#xff…

MySQL数据库之表的增删改查(基础)

目录1 新增(Create)1.1 单行数据 全列插入1.2 多行数据 全列插入2 查询(Retrieve)2.1 全列查询2.2 指定列查询2.3 查询字段为表达式2.4 别名2.5 去重: DISTINCT2.6 排序: ORDER BY2.7 条件查询: WHERE2.8 分页查询: LIMIT3 修改…

基于html+css的图片展示10

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

10个有趣python模块

一、说明 Python 是一种高级、解释型和通用动态编程语言,侧重于代码的可读性。它在许多组织中使用,因为它支持多种编程范例。它还执行自动内存管理。它是世界上最受欢迎的编程语言之一。这是有很多原因的: 这很容易学习。 它超级多才多艺。 …

腾讯云轻量应用服务器性能如何?测评来了

腾讯云轻量应用服务器性能如何?CPU型号主频、内存、公网带宽和系统盘存储多维对比,轻量应用服务器会不会比云服务器CVM性能差?相对于CVM云服务器轻量服务器更适合轻量级的应用,轻量服务适合中小企或个人开发者用于搭建We网站b应用…

svn 安装 和配置idea

SVN客户端安装 一、SVN客户端安装 1、下载安装包地址:svn下载地址 此安装包是英文版的,还可以下载一个语言包,在同界面的下方 这里可以下载 一个汉化的 语言包(在下载界面向下翻即可) 下载完成之后,就会…

JavaSE异常

文章目录JavaSE异常一、异常的概念二、异常的体系结构三、异常的分类四、异常的处理五、自定义异常类JavaSE异常 一、异常的概念 在Java中,将程序执行过程中发生的不正常行为称为异常 常见逻辑异常: 算数异常 System.out.println(10 / 0); // 执行结…

关于分布式唯一ID的思考-雪花算法及美团Leaf方案详解

引言 首先&#xff0c;我们看一下日常开发中常见的雪花算法工具类&#xff1a; 引入hutool <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.20</version> </dependency>工具类…

推荐10个AI学习、工作用的有趣网站

来源&#xff1a;towardsai 作者&#xff1a;学姐 编辑&#xff1a;学姐 1.VERSE BY VERSE 帮你写诗 https://sites.research.google/versebyverse/ 2.Let’s Enhance 照片放大增强 https://letsenhance.io/ 让扭曲和模糊的照片变得漂亮&#xff0c;用这个网站实现增强&am…

A01-固件库开发模板

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;Silence Lamb &#x1f4d6; 本章内容&#xff1a;【固件库开发模板】 Silence-STM v1.0.0 基于固件库开发模板 一、前提准备 &#x1f680;从ST官网获取stm32f103标准例程固件库&#x1f680; 参考文档 1.1&#x1f333;…

[HAOI2011]Problem b(莫比乌斯反演)

[HAOI2011]Problem b 题目链接&#xff1a;https://www.luogu.com.cn/problem/P2522 题目描述 对于给出的 nnn 个询问&#xff0c;每次求有多少个数对 (x,y)(x,y)(x,y)&#xff0c;满足 a≤x≤ba \le x \le ba≤x≤b&#xff0c;c≤y≤dc \le y \le dc≤y≤d&#xff0c;且 …

【CE】Mac下的CE教程Tutorial:进阶篇(第7关:代码注入)

▒ 目录 ▒&#x1f6eb; 导读开发环境1️⃣ 第7关&#xff1a;代码注入翻译非代码注入完成任务代码注入完成任务&#x1f6ec; 文章小结&#x1f4d6; 参考资料&#x1f6eb; 导读 开发环境 版本号描述文章日期2023-03-操作系统MacOS Big Sur 11.5Cheat Engine7.4.3 1️⃣ 第…

PADS生成SMT坐标文件

做SMT时&#xff0c;除了“gerber文件”外&#xff0c;还要提供 “BOM文件” 和 “坐标文件”。 “gerber文件” 和 “BOM文件”&#xff0c;前面都有介绍过了&#xff0c;现在详细说一下生成“坐标文件”的方法。 贴片厂家提供了操作教程&#xff0c;如下&#xff1a; 所以&a…