目录
[1.2 内存管理](#1.2 内存管理)
[3.1 调度方式](#3.1 调度方式)
[3.2 I/O操作方式](#3.2 I/O操作方式)
[3.3 网络服务](#3.3 网络服务)
[3.3.1 TinyOS网络协议栈](#3.3.1 TinyOS网络协议栈)
[3.3.2 LiteOS网络协议栈](#3.3.2 LiteOS网络协议栈)
一、物联网操作系统概述
物联网操作系统是支撑物联网大规模发展的最核心软件,由操作系统内核、外围功能组件、物联网协同框架、通用智能引擎、集成开发环境等几个大的子系统组成。
物联网操作系统屏蔽了物联网碎片化的特征,提供统一的编程接口,降低了物联网应用开发的成本和时间,为物联网统一管理奠定了基础。
物联网操作系统与传统操作系统在内存占用和内存管理存在差别区别
1.1内存占用
物联网操作系统运行在资源受限的节点上,内存占用与传统操作系统相比较小,一般只有几十KB
1.2 内存管理
传统操作系统一般运行在具有内存管理单元(MMU)的设备上,能够提供地址翻译和内存保护功能。物联网操作系统则因设备而异,当运行在缺乏MMU的设备上时,一般很难提供地址翻译和内存保护功能,当运行在具备MMU的设备上时,可以提供轻量级的地址翻译和内存保护功能。
二、物联网操作系统构成
- 任务调度------抢占、时间片轮转、优先级、FIFO。
- 动态加载------需要的时候进行加载。
- 内存管理------静态分配、动态分配。
- 资源抽象------文件->IO设备,进程->CPU。
- 传感接口------将数据传递至MCU。
- 网络协议栈------BLE、LwIP、LoRaWAN。
三、物联网操作系统关键特性
3.1 调度方式
现有的调度方式主要有:抢占式、非抢占式、协同式和时间片轮转。它的区别点主要在于使用堆栈的个数
抢占式:需要切换线程上下文,多个堆栈(、时间片轮转)
非抢占式:无需切换线程上下文,单个堆栈
协同式:需要切换线程上下文,一般多个堆栈
时间片轮转:需要切换线程上下文,多个堆栈
3.2 I/O操作方式
I/O操作方式的一般分为阻塞、分阶段两种类型。它们的具体实现区别如下图所示。
由此,它们的优缺点可以归结为如下几点。
3.3 网络服务
网络服务是一种服务导向架构的技术,它通过标准的网络协议提供服务,目的是保证不同平台的应用服务可以互操作。
类别主要分为两种,一种是传统无线传感网的网络协议,另一种是现代物联网的网络协议。
3.3.1 TinyOS网络协议栈
其中CTP-- 支持many-to-one的数据传输,RPL-- 支持many-to-one、one-to-many、one-to-one的数据传输,6LoWPAN-- 实现IPv6的地址压缩、TCP/UDP的包头压缩、ICMP包头压缩
3.3.2 LiteOS网络协议栈
LiteOS自带BLE和Zigbee协议栈,LiteOS支持6LoWPAN over 802.15.4 和6LoWPAN over BT