RTOS的起源与目的
在没有操作系统的时代,程序都跑在裸机上,当时程序需求都比较简单,任务单一且体量小。在主程序中使用轮询机制,就可以对接外界的反馈。
但随着需求的日益复杂,想要同时运行多个任务,且单个任务的体量变大。一方面运行多个任务,就要对任务有调度、共享资源分配;另一方面,采用轮询机制,有可能导致反应时间过长,对时间有高要求的任务来说,这显然不能允许。
因此,**操作系统**就诞生了。它可以应用于复杂的多任务场景。所有的操作系统中,都有对任务的管理,包括创建、调度、通信、同步等。除此之外,一般的操作系统还配置有线程的管理、内存的分配使用、文件系统、IO设备驱动的管理。我们日常使用的windows、IOS系统都具备上述的功能。
要实现一般操作系统的功能,代码量巨大,同时需要相应的物理资源支撑,那么在一些对成本、功能、性能均有较高要求的场景中,它就不太适用。**嵌入式操作系统**就应运而生。嵌入式操作系统最大的特点就是,功能可裁剪,我们可以根据应用的需要,灵活的裁剪掉不用的功能模块,或者优化相应的模块,以降低整体代码量、适应现有硬件资源支持。
本文所说的RTOS(Real Time Operating System)是嵌入式操作系统的一种,它应用于对任务的响应有高要求的场景。比如导弹巡航系统、现在的自动驾驶,这些系统中的任务对于响应时间的要求均非常苛刻,一旦该任务没有及时响应,将会导致整个系统的失败。
RTX实时操作系统模块
任务创建、消灭
任务调度
调度方式—抢占式、时间片、合作式
优先级修改
任务间同步
事件标志组
信号量
互斥信号量
进程锁
任务间通信
消息邮箱
消息队列
系统时钟节拍
延时函数的实现
定时器组
内存管理