RTOS是一种架构。历史以来,任何一个阶段都有一定的软件架构在主宰软件行业。最开始的架构是前后台的超循环模式。While(1)大循环是后台,中断异步处理是前台。这种结构直至现在也很多公司使用,适合简单的、资源不多的单片机做一些简单的控制处理。但是如果需要处理多个的任务,这种超循环模式将变得难以控制,而且实时性也变的十分差,一个任务卡住了,下个任务执行时间难以预测,任何优秀的产品都是离不开现实需求,于是RTOS孕育而生。
RTOS以多任务,实时性强,提供多种服务为软件工程师解决了超循环问题。对于RTOS,一个任务的卡死,并不影响另一个任务的运行。RTOS每个任务都有机会占有cpu全部的资源(单核情况),使用RTOS的用户只需要关心怎样去规划任务,包括任务的优先级、时间片,以及任务之间的同步、通讯就可以。
概念解析:
1. 任务、进程、线程
Linux中内核层的进程等于线程,用户层的进程是由线程组成的,同一进程的各个线程可以使用该进程的全部资源(比如消息队列、信号量等)。
2. 软实时和硬实时
软实时:尽可能快地完成操作。
硬实时:能够在指定的期限完成实时任务(即便在最坏的处理负载下也能如此)的操作系统,超过截止期限后将造成灾难性后果。
软实时对于任务的平均响应时间要低于某个值(Deadline),而硬实时是在最坏的情况下对于任务的响应时间要低于某个值。
在RTOS中进程等于线程等于任务,一般RTOS是没有分层的(后面会提到为什么会这样),一般称作任务。
操作系统在作者看来就是为用户做好一些服务,比如提供任务切换、信号量、消息队列、互斥锁等服务;在用户看来就是管理软硬件,写好任务,使用操作系统提供的API,让操作系统去调度任务。