InitRech 2015/2016, sujet 27

De Wiki de Projets IMA

Summary

This documents talk about TinyOS which is an operating system for sensor networks. Due to their low cost, and their many possibilities of use, the Sensor networks are currently more and more spread. They will be lot of researches and jobs associated in this field because of some problem who needs to be resolve like limited resources due to their small size, reactive concurrency, flexibility to remove or replace some specific components (like sensor or software without bug) and finally the power cost which need to be reducing at the best.
Those four problemss are better and better resolve by TinyOs:
With few than 400 Bytes, TinyOS is a flexible Operating system implemented in NesC language. The NesC language is a language derivate form the C programming language. It allows to reduce the use of the memory and the power needs in calculation. This operating system doesn’t works like other OS, It is before anything else a device to program embedded systems to communicate and interact. All the components programmable by the tinyOS shares instructions for inter-component communication like commands and events, but also instructions for intra-component concurrency: tasks. Namely command can activate or initiate a sensor, event is used to signal the accomplishment of a command. A task allows scheduling the handler of commands and events.
A component can use two different types of interfaces, the first ones which are supply by it and on the contrary the seconds ones which are used by the component. An interface is a constituent of the component which is itself a component of a TinyOS program. Interfaces contain rightly commands and events. Above all of this, the NesC divide component in two types : modules and configurations. Modules are the programming code on the opposite, configurations are here to connect component together.
Several hardware interfaces are already implemented in the TinyOS to enable the System to be install and interact with lot of different devices.
The scheduling is made by asynchronous handlers. It is a FIFO scheduler which organize the executions of tasks. Handlers can interrupt a task if a task need to be quickly executed. Thanks to the NesC detection of data races, lots of bug are avoided. But Tiny OS can use some other method of scheduling g like earliest-deadline first if the users wants to. To improve the quality of schedule, the code is categorized in two different types: The asynchronous code opposite to the Synchronous code. The first is reachable from at least one interrupt handler while the second is one is only reachable from tasks. All these things enable TinyOS to have a real quick concurrency.
To limit the size of a Tiny OS program, the component graph of a program can know which component it needs, thanks to this it will not contains the other which are useless. During the compilation of a program, Tiny will reduce at the best the size of the code by removing redundancy and some other annoying stuffs.


Actually TinyOs can be used to make Habitat monitoring, objet tracking to localize precisely an object moving in a sensor field, which will be our sensor network with Tiny OS, or TinyDb which is a declarative query processor.

Main Contribution

The main contribution of this articles is to introduce this Operating system as many people as possible, especially to people working on sensor network. This OS can answers to all their problems.
In return to the help of the TinyOS , company could participate on giving money to the development of this device. Because of its free disposition, people working on it have to be paid with another solution which is donation.
I think this article is in particular a solution to ask for donation. But it also can help developers to understand how the operating system works, and to handle it.
This article is well detailed on its structuration and how the interaction on all its component works. This article ,try to convince step by step , that the TinyOS is the best solution in OS with sensor network, by its flexibility to be install and interact with all types of materials, all technicians or developer can be interested to try this operating system with their materials.

Applications

With the object tracking application possible in the TinyOS, we could imagine an adaptation in driverless car .We could install many sensors trough a city to localize driverless cars and interact with them to help them moving. It would be more secure and would avoid traffic jam. But for an optimal security you have to be sure to have a real time operating system. TinyOS could answers to this problem. The main drawback would be to buy and install a lot of sensors in each city, it would be really expensive. But the solidity and durability of sensors make the idea real interesting in my opinion.
Another application would be for sport, games or jobs which need to interact instantly with a computer program. For example, in scrim, sportsmen wear clothes with many sensors to know if a contact has been established between the clothes and the adversary blade. The speed of reaction and the precision giving by Tiny OS could be interesting for them, to know precisely where they have been touch and when. Thereby they could improve their skills, to avoid to be hit and finally to win.
We could also imagine video games applications, in the same idea of connected clothes, TinyOS could make the interaction between real life and the games in real time. We could run in football games at the same speed of the character or move in action games as if we were real hero, to avoid some stuffs or punch in a boxes games , like Nintendo Wii but more precisely. It would interest many people because of the market of video games which is in good health and which is very advertising. It would be good for the health because it could make sports for people who are not doing sports regularly.
And finally we could imagine an application in a bigger size, for the boat in sea. The sensor should be on buoy, to localize every boat and why not plane crash in the sea. The advantage will be for more security and help in case of accident. Boat or plane could send a signal to the buoy nearer, which should transmit the signal to rescue people. The rescue men could know more or less precisely (near the buoy) where search to find the boat or the plane who or which need to be rescue.