嵌入式操作系统概述
随着人工智能的快速发展,嵌入式操作系统在智能系统中发挥出越来越大的作用。嵌入式操作系统的种类繁多,用途广泛,其主要包括嵌入式实时多任务操作系统(
实时系统
一个实时系统指计算的正确性不光指程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。为此,我们引入了两个术语:确定性和截止时限。确定性指如果一个系统始终会为某个已知输入产生相同的输出;而截止时限就是必须完成某项任务的有限窗口,指明计算何时必须结束。
实时操作系统指支持构建实时系统的操作系统。许多嵌入式系统都是实时系统,因此,它们必须使用实时操作系统。
实时操作系统和通用操作系统的异同
相同点:多任务级别、软件和硬件管理、为应用提供适当的 OS 服务等;
不同点在于:实时操作系统具有实时的特性,以及满足应用的裁剪能力,因此,嵌入式操作系统通常支持小内存、高可移植性、调度策略优化以及无盘化系统。另外,嵌入式系统的应用上下文具有更高的可靠性。
对于想要了解实时操作系统的初学者来说,ucOS 和 freertos 是不错的选择。
物联网操作系统
物联网操作系统的要求:内存占用小,支持异构硬件、网络连接、节能和安全。内存的大小经常是 KB 级别的,因此需要在性能、方便的 API 和操作系统内存占用三者上进行权衡;而异构硬件指支持不同架构和位数的处理器等;物联网中使用的通信技术不仅包括各式各样的低功耗无线通信技术,还包括有限技术;许多物联网设备使用电池或其他有线的能源,因此必须考虑节能;物联网设备是关键基础设施(如生命安全保障设施和工业系统中的设施等)的组成部分,也可以是与日常生活息息相关的设备,所以必须保证其安全性。
事件驱动 OS 和多线程 OS
事件驱动 OS 的关键思想是,系统上的所有处理都是由外部事件触发的,通常由中断发出信号。内核大致相当于一个无限循环,处理同一上下文中发生的所有事件。而这样的事件处理程序通常会运行到结束。
多线程 OS 即对多个线程进行调度的操作系统。通常会引入一些内存开销,这是由于堆栈预留空间造成的,而运行时开销则是由于上下文切换造成的。