• 在实时系统中,可能存在着两类不同性质的实时任务,即HRT任务和SRT任务,它们都联系着一个截止时间。
  • 为保证系统能正常工作,实时调度必须能满足实时任务对截止时间的要求。
  • 实现实时调度应具备一定的条件。

实现实时调度的基本条件

  • 提供必要的信息

    • 就绪时间,是指某任务成为就绪状态的起始时间,在周期任务的情况下,它是事先预知的一串时间序列。
    • 开始截止时间和完成截止时间,对于典型的实时应用,只须知道开始截止时间,或者完成截止时间。
    • 处理时间,一个任务从开始执行,直至完成时所需的时间。
    • 资源要求,任务执行时所需的一组资源。
    • 优先级,如果某任务的开始截止时间错过,势必引起故障,则应为该任务赋予“绝对”优先级;如果其开始截止时间的错过,对任务的继续运行无重大影响,则可为其赋予“相对”优先级,供调度程序参考。
  • 系统处理能力强

    • 在实时系统中,若处理机的处理能力不够强,则有可能因处理机忙不过,而致使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。
    • 假定系统中有m个周期性的硬实时任务HRT,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件系统才是可调度的:
    • 提高系统处理能力的途径有二:一是采用单处理机系统,但须增强其处理能力,以显著地减少对每一个任务的处理时间;二是采用多处理机系统。假定系统中的处理机数为N,则应将上述的限制条件改为:
  • 采用抢占式调度机制:

    • 剥夺方式:一般都采用此
    • 非剥夺方式(实现简单):一般应使实时任务较小,以及时放弃CPU。
  • 具有快速切换机制:

    • 对中断的快速响应能力。对紧迫的外部事件请求中断能及时响应,要- 求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短,以免耽误时机(其它紧迫任务)。
    • 快速的任务分派能力。为了提高分派程序进行任务切换时的速度,应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销。

实时调度算法的分类

  • 非抢占式调度算法

    • 时间片轮转 秒级
    • 非抢占优先权(协同) 秒~毫秒级
  • 抢占式调度算法
    • 时钟中断抢占优先权 毫秒级

      • 基于抢占点抢占
    • 立即抢占immediate preemption 毫秒~微秒级
      • 只要不在临界区即抢占(中断引发)

最早截止时间优先 EDF调度算法

  • 根据任务的截止时间来确定任务的优先级
  • 截止时间越早,优先级越高
  • 可以是抢占式或非抢占式

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

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

  • 任务A和任务B的周期时间分别为20 ms和50 ms,每个周期的处理时间分别为10ms和25ms。

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

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

  • 任务紧急程度愈高,赋予该任务的优先级就愈高,以使之优先执行。

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

  • 实用于周期性的调度任务。

  • 系统中有一个按松弛度排序的实时任务就绪队列,松弛度最低的任务排在队列最前面,调度程序总是选择就绪队列中的队首任务执行。

  • 松弛度也是一种优先级,它反映的是任务的紧急程度。

  • 松弛度=必须完成时间-其本身运行时间-当前时间

