英语原文共 7 页
2017年IEEE/ACS第十四届计算机系统与应用国际会议
物联网受限设备运行系统的比较:调查
Challouf Sabri,Kriaa Lobna,Saidane Leila Azzouz
CRISTAL Laboratory, National School of Computer Sciences
University of Manouba
Manouba,Tunisia
{sabri.challouf,lobna.kriaa,leila.saidane}@ensi-uma.tn
摘要——物联网(IoT)是指以IP地址为特征的不断增长的物理对象网络,物联网正成为研究界和研究领域的一大挑战。物联网设备的操作系统在这方面起着至关重要的作用。由于资源的限制,这些低端设备无法使用Windows或Linux等传统操作系统。为了设计这些相关设备的操作系统,已经做了大量的工作。本文的主要贡献是对最新的低端物联网设备操作系统的比较研究。比较的重点是架构、调度、实时功能、编程模型、内存占用、网络连接、硬件支持和能源效率等主要操作系统关键。我们在选定的OSs中突出显示这些OS关键值:FreeRTOS、Mbed、Contiki、TinyOS和RIOT。
索引词——物联网;操作系统;比较;受限设备,freeRTOS;mbed;contiki;tiny;riot
Ⅰ.简介
物联网是一种信息、交互、交易和行动的附加层,它通过设备增加到互联网上,具有数据感知、分析和通信能力,它使用因特网协议[16]。它正在迅速发展,据统计,到2020年,物联网设备将达到500亿台联网设备。
物联网系统的体系结构涉及大量连接到网关的终端节点(受限设备)来作为聚合设备,这些终端节点又连接到远程云平台[2]。
物联网需要管理复杂性,以便将规模扩大到数十亿台设备。操作系统充当复杂系统的资源管理器。在典型的系统中,这些资源包括处理器、内存、计时器、磁盘、网络接口等。
根据VDC研究报告[21],物联网和嵌入式操作系统市场预计将从2014年的略低于15亿美元增长到2019年的17亿美元,5年复合年增长率(CAGR)为2.9%。此外,VDC预测,全球出货量(包括商业和非商业OSs)将从110亿部激增至176亿部,5年的复合年增长率为9.8%[21]。
领先的厂商正在进一步向小型操作系统进军,并专注于实时操作系统(RTOS)和全功能操作系统(FFOS)。由于RTOS和FFOS市场并行共存,嵌入式操作系统行业在过去几年一直保持相对稳定。目前,物联网操作系统市场正在经历一个快速的范式转变,这本质上是由于Linux的成熟和重新思考价值创造和创收的需要[21]。
下一个图描述的是当受访者被要求确定他们在物联网中使用哪种操作系统时的调查结果[12],[13],[14]。
图1 物联网设备使用操作系统调查结果
超过70%的物联网设备使用Linux和比例在个位数的大多数其他主流操作系统。Linux主导着网关设备的物联网操作系统市场。对于低端物联网设备,传统的OSs并不适合,因为它们无法在硬件提供的有限资源上运行。同时,如果没有操作系统,像无线支持这样的功能很难从头构建。对于这些情况,低内存占用的实时操作系统近年来已经成为解决方案,它们现在越来越多地部署在以前没有正式操作系统的应用程序中。
开放的优势促进了物联网OSs的几个开源变体的发展。本文在调查的基础上[12]、[13]和[14],对近三年来最常用的开源低端物联网OSs进行了对比分析,将分为两部分。第一部分详细介绍了物联网操作系统的主要关注点,包括架构、调度、实时功能、编程模型、内存占用、网络连接、硬件支持和能源效率。第二部分根据第一部分提出的特点对FreeRTOS, Mbed, Contiki, Tiny和RIOT进行描述和比较。
Ⅱ.物联网操作系统设计的主要关注点
操作系统是应用程序和物理资源之间的接口。主要由内核、实用软件和系统外壳组成。内核是操作系统中最基本、最核心的部分。它包含管理各种资源的模块,是硬件的真正主人和控制器。实用软件支持操作系统的操作,并为内核提供必要的软件,如调试器、编译器等。系统为用户提供了内核的接口。
区分物联网操作系统的关键特征和要求如下:
A.架构
内核是操作系统的核心。内核的组织构成了操作系统结构,操作系统结构不仅影响内核的大小,而且影响内核向应用程序提供服务的方式。有许多操作系统架构。其中一些著名的是覆盖了所研究的OSs的单片和微内核架构。
单片架构没有任何结构。它是一个完全在单个地址空间中运行的大型进程。它的服务是单独实现的,每个服务为其他服务提供一个接口。所有系统服务都捆绑在一个系统映像中。
微内核架构有一个最小化的内核。在这种体系结构中,内核被分解成单独的进程,称为服务器。有些服务器在内核空间中运行,有些在用户空间中运行。由于内核内部只提供了最小的功能,所以内核的大小显著减小[3]。
论述:
虽然单片操作系统模块交互成本较低,但系统难于理解和修改,不可靠,难以维护,这使得它们在低端物联网设备上是一个很差的操作系统设计选择。另一方面,尽管与单片内核相比,微内核的内存性能较差,但由于内核较小和上下文切换的次数很少,因此微内核是许多嵌入式操作系统的设计选择。此外,这种体系结构提供了更好的可靠性、扩展性和定制性,因为大多数操作系统功能都是通过用户级服务器(如内存服务器和时间服务器)提供的。在这种情况下,如果一台服务器失败,整个系统不会像单片系统那样崩溃。
B.调度和实时能力
任何操作系统的另一个关键部分是调度程序,它影响其他重要属性,如能源效率、实时能力、系统性能、编程模型和延迟,这些都取决于调度算法。
调度程序有两种类型,抢占式调度程序和协作式调度程序。一种抢占式调度程序,如RTOS,为每个任务分配CPU时间,而不同的任务必须在协作模型中屈服。
对于实时功能,调度器应该遵守严格的时间限制。这种调度应该达到进程的最后期限,以便在给定的时间范围内完成任务。
此外,在物联网系统中,调度程序应该是高效的、多任务的。
C.编程模型
编程模型定义了应用程序开发人员如何对程序建模。物联网OSs的典型编程模型可分为事件驱动系统和多线程系统。
在事件驱动的系统中,每个任务都必须由外部事件(如中断)触发。这种方法通常伴随着一个共享堆栈模型和一个简单的事件循环,而不是更复杂的调度程序。而基于多线程的编程模型提供了在自己的线程上下文中运行每个任务的机会,并通过使用进程间通信(IPC) 接口在任务之间进行通信[3]。
论述:
由于它们的特性,多线程操作系统可以通过更简单的代码、对顺序服务算法的语法支持以及利用编译时效增强功能来提高性能的能力,来提供更强的智能管理性。这就是为什么基于线程的设计似乎是实现高可用性和可伸缩的物联网应用程序的更好选择。
D.内存占用
物联网设备的资源约束比其他联网设备大得多,特别是在内存方面。物联网设备通常提供几千字节的内存,比标准连接机器(笔记本电脑、智能手机等)少几百万倍。这个观察结果同时适用于RAM和闪存[22]。
内存占用值取决于硬件平台的体系结构、编译器设置和最重要的操作系统配置,其中包括内核大小和运行时库的大小[32]。
在2014年,互联网工程任务组(IETF)在RFC-7228标准中将此类设备按照内存容量分为三个子类别,如表1所示:
表1 受限设备种类[22]
C0经典类型中的设备通常由构建在8位架构上的MCU组成,而C1和C2设备可以从8位到32位架构不等。
E.网络连接和协议支持
拥有物联网设备的主要意义在于它们可以相互连接,并与其他设备或Internet进行通信,因此物联网设备通常具有一个或多个网络接口。
物联网通信技术不仅使用各种各样的低功耗无线电技术,如IEEE 802.15.4和蓝牙低功耗(BLE),而且还使用各种有线技术,如以太网。
物联网堆栈必须是灵活的,因此只需进行最小的更改,就可以配置它来满足各种物联网应用程序的需求。对Ipv6的支持在物联网系统中是必须的,这样才能在巨大的网络中拥有独特的身份。物联网操作系统应该支持低功耗网络协议,如6LoWPAN(通过IPV6的低功耗无线局域网)、RPL(针对低功耗和有损网络的IPV6路由协议)和CoAP(受限应用协议)。报头压缩和包含最小特性有助于保持协议更可行[9]。
根据上次开发者的问卷调查[12]、[13]、[14]和其他物联网网络标准的调研[9],大多数的网络协议和标准是IEEE 802.15.4、蓝牙(BLE)、ZigBee、LPWAN (LoRa、Sigfox等)、6Lowpan、RPL、Coap和MQTT。这些标准将是我们网络比较的重点。
F.硬件支持
从架构的角度来看,今天的Internet硬件和协议并不是太多样化。对于物联网来说,异构性的程度会激增,一个通用的操作系统应该支持这一点。大量的物联网用例导致了大量硬件和通信技术的开发。物联网低端设备基于各种单片机架构和系列,包括Intel 8051、Atmel AVR等8位处理器架构,TI MSP430等16位架构,ARM Cortex-M、MIPS32等32位架构,64位架构也可能在未来出现。
G.能源效率
节能降耗不仅是绿色环保,还能节约资金,延长产品寿命。对于由电池供电的物联网设备来说,能源效率变得至关重要,在设计物联网操作系统时应该考虑到这一点。
与传统的网络协议不同,物联网需要在设计时考虑到能效的节能协议。在低功耗无线系统中,无线电收发器通常是最耗电的组件,因此,通过使用6lowpan、RPL、LoRaWan等低功耗协议,能量效率转化为尽可能地保持无线电关闭。
对于单片机的功耗方面,设计良好的设计人员在任何实际情况下都致力于将功耗最小化。所以电池耗尽的设备在长时间运行时需要电源管理。在这种情况下,为了在空闲模式下实现一年以上的操作时间,设备应该使用小于10mu;A [18]。在目前的微控制器技术中,电源的主要消耗发生在开关阶段。
随着集成电路变得越来越小,处理器也能够增加时钟频率,从而运行得更快。更快的时钟可以提高性能,但也会提高功率级别。所以,只要有可能,放慢或关闭时钟就会降低功率。许多处理器支持改变时钟频率,甚至在休眠模式下关闭时钟。即使在关闭时钟的情况下,仍然需要一些降低的静态功率级别来将值保存在寄存器和易失性RAM内存中,这样设备就可以在没有完全重启的情况下唤醒。
Ⅲ.物联网操作系统的比较
根据Eclipse开发者调查[12]、[13]、[14],我们的文章涵盖了2015年、2016年和2017年低端设备使用最多的OSs。这些操作系统是FreeRTOS, RIOT, Mbed, Contiki和Tiny OS。下一小节对选定的OSs进行广泛地对比(用法和许可证),剩余小节将与第二节中详细介绍的主要关注点进行比较。
A.普遍性
所有5个开源软件都是开放源码的,但是并不是所有的开源软件都有相同的许可证。FreeRTOS已经修改了GPL许可,Mbed已经获得Apache v2.0许可,Contiki和TinyOS已经获得BSD许可,RIOT是在LGPL v2.1下。
根据[12]、[13]和[14],RIOT和Contiki OSs在2015年至2017年的增长率较高(分别为7.5%和7.4%),FreeRTOS的增长率为6.3%。但是如果我们关注每年的增长使用情况,我们会发现FreeRTOS和Contiki斜坡受到了干扰,而RIOT由于具有丰富的特征而一直在增加。
图2 2015年至2017年FreeRTOS, Contiki和RIOT的增长率
B.架构
比较基于单片或微内核架构的操作系统,表2显示了每个操作系统架构。
表2 操作系统的架构
大多数操作系统都是基于微内核的,因为内核的大小和上下文切换的数量都很小。此外,实时功能非常依赖于内核架构。这就是为什么OSs FreeRTOS, Mbed和RIOT都有微内核架构,它们都是完全实时的OSs,不像Tiny和Contiki。
C.调度和实时能力
操作系统的调度策略是影响系统性能的关键因素。一些物联网系统可能有严格的实时限制,而物联网操作系统必须能够提供这类系统所需的调度。物联网RTOS系统通常基于多任务调度程序,因此优先采用抢占式调度程序。
表3 操作系统调度和实时功能
由于抢占系统的需要,Contiki尝试使用混合模型来实现抢占行为。此模型基于事件驱动的内核,其中抢占式多线程作为一个应用程序库实现,该应用程序库与强制要求的程序链接在一起。
为了提供一些实时功能,Contiki添加了提供实时任务调度的rtimer库。
资料编号:[3909]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。