Liu Xing, Hou Kun Mean, de Vaulx Christophe, Xu Jun, Yang Jianfeng, Zhou Haiying, Shi Hongling, Zhou Peng
LIMOS Laboratory, CNRS UMR 6158, Blaise Pascal University, Les Cézeaux, BP 10125, Clermont-Ferrand 63173, France.
Internet and Information Technology Laboratory, Electronic Information School, Wuhan University, Road LuoJia, Wuhan 430072, China.
Sensors (Basel). 2014 Dec 23;15(1):22-48. doi: 10.3390/s150100022.
Memory and energy optimization strategies are essential for the resource-constrained wireless sensor network (WSN) nodes. In this article, a new memory-optimized and energy-optimized multithreaded WSN operating system (OS) LiveOS is designed and implemented. Memory cost of LiveOS is optimized by using the stack-shifting hybrid scheduling approach. Different from the traditional multithreaded OS in which thread stacks are allocated statically by the pre-reservation, thread stacks in LiveOS are allocated dynamically by using the stack-shifting technique. As a result, memory waste problems caused by the static pre-reservation can be avoided. In addition to the stack-shifting dynamic allocation approach, the hybrid scheduling mechanism which can decrease both the thread scheduling overhead and the thread stack number is also implemented in LiveOS. With these mechanisms, the stack memory cost of LiveOS can be reduced more than 50% if compared to that of a traditional multithreaded OS. Not is memory cost optimized, but also the energy cost is optimized in LiveOS, and this is achieved by using the multi-core "context aware" and multi-core "power-off/wakeup" energy conservation approaches. By using these approaches, energy cost of LiveOS can be reduced more than 30% when compared to the single-core WSN system. Memory and energy optimization strategies in LiveOS not only prolong the lifetime of WSN nodes, but also make the multithreaded OS feasible to run on the memory-constrained WSN nodes.
内存和能量优化策略对于资源受限的无线传感器网络(WSN)节点至关重要。在本文中,设计并实现了一种新的内存优化和能量优化的多线程WSN操作系统(OS)LiveOS。LiveOS的内存成本通过使用栈移位混合调度方法进行优化。与传统的多线程操作系统不同,传统操作系统中的线程栈是通过预预留静态分配的,而LiveOS中的线程栈通过使用栈移位技术动态分配。因此,可以避免由静态预预留导致的内存浪费问题。除了栈移位动态分配方法外,LiveOS中还实现了可以降低线程调度开销和线程栈数量的混合调度机制。通过这些机制,与传统多线程操作系统相比,LiveOS的栈内存成本可以降低50%以上。LiveOS不仅优化了内存成本,还通过使用多核“上下文感知”和多核“断电/唤醒”节能方法优化了能量成本。通过使用这些方法,与单核WSN系统相比,LiveOS的能量成本可以降低30%以上。LiveOS中的内存和能量优化策略不仅延长了WSN节点的寿命,还使多线程操作系统能够在内存受限的WSN节点上运行。