Newtank

个人站

欢迎来到我的个人站~


实时操作系统(一)

目录

RTOS和GPOS的区别

相似的功能

  • 多任务级别
  • 软件和硬件资源管理
  • 为应用提供基本的OS服务
  • 从软件应用抽象硬件

RTOS分离出的功能

  • 更好的上下文可靠性
  • 满足应用需要的剪裁能力
  • 更快
  • 减少内存需求
  • 实时嵌入式系统提供可剪裁的调度策略
  • 支持无盘化嵌入式系统,允许从ROM或RAM上引导和运行
  • 对不同硬件平台具有更好的移植性

实时操作系统(RTOS)

RTOS的特征

  • 可靠性
  • 可预测性、确定性
  • 性能
  • 可压缩性
  • 可扩展性

RTOS的核心组成是任务。其中并不像常见操作系统一样有主循环,而是根据任务的优先级调度任务,其使用调度器来维护各个任务的状态与任务调度。

实时系统

实时系统是指计算的正确性不仅依赖程序逻辑,也依赖结果产生的时间。如果在不正确的时间得到结果,那么也是错误的。

实时系统的度量:

  • 确定性:如果一个系统始终会为某个已知输入产生相同输出,则系统是确定性的。非确定性系统的输出具有随机变化的特征
  • 截止时限:指明任务计算何时必须结束
  • 服务质量(QoS):网络的整体性能,包括带宽、吞吐量、可用性、抖动、延迟和错误率等
  • 到达时刻:任务实例所属任务的起始时刻
  • 释放时刻:任务实例被置为就绪态的时刻

实时性分类:

  • 硬实时:任务有严格截止时间,超过了就是系统失败。例如飞机传感器、自动驾驶系统等
  • 软实时:如果错过了某个截止时间不会认为任务系统失败,但系统可能会降低服务质量来提高响应能力。例如音视频娱乐传输等
  • 准实时:错过了截止时间的信息和计算会被丢弃,不会认为任务系统失败,但系统可能会降低服务质量。例如财务预测系统、机器人装配线等

任务的分类:

  • 周期任务:一定周期达到就请求运行。每次请求称为任务的一个任务实例。
  • 偶发任务:到达时刻不是严格周期到达,但相邻任务实例的到达时刻一定有一个最小间隔。因此常被当做周期任务处理。
  • 非周期任务:随机到达系统的任务。

进程的执行时间Ti一般指无抢占下的执行时间,有秒、时钟周期等单位。会考虑最差和最好情况。执行时间由以下来源产生:

  • 数据依赖(IO)
  • 内存系统
  • CPU流水线

CPU利用率:CPU进行有用工作的时间比例,一般不考虑调度开销

进程调度

进程的三个状态:执行态、就绪态、等待态

嵌入式调度和一般调度的区别:

  • 一般调度会保证每个进程被执行的公平性
  • 嵌入式调度需要完成所有限时,低优先级的任务可能会长时间等待。

操作系统需要维护进程优先级、调度状态、进程上下文记录,在系统启动前或执行中创建新的进程。

当下调度策略的考量:

  • 抢占 vs 非抢占
  • 周期性 vs 非周期性任务
  • 固定优先级 vs 动态优先级
  • 优先级反转问题
  • 其他调度问题

调度策略的度量:

  • 满足所有时限的能力
  • CPU利用率
  • 调度开销
  • 延迟
  • 完成总时间

抢占式调度

每个线程都有优先级。在任何时间,可用的最高优先级线程会被调度。当任何线程的优先级或可用状态改变,内核可以分派新的线程执行。