继互联网、移动互联网之后,万物互联的物联网时代正袭面而来。而作为开发者,想要入门物联网,首先需要对该领域的计算机及相关设备中唯一管理计算机硬件与软件资源的计算机程序之操作系统有一个全面的了解。
在本文中,我们将以IoTOS的基石嵌入式实时操作系统为核心,解读物联网时代那些不容错过的操作系统发展与应用。
何为嵌入式系统操作系统?
嵌入式系统是一种完全嵌入在装置或设备内部为满足特定需求而设计的计算机系统,生活中常见的嵌入式系统就有:电视机顶盒、路由器、电冰箱、微波炉与移动电话等。它们都具有某种特定的功能:对于电视机顶盒而言,它用来播放网络中的电视节目;同样,路由器用于选择最优路径并正确转发网络报文。这类系统专用性强、功能相对单一,通常只针对特定的外部输入进行处理,然后给出相应的结果,这样的特点使得嵌入式系统只需具备相匹配的少量硬件资源,就可完成所需的特定功能,因而能使成本得到有效的控制。
通用计算机系统则恰恰相反,它们并不针对特定的需求,而是尽可能地去满足各种需求,甚至在构造硬件系统时还会考虑未来几年的需求变化。例如,在人们购买电脑时,在自身有限的资金情况下,都希望尽可能获得更高端的性能,用于多媒体、游戏及工作等。
嵌入式系统硬件框图
嵌入式系统的硬件设备由一些芯片及电路组成,包括主控芯片、电源管理、开发调试时用到的JTAG接口,也可能包含一些数据采集模块、通信模块及音频/视频模块等。
实时系统
系统的实时性指的是在固定的时间内正确地对外部事件做出响应。在这段“时间内”,系统内部会做一些处理,例如输入数据的分析计算、加工处理等。而在这段时间之外,系统可能会空闲下来,做一些空余的事。以一个手机终端为例:当一个电话拨入的时候,系统应当及时发出振铃、声音提示以通知主人有来电,询问是否进行接听;而在非电话拨入的时候,人们可以用它进行一些其他操作,例如听音乐、玩游戏等。
从上面的例子我们可以看出,实时系统是一种需求倾向性的系统,对于实时的任务需要在第一时间内做出回应,而对非实时任务则可以在实时事件到达时为之让路——被抢占。所以也可以将实时系统看成是一个等级系统,不同重要性的任务具有不同的优先等级:重要的任务能够优先被响应执行,非重要的任务可以适当往后推迟。
实时计算可以定义成这样一类计算,即系统的正确性不仅取决于计算的逻辑结果,还依赖于产生结果的时间。有两个关键点,即正确地完成和在给定的时间内完成,且两者重要性是等同的。如果计算结果出错,这将不是一个正确的系统,而计算结果正确,但计算所耗费的时间已经偏离需求设定的时间,那么这也不是一个实时系统。下图中描述了一个实时系统。
对于输入的信号、事件,实时系统必须能够在规定的时间内得到正确的响应,而不管这些事件是单一事件、多重事件,还是同步信号或异步信号。
举一个例子说明:假设一颗子弹从20米外射向一个玻璃杯,子弹的速度是v米/秒,那么经过t1=20/v秒后,子弹将击碎玻璃杯。而如果有一个保护系统在检测到子弹射出后,把玻璃杯拿走了,假设整个过程持续t2秒的时间,如果t2<t1,玻璃杯就不会被击碎,那么就可以将这个系统看成是一个实时系统。
实时系统
和嵌入式系统类似,实时系统中也存在一定的计算单元,这些单元可对系统的环境及其内部的应用做出预计,这也就是很多关于实时系统的书中所谈及的可确定性,即系统可以在给定的时间(t秒)内对一个给定事件做出响应。多个事件、多个输入的系统响应的可确定性构成了整个实时系统的可确定性(实时系统并不代表着对所有输入事件具备实时响应,而是在指定的时间内完成对事件的响应)。嵌入式系统的应用领域十分广泛,我们并不是要求所有的专用功能都具备实时性,只有当系统对任务有严格时间限定时,我们才