操作系统 实时调度相关推荐

  1. 【操作系统/OS笔记10】进程/线程的调度原则、调度算法、实时调度、多处理器调度、优先级反转

    本次笔记内容: 8.1 背景 8.2 调度原则 8.3 调度算法1 8.4 调度算法2 8.5 实时调度 8.6 多处理调度与优先级反转 文章目录 CPU调度背景 上下文切换 CPU调度 在进程/线程 ...

  2. 实时操作系统主流调度方法RMS

    操作系统的调度方法有很多种,这里主要介绍主流的调度算法,像EDF这种调度算法就不表述了.目前几乎所有的商业实时操作系统的调度理论都基于RMS理论. 以下是基于RMS的一些假设理论: 1 各个任务之间没 ...

  3. 操作系统--处理机调度

    操作系统–处理机调度 三个层次 高级调度(作业调度):按照某种规则,从后备队列中选择合适的作业将其调入内存,并为其创建进程 中级调度(内存调度):按照某种规则,从挂起队列中选择合适的进程将其数据调回内 ...

  4. linux内核实时调度,基于Linux内核的实时调度机制的研究和实现

    摘要: 实时操作系统在当前的各个领域得到广泛应用,越来越引起人们的重视.Linux操作系统的源代码开放.内核模块化设计及内核的高度可裁减性使其在嵌入式实时操作系统研究领域备受重视.但其面向通用多任务分 ...

  5. 嵌入式操作系统内核原理和开发(实时调度)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 和很多通用的操作系统相比, 实时操作系统有自己的一个特点,那就是实时调度.通用操作系统的线程优 ...

  6. linux 进程状态显示dl,Linux系统中的实时调度器DL调度器的原理是什么?详细概述...

    一.概述 实时系统是这样的一种计算系统:当事件发生后,它必须在确定的时间范围内做出响应.在实时系统中,产生正确的结果不仅依赖于系统正确的逻辑动作,而且依赖于逻辑动作的时序.换句话说,当系统收到某个请求 ...

  7. 嵌入式操作系统多任务调度原理分析与RUST参考实现

    操作系统多任务调度原理分析与RUST参考实现 作为一名在软件领域工程师,在职业生涯的尽头能有幸接触到一部分硬件产品是我莫大的荣幸.秉承我一贯刨根问底,不搞清楚问题本质不罢休的作风和态度,结合基本的计算 ...

  8. LINUX进程调度分析源码,Linux 实时调度(源码分析)

    为了弄清楚在多cpu系统中是如何实现实时调度的,先引入以下几个概念: cpu的状态: 我们知道,在linux系统中,任务的优先级为0~140. INVALID:(-1)该cpu不可用 IDLE(0): ...

  9. linux什么是实时调度,Linux中的实时调度

    svenfx.. 17 在实时调度中,FIFO和RR与非实时调度具有完全相同的含义.始终以FIFO方式选择过程,然而,与SCHED_RR的时间量不同,SCHED_FIFO的时间量不受限制. SCHED ...

  10. Linux进程管理 (7)实时调度

    关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进 ...

最新文章

  1. 2021-05-20 Matlab实现傅里叶变换
  2. [BUUCTF-pwn]——hitcontraining_uaf
  3. 不擅演讲的马化腾在 08 年讲了什么?
  4. 带有NetBeans 10的Java EE
  5. 计算机应用基础(高起专)答案,东北师范大学14秋《计算机应用基础(高起专)》14秋在线作业1答案...
  6. 计算机应用操作题word,计算机应用基础网考模拟练习题Word部分操作题
  7. python面向对象难学_学不下去了!?详解Python面向对象核心概念,简历没跑了
  8. 网站模型|可以帮助你以一种美丽、独特的方式展示你的网站设计。
  9. 诛仙服务器列表文件,诛仙云服务器
  10. Android Studio(九):引用jar及so文件
  11. can接收id过滤linux,linux – 很大程度上被candump(SocketCAN)ID过滤功能搞糊涂了
  12. 图像匹配 | 论文与方法整理
  13. 机械革命无法使用U盘启动linux,机械革命笔记本bios设置u盘启动教程
  14. 安装Ubuntu Server 在 Configure the package manager是闪退到installer main menu
  15. 仿QQ设置头像(拍照/选择照片)
  16. selinux-001
  17. php 读取ipa图标,php解析ipa
  18. 黑龙江成立生物医疗大数据中心
  19. 【月光宝盒get√】用时间置换空间,聊聊稀疏数组的那些事儿
  20. Matlab绘制波特图的两种方案

热门文章

  1. JAVA计算机毕业设计原创网络文学管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  2. Mirai实现QQ机器人
  3. springboot优缺点
  4. Ubuntu20.04 重装N卡驱动仍无法解决的问题的解决方法
  5. AWS EMR 上 Spark 任务 Container killed Exit code 137 错误
  6. 【P3369 普通平衡树】 Splay
  7. AC-Campus准入控制--Mac
  8. 响铃:金蝶的SaaS第一能保持多久?
  9. 截图快捷键ctrl加什么
  10. 三角形边长求高的c语言函数公式,各种三角形边长的计算公式-三角形三边公式...