嵌入式开发:实时操作系统(RTOS)介绍

更新时间: 2023-01-29 15:19:54来源: 粤嵌教育浏览量:8716

当今嵌入式系统中最重要的组件之一是RTOS”或“实时操作系统”,它负责从调度任务到启用CPython等高级语言的所有工作。那么,是什么让RTOS成功了,为什么嵌入式开发人员要关心它呢?

 

RTOSGPOS

 

通用操作系统(GPOS)。通用操作系统中的“通用”意味着操作系统必须实现许多目标,如提供良好的最终用户体验、支持不同类型的程序和硬件以及提供定制选项等功能。

 

GPOS倾向于与处理器协同工作,其中每个内核每次运行一个执行线程。在这里,操作系统的调度器决定运行哪个程序以及何时运行,并在每个程序之间快速切换。这导致了同时执行的错觉,并希望提供良好的整体用户体验。除此之外,GPOS还可以提供其他功能,如复杂的图形用户界面、复杂的文件I/O系统等。

 

另一方面,RTOS被设计为提供可预测的执行模式,并且在处理必须符合有时间限制的系统的时间限制时(即,以某一频率完成处理,否则整个系统将失败)使用RTOS。因此,与GPOS相比,RTOS通常重量轻、体积小,通常只提供在特定硬件上运行特定类型应用程序所需的功能。在某些情况下,嵌入式开发人员可能会修改现有的RTOS,将其缩减为仅特定应用程序所需的功能,或自定义其功能或性能特征。

 

实时操作系统可分为:

软的:RTOS通常可以满足时间限制的最后期限;抢占期通常在几毫秒内。

牢固的:RTOS有一定的时间限制,这些限制并不严格,可能会产生不希望的但可接受的效果。

硬的:RTOS可以决定性地满足时间期限。硬RTOS通常适用于涉及任务关键型应用程序(如机器人和无人机)的用例。硬RTOS的抢占期通常小于几微秒。

 

GPOS一样,RTOS提供了您期望从OS中获得的一些或所有基本功能,如线程同步、跨界通信(例如,命名管道)、计时器、内存管理等。然而,RTOS努力以符合底层系统和目标应用程序的时间限制要求的方式提供此功能。



满足截止日期

在允许RTOS满足这些时间约束的众多因素中,任务调度和中断值得特别一提。

嵌入式开发人员使用GPOS,调度以通常实现高吞吐量(即单位时间内完成执行的进程总数)的方式来处理。但是,这可能意味着高优先级流程的执行将被延迟,以便完成多个低优先级任务。另一方面,RTOS的价值是根据它的反应速度或可预测性来衡量的,而不是根据它在给定时间内完成的工作量来衡量的。

 

RTOS中,调度通常基于优先级。大多数RTOS使用基于优先级的抢先任务调度方法。这里,高优先级进程将在低优先级进程之上执行。使用GPOS时,随着需要调度更多线程,延迟会不断累积。RTOS没有这样的问题,因为所有进程和线程的延迟都是有时间限制的。RTOS还为您提供了一种确保共享系统资源不会被并发访问的方法。

 

在嵌入式开发中,RTOS的内核是可抢占的,而GPOS的内核是不可抢占的,这在优先服务高优先级进程和线程时非常重要。如果没有可抢占的内核,来自内核内部的请求,比如来自驱动程序或系统服务的请求,将会覆盖所有其他进程和线程。使用RTOS,只有非常重要的服务请求被保存在内核调用中,所有其他服务请求都被视为外部进程和线程。基于内核的服务请求与RTOS的有限延迟相关联,以保持快速和可预测的响应。

 

结论

RTOS是确保嵌入式设备(如物联网、机器人和移动设备)可预测和及时执行的关键组件。因此,它的目标是为时间受限的应用程序提供设施,这些应用程序必须在特定的时间框架内执行,同时最小化中断和切换线程导致的延迟(如延迟)。

 

正如我们所看到的,在嵌入式开发中,有商业、开源和专有的RTOS可以用于嵌入式系统,它们提供了多种选项和功能,如可定制性、跨平台或专用支持以及丰富的SDK支持。

免费预约试听课