没有合适的资源?快使用搜索试试~ 我知道了~
物联网操作系统与协议栈:案例研究视角
沙特国王大学学报物联网的操作系统支持、协议栈与关键问题和测试平台设施:案例研究视角巴特尔?帕特尔昌杜拜Patel技术学院(CSPIT),技术工程学院(FTE),Charotar科技大学(CHARUSAT),印度古吉拉特邦,Changa阿提奇莱因福奥文章历史记录:收到2020年2020年11月19日修订2021年1月2日接受2021年1月13日在线提供保留字:物联网(IoT)操作系统设计特点协议栈开发人员关注的物联网集成A B S T R A C T在异构设备和传感器方面,人机无缝协作,催生了人联网、物联网和未来互联网。在很短的时间内,300亿台智能设备将以智能应用的形式连接起来,使个人的生活更顺畅,更舒适,更快捷,随时随地都可以访问。物联网结合了IPv6在网络连接、传感和下一代通信技术方面的强大功能,以满足未来的需求。由于在内存、计算和能源方面的限制环境,本文将对不同的操作系统进行深入分析。候选操作系统和模拟器的选择,牢记各种障碍和关键的设计特征。通过这项调查,其他研究社区可以为操作系统做出适当的选择,并使物联网成为现实。最后,还讨论了案例研究,提供协议栈实现的细节,以及可部署的测试床,它的大小在支持的节点和其他安全挑战。从开发人员的角度来看,在编程语言和应用领域的关键偏好水平进行了分析和讨论,以提供进一步的研究方向。最后探讨了物联网与未来领域的集成以及版权所有©2021作者。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍不断增长的物理对象网络往往以智能的形式将现实世界与数字概念相互连接,这种网络它产生了Kevin Aston(Ashton,2009)提出的物联网(IoT)一词。根据Gartner报告,物联网安装基础将在不久的将来由300亿台智能设备填充(Gartner,2017)。物联网设备将以工业物联网、农业、智能家居、医疗保健、物流等形式提供智能应用。无线传感器网络、执行器和嵌入式系统,微控制器和芯片将成为设计智能和智能设备的组成部分由于在异构性、可扩展性、安全性和*通讯作者。电 子 邮 件 地 址 : www.example.combimalpatel.it @ charusat.ac.in ( B. Patel ) ,parthshah.ce@charusat. ac.inwww.example.com Shah)。沙特国王大学负责同行审查制作和主办:Elsevier在内存和计算能力有限的资源约束环境中,普通的操作物联网设备的这种独特而灵活的特征提供了调查高效的便携式轻量级操作系统的需要(Zhang等人,2012年)。1.1. 动机和亮点本文对所有可应用于物联网环境的操作系统进行了全面的详细分析。随着操作系统在一个单一的篮子,它讨论了物联网协议栈的角度从开发人员侧社区的约束设备,物联网网关和云服务提供商的支持。这次审查的主要重点如下:考虑IoT环境的各种挑战提供考虑操作系统所需的设计特性。根据最新技术水平和附加功能的比较选择正确的候选操作系统。案例研究展示了物联网协议栈在测试平台设施方面的实现,广泛使用的协议的研究计数以及约束设备,网关和云服务提供商方面的分歧。https://doi.org/10.1016/j.jksuci.2021.01.0021319-1578/©2021作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.com●●●●B. Patel和P. Shah沙特国王大学学报5421还探讨了用于实时分析的广泛使用的物联网模拟器。最后,物联网与未来的推力领域的整合以及问题进行了讨论。1.2. 论文组织论文的其余部分组织如下:第二节描述了物联网操作系统设计的主要关注点和要求。接下来是第三节中与物联网中各种广泛使用的操作系统的核心和附加功能相关的最新调查工作,以及详细的比较分析在第四节中,介绍了案例研究在案例研究中还描述了与物联网开发人员社区相关的不同结论。在第五节中,给出了结论,这将清楚地说明在不同条件下适当的候选OS。2. 设计IoT OS为了有效地适应物联网设备对各种对象的限制和约束,在后台运行的操作系统在其性能和所需的其他参数方面发挥着至关重要的作用因此,在本节中,我们概述了在物联网环境中设计操作系统应满足的关键理想特性2.1. 架构和模块化对于任何操作系统,必须做出的第一个布局选择是内核类型的选择。这种选择对操作系统的整体架构和模块化有主要影响。内核是应用程序和在硬件级别完成的实际数据处理之间的桥梁。可以通过微内核、分层和单片的方法来区分各种内核体系结构。微内核架构允许一些基本服务,如设备驱动程序管理,协议栈,文件系统等,在用户空间运行。它主要是为了解决内核代码不断增长的问题。这种方法减少了内核代码的大小,也增加了操作系统的安全性和稳定性,但由于额外的消息传递,处理速度变慢。另一种方法是单片架构,它提供了丰富而强大的底层硬件抽象,从而减少了内存占用。在这种方法中,不需要的模块可以很容易地卸载。在分层方法中,更容易以分层方式增强和扩展模块,每层代码访问低级接口(Gaur和Tahiliani,2015; Farooq和Kunz,2011; Hahm等人,2016; Dwivedi等人,2009; Qutqut等人, 2018年)。2.2. 调度策略设计操作系统的另一个关键参数是调度程序。竞争者主要有两种类型:1)抢占式竞争者和2)非抢占式或合作式竞争者。必须根据实时能力、任务优先级和用户参与程度应用合理的调度策略。调度策略的目标应该是基于环境最大化吞吐量,最小化平均周转时间和响应时间 调度策略在决定低功率设备的公平性、活跃性和能量效率/消耗方面也起着至关重要的作用(Gaur和Tahiliani,2015; Farooq和Kunz,2011; Hahm等人,2016; Qutqut等人, 2018年)。2.3. 内存分配/占用和管理内存通常是物联网设备的稀有资产。在决定内存时,更大的问题是如何分配内存,这最终会影响其他操作系统设计标准。通常有两种方法来管理内存分配:1)静态和2)动态内存分配。静态内存分配很简单,并提供更快的访问。尽管动态内存分配是一种灵活的技术,它在运行时有效地利用内存,但访问速度较慢,因此浪费的机会也更多。在决定分配技术时,实时应用、缓存、虚拟环境和应用类型可能发挥重要作用( Gaur 和 Tahiliani , 2015; Farooq 和 Kunz , 2011; Hahm 等 人 ,2016; Dwivedi等人,2009; Qutqut等人, 2018年)。2.4. 能效大多数物联网设备都是功率受限的,并且在电池上运行。考虑到未来预计将部署数十亿物联网设备,能源效率可能是一个重要因素可能影响能量效率的几个因素是在设计时使用的架构类型、由内核或外部生成的中断以及使用用于时间分片目的的周期性定时器的调度策略为了实现能量效率,必须减少周期性任务,最终允许系统在睡眠模式中花费最长时间(Hahm等人, 2016年)。2.5. 网络连接和协议支持物联网网络连接和协议支持的关键要求应该是轻量级,模块化,开放标准,灵活支持各种异构设备和应用的需求,能够以低功耗和互联网进行通信。IPv6寻址对于在更广泛的领域中完全填充唯一性是必需的(Gaur和Tahiliani,2015; Qutqut等人, 2018年)。2.6. 编程模型和语言编程模型的选择会影响性能,应用程序开发的生产力和灵活性人们可以根据物联网将编程模型分为事件驱动和基于线程的系统。事件驱动可以实现编程的灵活性、简单性和开发的方便性。基于线程的系统提供了并发性,可扩展性方面的编程语言和API在实现适当的编程模型以实现预期结果方面起着至关重要的作用Python作为一种编程语言,由于其在其他编程语言方面的生产力,可移植性和可扩展性等特性,在开发基于物联网的应用程序方面获得了很大的动力(Gaur和 Tahiliani , 2015; Farooq 和 Kunz , 2011; Hahm 等 人, 2016;Qutqut等人, 2018年)。2.7. 实时支持基于应用的可选设计特征正在获得很大的动力,因为每天有数百万智能设备连接到互联网,执行关键和实时任务。实时应用可以大致分为周期性、非周期性、关键性和非关键性。 操作系统应设计为保证QoS体系结构的实现,并且内核应能够以确定的运行时间运行(Hahm等人, 2016年)。●●B. Patel和P. Shah沙特国王大学学报54223. IoT候选操作系统在本节中,讨论了用于各种低功率资源约束IoT设备的不同开放式和封闭式OS。构建IoT OS所需的通用模型如图所示。 1(Gaur和Tahiliani,2015)。从广义上讲,它分为一个硬件平台,包括传感器和MCU系列,然后是内核,调度器选择和网络通信所需的协议栈。最后一层是支持各种用户界面的应用程序。在本节中,我们根据物联网设备的设计特点分解和分析不同的操作系统,以便我们可以在最后进行比较。3.1. Contiki它是一个轻量级,灵活,事件驱动,便携和开源的操作系统,由“Adam Dunkels于2002年在瑞典计算机科学研究所创建”(Dunkels等人,2004年)。 它包含一个小的足迹,即2 kb RAM到30 kb ROM加载整个程序,包括GUI与睡眠路由器概念的帮助。为了使其易于理解,其余部分被分为核心功能和所有申请人物联网操作系统的附加功能(Farooq和Kunz,2011年; Hahm等人,2016年; Javed例如,2018年)。3.1.1. 架构Contiki使用基于事件驱动模型的混合模块化架构,由于异步事件减少了整体系统内存大小。它通过为所有进程考虑单个共享堆栈来提供并发性核心和底层程序由运行时的事件或轮询机制触发,这有助于设置优先级并避免竞争条件。Contiki操作系统的总体架构如图2所示(Dwivedi等人,2009年,在下面。3.1.2. 规划模型和调度以 pro-tothreads 的形式支持抢占式多线程( Dunkels 等人,2004),它们是作为内核之上的应用程序库实现的轻量级无栈线程,其执行CPU多路复用和事件处理。亲线程通过不为每个线程创建单独的堆栈来减少开销它通过允许阻塞功能提供了一个顺序的结构流实时定时器在抢占式中起着至关重要的作用。3.1.3. 内存管理和保护支持动态内存分配和动态链接的程序与自动碎片整理的帮助下,管理的内存分配器(mandrel),防止浪费的档案和防范保护碎片。3.1.4. 网络协议通信Contiki提供uIP TCP/IP通信协议栈,使用8Contiki还支持用于低功率无线电和使用RPL的有损网络的轻量级Rime协议栈(Winter等人,2012)和6lowpan(Kushalnagar等人, 2007年)。3.1.5. 实时支持Contiki缺乏本地实时支持,但使用Ring File System(RFS)提供。3.1.6. 附加特征Contiki 为 低 功 耗 资 源 限 制 设 备 提 供 了 一 套 文 件 系 统 。 CFS-POSIX,在本机模式下运行并使用直接API调用。Coffee flash文件系统,操作简单,针对配备闪存的传感器设备。它使用小而恒定的内存占用,这可能导致更高的可伸缩性和更低的开销。Contiki 操 作 系 统 的 安 全 性 是 在 Contikisec 的 帮 助 下 提 供 的(Casado和Tsigas,2009)。它旨在管理低功耗和更小的内存占用。用于Contiki的模拟环境由Cooja模拟器提供(Eriksson等人,2009年)。Netsim和MSPSim(Eriksson等人,2009)也可以用于模拟目的。3.2. 微型OS它是<<“开源的,事件驱动的,灵活的,特定于应用程序的,基于组件的,提供低内存占用的并发环境,即1kb的RAM和4kb的ROM以及由TinyOS联盟在BSD下授权开发和管理的复杂设计的杰出操作系统”(Farooq和Kunz,2011;Hahm等人,2016; Javed等人,2018; Levis等人,2005年)。3.2.1. 架构Tiny OS使用基于组件模型的单片内核架构,可实现快速创新并有助于减少代码Fig. 1. IoT OS的一般结构。●●●B. Patel和P. Shah沙特国王大学学报5423图二. Contiki建筑。尺寸如图3所示(Dwivedi等人,2009年)。组件内部通信可以通过命令和抢占式事件来实现,而非抢占式任务用于提供组件并发性。它使用单个共享堆栈,内核空间和用户空间之间没有区别,这进一步有助于实现组件并发性。3.2.2. 规划模型和调度TinyOS采用事件驱动模式,有效地利用了CPU资源。TinyOS2.1支持TOSThreads(Klues等人,2009),这允许实现更重要的并发概念。使用TOS线程的其他好处是它提供了NesC和C API,并完全支持应用程序级线程的抢占性质。调度程序使用FIFO抢占式调度执行高优先级线程和事件。后来, EDF ( Earliest DeadlineFirst)调度被支持,它克服了实时任务调度的问题。3.2.3. 内存管理和保护在编译时支持和使用静态内存分配,这有助于防止碎片以及运行时分配失败。Tiny OS 2.1版本提供了名为Safe TinyOS的内存保护服务,通过Deputy Debugger在运行时进行内存安全检查,功能强大图三. TinyOS架构。B. Patel和P. Shah沙特国王大学学报54243.2.4. 网络协议通信TinyOS使用BLIP(Berkeley low power Internet Stack)IPv6通信栈并支持6lowpan(Kushalnagar等人,2007)报头压缩,RPL(Winter等人,2012)和COAP(Bormannet al.,2012)路由协议。在微型操作系统中的多跳路由将使用TYMO(Dynamic MANET on-demand routing on Tiny OS)和分发来执行。3.2.5. 实时支持Tiny OS 不 支 持 实 时 应 用 程 序 , 但 任 务 可 以 在 最 早 期 限 优 先(EDF)调度的帮助下实时运行。3.2.6. 附加特征由于节点内存不足,Tiny OS使用单级文件系统。操作系统中的安全性是在TinySec的帮助下处理的(Karlof等人,2004),其在分组开销和资源约束之间提供了良好的最优折衷。在TOSSIM的帮助下提供了TinyOS的仿真环境(Levis等人,2003)和PowerTOSSIM。仿真代码用“nesC”(“C”语言的一种方言)编写,并以TinyDB的形式提供数据库支持。3.3. 防暴它具有~1.5 kb的RAM到~5 kb的ROM,开发人员友好的操作系统,根据LGPLv2.100许可。它最初由国家计算机科学与自动化研究所(INRIA),HAW Hamburg,柏林自由大学和其他开放社区在2013年左右开发,支持8位(Arduino Mega 2560),16位(MSP430)和32位(ARM;Hahm等人,2016; Javed等人,2018; RIOT,2012)。3.3.1. 架构RIOT使用从FireKernel(RIOT,2012)继承的微内核架构,提供稳定性,安全性,即如果一个模块失败,无需加载所有模块和通过消息传递的可扩展性。典型的架构如图所示。 四、它是用C语言编写的3.3.2. 规划模型和调度RIOT使用多线程模型,这有助于优化CPU资源利用率。它提供了抢占式的、基于优先级的无计时器(没有固定的周期性计时器)调度器。由于其动态滴答属性,它允许系统在空闲时间期间进入最深可能的睡眠模式,最终导致整个系统的最小3.3.3. 内存管理和保护对于内存,它不需要MMU(内存管理单元)或FPU(浮点单元)。它支持静态和动态内存分配方案,没有内存保护。静态分配通过提供确定性需求来帮助实现实时功能。3.3.4. 网络协议通信RIOT以模块化的方式支持多个网络堆栈,允许在任何层轻松交换每个协议使用的各种网络协议如表1所示。默认gnrc堆栈支持IPv6、TCP、UDP网络和其他协议, 如6lowpan(Kushalnagar等人, 2007年),RPL见图4。 RIOT架构。(Winter等人,2012)和CoAP(Bormann等人,2012年)。CCN-lite堆栈实现ICN(信息中心网络)范式和OpenWSN堆栈,OpenWSN堆栈在IEEE802.15.4e标准(IEEE802.15.4,2018)之上实现完整的6TiSCH(时间同步信道跳变)协议套件。3.3.5. 实时功能RIOT通过静态内存分配、内核级的确定性运行时和无时钟调度程序(最终最大限度地减少中断)的帮助,完全支持实时功能。3.3.6. 附加特征RIOT 提供了 API和架构级 别的全面而广泛 的文档,以及使用Doxygen应用的良好标准(RIOT,2012)。RIOT使用gdb(RIOT,2012)和Valgrind(Abrach等人, 2003)作为调试工具。Wireshark可以用作分组分析器工具,而cooja(Eriksson等人,2009)仿真器可以用来支持MSP430硬件平台。为了可视化的目的,使用了内置的RIOT-TV。3.4. FreeRTOS它是“开放源代码,便携式,免版税,可扩展,实时,节能(使用无刻度模式),设计简单,内存占用较小,即4-9 kb RAM到5-10 kbROM,多线程和易于使用的操作系统,根据修改后的GPL许可”。最初由Richard Barry在2002年开发,现在由Real Time EngineersLtd(Hahm等人,2016; Barry,2017)。根据最近的调查,由于其实时特性,免费实时操作系统平均每120秒下载一次,并且支持超过35种架构。不同版本的重大变化见表2。表1RIOT OS中的通信协议。IPv66LoWPANRPLCoAPUDPOpenWSNTCPCBORUBJSONCCN-lite●●●●●B. Patel和P. Shah沙特国王大学学报5425表2FreeRTOS的版本变更版本主要变更V1到V2的可扩展性,新任务APIV2到V3 API更改、目录名称更改、内核V3到V4协同例程更改V4到V5 API更改V5到V6向后兼容,MPU支持V6到V7向后兼容,软件定时器实现V7到V8下拉兼容,事件组V8到V9支持64位架构,API更改V9到V10流缓冲区,消息缓冲区3.4.1. 架构FreeRTOS主要使用相对简单的微内核功能,主要由三个C文件和一些头文件组成,总共有9000行代码,包括注释和空白行。它实现了操作系统的核心功能,如队列,信号量(二进制和计数),软件定时器和互斥锁。 软件架构如下图所示。 五、3.4.2. 规划模型和调度它支持基于任务(单独堆栈)和协同例程(共享堆栈)的多线程编程模型。基于优先级的轮循调度应用于任务,而合作调度应用于合作例程。3.4.3. 内存管理和保护由于各种应用程序的RAM和时序要求不同,FreeRTOS支持五堆动态内存分配。堆提供简单性、碎片保护和线程安全性。FreeRTOS-MPU(内存保护单元)保护数据免受损坏,修改和堆栈溢出。3.4.4. 网络协议通信通过将FreeRTOS与Nabto(Barry,2017)相结合,物联网对等设备之间的通信变得容易。lwIP(轻量级堆栈;Barry,2017)最初 由 Adam Dunkels 开 发 , 支 持 IPv4 和 IPv6 。Nanostack(Barry,2017)支持6个低底盘(Kushalnagar等人,2007年)通过考虑网格下路由实现。3.4.5. 实时功能2012年之后的FreeRTOS版本支持无时钟模式,从而减少了中断。内核级的确定性操作有助于实现实时能力。3.4.6. 附加特征FreeRTOS使用由“HCC Embedded”开发的超精简FAT文件系统,通过允许在各种MCU平台上使用相同的代码库,最大限度地减少闪存和内存占用。WHIS(WITTENSTEIN high integrity systems)工程师通过消除功能模型和API中的弱点,生成了FreeRTOS的一个分支,即SafeRTOS,它提供了由TUV SUD预先认证的IEC 61,508 SIL 3的安全性,完整性和安全性。FreeRTOS使用Win32模拟器提供Windows平台模拟,而Linux支持由“William Davy”开发的Posix GCC Eclipse FreeRTOS模拟器提供3.5. Mantis OS用于现场无线传感器网络的多模式系统(MANTIS)是“开源的、多线程的、轻量级的、具有跨平台支持的便携式的、500字节的占用空间(内核、调度器和网络堆栈)和在BSD许可下于2005年开发和发布的节能的”(Farooq和Kunz,2011; Javed等人,2018; Abrach等人, 2003年)。3.5.1. 架构Mantis OS坚持分层架构,类似于UNIX风格的编译器。顶层为各种应用程序的I/O和系统交互提供API,而较低的层次有助于实现更小的内存占用。图6中所示的从顶部开始的各个层(Dwivedi等人,2009年)如下:● 网络堆栈、命令服务器和用户级线程● 系统API● 内核/固件、通信层和设备驱动程序● 硬件3.5.2. 规划模型和调度Mantis OS支持时间分片多线程,每个程序都可以用C语言编写而无需线程分离,支持可移植性和可重用性。线程创建的默认数量为12,每个线程的默认时间片为12 ms。MantisOS使用具有多个优先级的抢占式循环调度。每当队列中没有线程可供处理时,系统就进入睡眠/空闲模式,这甚至节省了功率和资源。可以通过以下方式避免竞态条件:图五、FreeRTOS的典型软件架构●●●B. Patel和P. Shah沙特国王大学学报5426见图6。 螳螂操作系统的整体架构。使用互斥锁和信号量,它是5字节结构,并在需要时声明。3.5.3. 内存管理和保护Mantis操作系统提供了动态内存分配,防止内存浪费.它通过将RAM分为两部分来管理线程内存,即变量空间和堆管理的第二部分。不支持内存保护。3.5.4. 网络协议通信Mantis OS通过将其分为两部分来实现网络堆栈。1)用户空间,通过提供灵活性来实现第3层及以上如果用户想添加自己的数据驱动路由协议,可以在用户空间添加。2)通信层,实现MAC和PHY层协议。它通过提供与设备驱动程序和硬件通信的统一接口来照顾如果数据包到达线程但尚未调度,它也会执行数据包缓冲。3.5.5. 实时功能对使用具有多个优先级类别的抢占式调度的实时应用程序提供非常少的支持,但不能被视为实时操作系统,因为它不提供对截止日期的支持。3.5.6. 附加特征Mantis OS支持Mica2、MicaZ和TelosB硬件平台。Avrora(Titzer等人,2005)为Mantis OS提供模拟和建模支持。3.6. LiteOS它是一个开源的、交互式的、零配置的、更小的内存占用,即~ 4 kb的RAM到128 kb的闪存ROM,在线调试和轻量级的类Unix操作系统,最初是在伊利诺伊大学厄巴纳分校设计的,根据GPL v3 00授权(Farooq和Kunz,2011; Javed等人,2018; LiteOS,2018)。3.6.1. 架构LiteOS使用模块化架构,分为三个子系统。Lite Shell驻留在有足够资源的基站上,提供类Unix的命令接口,支持进程、调试、环境和设备命令。LiteFS提供了无线节点挂载的工具,其中范围内的节点将自身挂载为文件,将网络挂载为目录(Cao例如,2008年)。第三个组件是提供多线程和动态加载的内核. LiteOS的整体架构如图所示。 7(Cao等人, 2008年)。3.6.2. 规划模型和调度它采用多线程编程模式,支持线程,并在一定程度上支持事件。每个线程使用自己的内存空间,而事件可以通过回调函数处理。LiteOS使用基于优先级的循环调度机制来处理任务。每当没有可用资源时,任务就会进入睡眠模式,这最终会节省能源。3.6.3. 内存管理和保护LiteOS在malloc和free函数的帮助下使用动态内存分配。内存的大小是调整,因为它是从使用●●B. Patel和P. Shah沙特国王大学学报5427见图7。 LiteOS架构。内核变量和应用程序内存块之间未使用的区域,从而提供保护和安全性。3.6.4. 网络协议通信LiteOS通过无线电文件提供通信它包括一个即插即用/文件辅助路由 堆 栈 。 在 网 络 层 使 用 提 供 可 靠 性 的 Mintroute ( LiteOS ,2018)。在MAC层使用提供可扩展性,能源效率和冲突避免的BMAC(LiteOS,20183.6.5. 实时功能LiteOS不提供实时支持,因为它使用基于优先级的调度来运行任务直到完成。3.6.6. 附加特征编程支持由LiteC++语言提供,LiteC ++语言是C++的子集,还提供OpenSC(传感器库)API库。LiteOS支持分层文件系统,它提供了权限和文件结构内通信的直接方式等好处。当前版本的LiteOS在硬件层支持MicaZ、IRIS和AVR家族支持,以及调试和内置JTAG支持。LiteOS中的模拟和建模工具通过Avrora提供(Titzer等人, 2005年)。3.7. NanoRK它是“由卡内基梅隆大学的Alexei Colin,Christopher Palmer和Artur Balanuta根据GPL许可开发的开源,轻量级,能源感知,实时,以资源为中心,内存占用较小,即2 kb RAM到18 kb ROM,多任务和多跳网络支持操作系统”(Farooq和Kunz,2011; Hahm等人,2016; Javed等人,2018; NanoRK,2018)。3.7.1. 架构NanoRK采用与Tiny OS相似的单内核架构,为了满足任务优先级和截止日期,使用静态方法,以便可以有效地应用接纳控制过程。应用程序员可以在运行时通过各种API更改任务参数,但实际上并非如此当所执行的任务是实时作业时, 2005年)。3.7.2. 规划模型和调度每个任务都有不同的优先级、运行频率和操作频率,NanoRk通过多线程和任务控制块(TCB)实现多任务处理。任务间的同步和每个单独的任务将在创建过程中初始化自己的TCB。TCB包含堆栈和寄存器信息的任务,优先级,端口标识符和保留大小。 NanoRK在过程和网络级提供完全抢占式的基于优先级的调度。为了实现实时能力,它使用速率单调调度算法,其中任务优先级被静态分配。为了在CPU空闲时间率期间有效地利用能量,使用了协调调度技术。优先级反转,其中较低优先级进程倾向于使用较高优先级的资源,通过绑定阻塞时间的优先级上限技术来解决(Eswaran等人, 2005年)。3.7.3. 内存管理和保护NanoRK提供静态内存管理,其中应用程序和操作系统都驻留在单个内存空间。它不提供任何内存保护,以保障co-locatedOS。3.7.4. 网络协议通信它使用轻量级网络堆栈,其中通信是在端口号和套接字的帮助下进行的。NanoRK在链路层应用基于TDMA的通信协议RT-Link,其提供无冲突节能实时传输等功能,并支持带内和带外硬件/基于时间的WiDOM优势无冲突无线协议,以静态方式分配优先级,每个节点作为比赛进行比赛以获得通道。在MAC层还使用B-MAC载波侦听多址接入协议,这提供了有效的信道利用率和可扩展性。U-Connect协议,通过提供能效和延迟来帮助实现邻居发现挑战的同步3.7.5. 实时功能NanoRK通过基于速率单调优先级的抢占式调度算法完全支持实时功能,其中任务优先级通过完整的提交截止日期离线和静态分配3.7.6. 附加特征NanoRK是用C语言编写的,它具有非常熟悉的编程范式,并且倾向于实现更快的学习和更高的生产力的开发体验。NanoRK OS 目 前 在 MicaZ motes 上 运 行 , 同 时 支 持 Firefly(NanoRK,2018)传感平台以及AVR和MSP430 MCU系列。NanoRK的仿真和建模环境由AVR Studio提供。3.8. 其他值得注意的操作系统即将到来的和其他值得注意的操作系统将在整个物联网中发挥重要作用,并使其成为现实。3.8.1. Mbed它是“●●●●●●B. Patel和P. Shah沙特国王大学学报5428框架使用Apache v2.0下许可的C和C++语言编写。它支持IPv4和IPv6堆栈以及6lowpan(Kushalnagar等人, 2007)、MQTT、HTTP、COAP(Bormann等人,2012)和轻量级M2M协议。mbed OS借助hypervisor uVisor提供硬件安全性,借助SSL提供通信安全性,并借助TLS提供实时支持。mbed OS借助多线程环境、CMSIS RTOS API和确定性函数提供实时支持(Farooq和Kunz,2011; Mbed,2018)。3.8.2. Android Things它是由Google在Nest Lab的支持下开发的Android的开源,轻量级 和 精 简 版 本 , 现 在 称 为 Android Things ( Android ThingsAndroidDevelopers,2018)。Brillo的简单架构如下图8所示。云、移动设备和brillo设备之间的通信由提供跨平台支持的Weave通信层执行,如图所示。9.第九条。它支持更小的内存占用空间与RAM32家庭自动化、医疗和智能可穿戴设备是使用Brillo的少数应用(Hahm等人,2016; Karva,2018)。3.8.3. NuttXNuttx是它支持IPv4和IPv6堆栈以及6lowpan(Kushalnagar等人, 2007)用于有损网络的IOT协议。 由于调度中的无时钟模式减少了中断和对确定性函数的支持,因此它提供了实时能力(Hahm等人,2016; Nuttx,2018)。3.8.4. OpenWSNOpenWSN自2010年以来由开源社区发展,包括6TiSCH网络堆栈和支持平台,如GINA(制导和惯性导航助理),TelosB,LPC(低引脚数)和BSD许可下的k20 它更像是一个网络堆栈,而不是一个完整的操作系统。它完全支持物联网标准6loWPAN(Kushalnagar等人,2007 ) 在 适 应 层 , RPL ( Winter 等 人 , 2012 ) 路 由 协 议 、IEEE802.15e标准MAC协议和COAP(Bormann等人,2012)以及应用层的HTTP。它使用非抢占式调度,并有助于见图8。 布里洛建筑。见图9。 编织支援节省能量,同时在空闲时间期间进入深度睡眠状态。OpenWSN网络的虚拟接口是使用Open Visualizer提供的,而仿真支持是在OpenSim的帮 助 下 提 供 的 ( Hahm 等 人 , 2016; Watteyne 等 人 , 2012;OpenWSN,2018)。3.8.5. uClinuxuClinux是Linux的一个精简版本,它是模块化的,可配置的和可扩展的,最初由D.Jeff Dionne和Kenneth Albanowski在1998年开发,首次移植到Motorola 68 K处理器上。uClinux这个词的意思是“你看Linux”,它来源于希腊字母“mu”(微)和“C”(控制器)。它为所有进程使用一个共享空间,并且不提供MMU,而是实现平面内存模型。它提供完整的TCP/IP堆栈支持,并且与其他OS相比具有更高的内存占用(Hahm等人,2016; McCullough,2004)。基于广泛使用的IoT OS的设计特征的总体比较在表3中示出(Hahm等人,2016; Javed等人,2018; Chandra等人,2016; Manjunath和Hansdah,2007; Zikria等人,2019; Qutqut等人,2018),而在网络堆栈、支持的MCU/硬件系列、文件系统以及使用的模拟器方面的附加功 能 的 比 较 如 表 4 所 示 ( Hahm 等 人 , 2016; Javed 等 人 , 2018;Chandra等人,2016年;Manjunath和Hansdah,2007年; Qutqut等人, 2018年)4. 为例在本节中,我们将从开发人员的角度讨论一个案例研究,该案例将从约束设备、网关和云服务提供商的角度分析物联网。物联网通信协议栈实现场景,以及广泛使用的操作系统的测试平台设施,也被考虑(Contiki,TinyOS,FreeRTOS和RIOT)。整个物联网协议栈(Ishaq等人, 2013年),包括各种协议,如图所示。零下10度。在物理层和链路层,定义并维护IEEE 802.15.4(IEEE 802.15.4,2018)标准,该标准倾向于保持无线电传输的低成本,低功率,使其适用于无线专用区域网络。大量研究论文,包括IEEE会议记录、书籍和杂志802.15.4由一个著名的出版商,如图所示。 12个。在适配层,IETF组提供6LoWPAN,即IPv6低功率无线专用区域网络(RFC 4919,RFC 4944; Kushalnagar等人,2007),其提供用于在物理和链路层上发送和接收数据的各种报头压缩和封装机制。B. Patel和P. Shah沙特国王大学学报表35429应用层COAP/MQTT/XMPP传输层网络层适配层链路层物理层UDP/DTLSRPL( IPv6 )6LoWPAN802.15.4e MAC比较艺术水平的努力。OS架构调度编程编程存储器网络协议实时模型语言最小值最小ROMRAM支持Contiki模块化合作事件驱动C<2kb 30 kbuIP、Rime、IPv6、COAP、RPL、部分TinyOS单片FIFO事件驱动NESC<1kb 4kb6loWPAN,ContikiRPLTYMO、DIP、6loWPAN、IPv6、没有防暴微内核先发制人,优先-多线程C、C++约1.5 kb约5kbTDMA版本TCP、UDP、6loWPAN、IPv6、是的FreeRTOS微内核基于,无tickless先发制人,共同-多线程C4 kb-5 kb-10 kbCCN-lite、RPL、COAP使用NABTO平台,TCP,是的LiteOS模块化可操作的,可选的无标签基于优先级的回合-(Task+协同例程)线程,事件-Lite C++9 KB~4kb128kbFlashUDPBMAC,Mint Route,JTAG没有螳螂层状罗宾先发制人,优先-驱动多线程C0.5 kb 14 kbMAC、COMM没有NanoRK单片基于Round Robin。先发制人,多线程C2kb 18kbRT Link、U-Connect、BMAC、是的和谐,单调WidomOpenWSN单片合作事件驱动C–TCP、UDP、6loWPAN、IPv6、没有mbed单片––C约16 kbHTTP、UDP、RPL、CoAPIPv4、IPv6、TCP/IP、6loWPAN–NuttX单核或微内核抢占式,基于优先级,无时间限制多线程C8kb 32kb flashIPv4、IPv6、6loWPAN、TCP/IP是的表4其他功能的比较。OS网络堆栈许可证文件系统仿真支撑ContikiuIP、RIMe开源BSD咖啡闪光Netsim、Cooja、MSPSim、TinyOSBLIP开源BSD单级TOSSIM,Po
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功