SKMotes : um kernel semipreemptivo para nós de redes de sensores sem fio - Lima Júnior, Otávio Alcântara de (2011)
The ever-increasing developments of low-power integrated circuits have made it possible the design of very small low-cost and low-power electronic sensors with wireless communication and computing capabilities. Those devices, in their turn, made it feasible the implementation of the so-called Wireless Sensors Networks (WSN). WSN is a network of such devices (known as nodes), each one having an embedded microcontroller and a communication module which makes it possible the nodes to be used as sensors which process and exchange information with the other nodes, in order to achieve a speci c purpose. Usually, due to the nodes very limited processing power, a very simple operating system (SO) is used to manage the node's processing and communicating capabilities by executing tasks in a concurrent fashion. The SO is a very important part in the design of a WSN and, depending on the concurrence model used on its design, the SO can be divided into two types: event-based or thread-based SO's. Event-based models make it di cult for the programmer to control the execution ow and are not suitable for tasks with long computation time. Thread-based models, on the other hand, present heavy memory use, but have a much simpler programming model and good real-time responses. In this sense, this dissertation proposes a new semi-preemptive SO, called SKMotes has the relatively easy-programming model related to thread-based models and a low memory usage. Despite SKMotes be thread-based, it is not fully preemptive, since at any given time, only a subset of the system's threads is executing as preemptive priority-based tasks and the rest of them remains on hold, which makes for low context usage, since the threads do not need data stack. This approach provides low time response for high-priority threads while at the same time guarantees lower memory usage than that of preemptive kernels. These features make SKMotes very suitable for WSN applications where there is a combination of I/O-oriented tasks and task with long computation times (for example, applications that perform data compression and/or cryptography). After being implemented, SKMotes' performance analysis was carried out by using a specially-designed FPGA-based module, which made it possible to perform CPU-usage measurements as well as threads' time response, with the system on the y. The measurement's results showed that, for the considered test-scenario, SKMotes presents CPU-usage rates equal to preemptive multi-threading approaches but having a lower memory usage (20).