摘要

Wireless sensor networks enjoy some unique characteristics. For example, sensor network are often autonomous, long-lived and rely on battery as the power source. In this paper, we thus improve the SOS kernel to address these unique characteristics. Firstly, we design and implement the hot-swapping capability in SOS that allows a module to be upgraded on the fly. In our system, the hot-swapping procedure is an online process and the execution state of the old module can be properly transferred to the new module. We also allow interface changes during hot-swapping. Moreover, we enable hot-swapping of not only application modules but also kernel modules. Finally, our hot-swapping procedure is lightweight in that, during hot-swapping, the job of module-linking is offloaded to the server to reduce the reprogramming cost in sensor nodes.
In addition to supporting hot-swapping, we also enhance the system call performance in SOS by caching the access results of the system call jump table. Furthermore, we replace the first-fit flash memory allocation scheme in SOS by a technique that relies on erase counters to evenly distribute memory traffic around the flash memory. Moreover, the maintenance of erase counters of each block is also offloaded to the server. We have implemented our system on the Mica2 mote. Evaluations reveal that our kernel can effectively improve the performance of SOS by the above three mechanisms. For example, we support hot-swapping of both kernel and application modules while incurring a negligible overhead. Hot-swapping an application module with a size of 2.5 Kbytes can be done within 160 processor cycles. In addition, we also reduce the system call invocation overhead in SOS by about 15%. Finally, our new flash allocation scheme allows flash blocks to be erased more evenly to prolong the lifetime of flash memory.

  • 出版日期2011-1