Traditional operating systems do not take into consideration the limitations in space and energy of wireless sensor networks. Thus, contemporary architectural demands in terms of power, heat, size and cost will not be satisfactorily met by such uniprocessing design. Also, the transition to multithreaded, multi-core designs places a greater responsibility on programmers and software for improving performance which is becoming increasingly important as sensor nodes are migrating towards dual processor designs. By analyzing and summarizing the activity of a system, one could locate sections of code that have a potential to generate enhanced performance. First, this paper studies the differences between different operating system designs introducing a thread-driven scheduling algorithm which focuses on the value of preemption to overcome the energy tradeoff brought by event-driven systems. We then devise efficient techniques that will enable us to locate sections in OS code that could behave more efficiently when parallelized, especially in terms of energy consumption. Finally, we provide simulation results that will validate our proposed techniques.
Read full abstract