什么是RTOS?
嵌入式系统中的实时操作系统
在RTOS中可以期待什么?
RTOS最佳实践
如何选择嵌入式RTOS
PX5 RTOS如何帮助您?
第三节 在RTOS中可以期待什么?
RTOS使用各种机制来管理任务、事件和内存,以确保嵌入式系统满足时间约束。在本节中,您将了解构建嵌入式应用程序时需要考虑的RTOS功能,例如确定性、空间和时间分离、调度、内存管理和进程间通信。
RTOS确定性
保证任务在指定时间内运行的RTOS称为确定性的RTOS。按照RTOS的设计目标,即使有意外输入,也可以保证确定性。PX5 RTOS是一个确定性RTOS的示例,具有亚微秒上下文切换和API调用。
空间与时间分离
空间分离或空间隔离是指在安排在自己的私有内存空间中运行的任务。时间分离确保任务在自己的时间内独立运行。这些技术通过防止两个或多个任务同时访问同一内存空间来保护内存和其他资源。
RTOS调度
RTOS采用调度算法来确定任务在处理单元上运行的顺序,从而确保它们满足时间限制。实时系统中并发的基本单位是线程,RTOS调度程序使用三个参数来调度线程:
• 优先级。线程被分配一个优先级,调度程序确保在必要时优先级较高的线程抢占优先级较低的任务。这样一来,关键任务(例如汽车的油门控制)就可以运行,而不会被不太重要的任务(例如数据记录)延迟。
• 截止时间。有两种类型的截止时间。绝对截止时间是作业必须完成的确切时间。相对截止时间是给定输入时间后允许的最大完成时间。
• 状态。线程要么处在就绪(可在处理资源上执行),要么正在运行(正在执行),要么被阻止(等待事件,例如网络数据)的状态下。
任务的时间片调度 来自:《嵌入式实时操作系统—理论基础》图2.4
抢占式RTOS和协作式RTOS
抢占式和协作式多任务处理是RTOS用于同时执行多个任务或进程的两种方法。抢占式RTOS允许当前正在运行的任务停止执行,同时RTOS将CPU分配给另一个进程。在协作式多任务处理中,只有任务本身可以将控制权移交给另一个任务,例如当它完成其工作或被阻止时。
RTOS内存管理
RTOS将物理内存划分为不同的部分,例如堆栈和堆。堆栈存储函数的调用信息及其局部变量,这需要仔细管理以避免内存越界错误。堆分配动态内存,用于应用程序各部分之间的全局信息和数据共享。
为了有效地管理内存,RTOS使用诸如首次适应和最佳适应等技术来分配段而不覆盖其他段。
内存使用的问题,来自:《嵌入式实时操作系统—理论基础》图13.6
进程间通信(IPC)
进程间通信是RTOS允许进程相互同步和通信的机制。IPC有两个常见方法:在进程之间传递消息和在进程之间共享内存。
RTOS的三种常见通信类型是:
• RTOS队列:内存中的先进先出(FIFO)缓冲区,支持在任务之间传递消息。
• RTOS信号量:任务之间的信号,不包含数据,用于触发接收任务的操作。
• RTOS互斥锁:用于保护代码关键部分的标志,一次只允许一个线程访问它。
《嵌入式实时操作系统—理论基础》Jim Cooling 博士著 何小庆、何灵渊、张爱华翻译,清华大学出版社出版各大电商有售;欢迎大家选购。
麦克泰技术是PX5 RTOS在中国的代理商,麦克泰技术具有超过20年嵌入式实时操作系统的市场、服务和培训经验,积极推进预认证的功能安全RTOS在汽车和工业领域的应用,大家有需要可以联系麦克泰技术。
全部0条评论
快来发表一下你的评论吧 !