« Système d'exploitation pour capteur en réseau » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
FJacquiaux (discuter | contributions)
Franck MORIN (discuter | contributions)
Ligne 302 : Ligne 302 :
=== Articles scientifiques ===
=== Articles scientifiques ===
* {{article|nom=[[Edsger Dijkstra]]|title=The structure of the 'THE'-multiprogramming system|journal=Communications of the ACM|volume=11|issue=5|pages=341–346|année=1968|doi=10.1145/363095.363143}}
* {{article|nom=[[Edsger Dijkstra]]|title=The structure of the 'THE'-multiprogramming system|journal=Communications of the ACM|volume=11|issue=5|pages=341–346|année=1968|doi=10.1145/363095.363143}}

* {{article|langue=en|prénom1=Muhammad Omer|nom1=Farooq |prénom2=Sadia|nom2=Aziz|prénom3=Abdul Basit|nom3=Dogar| titre=State of the Art in Wireless Sensor Networks Operating Systems: A Survey|périodique=T.-h. Kim et al. (Eds.): FGIT 2010, LNCS 6485, pp. 616–631, 2010.© Springer-Verlag Berlin Heidelberg 2010|Print ISBN=|INSPEC Accession Number=|pages=616-631|année=2010|mois=|url texte=http://www.springerlink.com/content/0697223q6r366743/fulltext.pdf|id=Farooq2010|doi=10.1007/978-3-642-17569-5_61}}


* {{article|langue=en|prénom1=Qing|nom1=Cao |prénom2=Liqian|nom2=Luo|prénom3=John|nom3=Stankovic| prénom4=Yusuf|nom4=Sarwar |prénom5=Tarek |nom5=Abdelzaher | titre=Declarative Tracepoints: A Programmable and Application Independent Debugging System
* {{article|langue=en|prénom1=Qing|nom1=Cao |prénom2=Liqian|nom2=Luo|prénom3=John|nom3=Stankovic| prénom4=Yusuf|nom4=Sarwar |prénom5=Tarek |nom5=Abdelzaher | titre=Declarative Tracepoints: A Programmable and Application Independent Debugging System

Version du 26 novembre 2011 à 11:57

Les systèmes d’exploitation pour réseau de capteurs sans fil (notés également WSN[note 1]) sont des interfaces informatiques spécifiques, destinées au fonctionnement de capteurs en réseau. Un capteur en réseau (généralement appelé mote en anglais) est un ensemble d’éléments électroniques de taille réduite, composé essentiellement d'un détecteur, d'un microcontrôleur, d’une batterie et d'une antenne.

Un capteur assure 3 fonctions : capter une donnée, la traiter et renvoyer une information relative à la donnée au gestionnaire du réseau.

Les données sont des grandeurs physiques de l'environnement dans lequel se trouve le capteur.

L'intérêt de la configuration en réseau est de capter un grand nombre de données afin d'alimenter une application. L'application réagit en fonction des données remontées par les capteurs et informe sur un changement d'état de l'environnement surveillé.

Un capteur a une durée de vie limitée par sa batterie. Le réseau de capteurs doit être résilient pour compenser la fin de vie de chaque capteur.


Les systèmes d'exploitation pour capteurs en réseau sont spécifiquement conçus pour optimiser l'usage des ressources matérielles limitées dont ils disposent : peu de mémoire RAM, une vitesse de traitement processeur faible et peu d'énergie électrique. De nombreux systèmes d'exploitation spécialisés existent, parmi lesquels :

Contiki[1], ERIKA Enterprise[2], Nano-RK[3], SOS[4], TinyOS[5], MantisOS[6], RETOS[7], Senses[8], Cormos[9], LiteOS[10], NanoQplus[11].


Contexte technologique

Le capteur constitue la partie matérielle que doit gérer le système d’exploitation[12]. Un capteur ou nœud est composé de plusieurs éléments ou modules correspondant chacun à une tâche particulière d’acquisition, de traitement, de stockage ou de transmission de données. Il comprend également une source d’énergie[13][14].

Schéma d'architecture d'un capteur

Les éléments constitutif du capteur sont les suivants :

un détecteur
Le détecteur est l'élément qui capte la grandeur physique de l'environnement dans lequel a été placé le capteur.
un convertisseur analogique numérique
Le convertisseur analogique transforme le signal capté en signal numérique, compatible avec que le micro-contrôleur.
un micro-contrôleur
Le micro-contrôleur traite les données reçues du convertisseur analogique-numérique et transmet les données utiles à l'émetteur-récepteur.
une mémoire
La mémoire stocke le système d'exploitation.
un transmetteur radio[note 2]
L'émetteur-récepteur assure 2 fonctions : transmettre des signaux (émetteur) et recevoir des signaux (récepteur).
  1. L'émetteur envoie les données vers le monde extérieur. Le monde extérieur est le réseau de capteur, dont le rôle est de router l'information vers l'utilisateur final.
  2. Le récepteur reçoit les informations du réseau : d'une part les mises à jours logicielles, d'autre part les mises informations d'autre capteurs à relayer vers l'utilisateur final.
une alimentation
L'alimentation fournit l'énergie nécessaire au fonctionnement du capteur.

Rôle du système

Abraham Silberschatz et Peter Baer Galvin donnent la définition suivante : [15]

"Operating System : a program that acts as an intermediary between a user of a computer and the computer hardware.", un programme qui agit comme intermédiaire entre un utilisateur d'un ordinateur et la partie matérielle de l'ordinateur.

Le système d'exploitation est un gestionnaire de ressources pour les systèmes complexes. Dans un système typique, ces ressources comprennent un ou plusieurs processeurs, de la mémoire, un timer , des disques de stockage, des interfaces utilisateur tels que souris, clavier imptimantes et écrans, et une ou plusieurs interfaces réseau, etc. Le travail (rôle ?) du système d'exploitation est de gérer l'allocation de ces ressources aux utilisateurs d'une manière ordonnée et contrôlée.

Un réseau de capteur consiste en un grand nombre de nœuds de capteur de petite taille alimentés par une batterie. Ils sont limités par la capacité de la batterie, la puissance du processeur et la capacité de communication. Le rôle du système d’exploitation pour capteur en réseau est d’être l’interface entre des ressources matérielles limitées et des applications distribuées (en anglais Distributed applications). Il doit fournir une variété de services systèmes basiques comme gérer l’allocation de ressource sur les périphériques de matériels divers, interrompre la gestion et la planification de tâche, gérer le réseau support. Le but est de faciliter la programmation des applications, mais aussi d’optimiser les utilisations de ressource.[16]

Les systèmes d'exploitation pour réseau de capteurs sans fil tel que TinyOS[5], Contiki[1], SOS[4], MantisOS[6], Nano-RK[3][17]sont conçu pour répondre à ces contraintes. Les possibilités matérielles des capteurs sont limitées en mémoire, en puissance de calcul et en autonomie énergétique (batterie). Les systèmes d’exploitation doivent avoir une « faible empreinte mémoire » afin d'être embarqués dans la mémoire flash des capteurs[18]. Malgré ces limites matérielles, les capteurs doivent intégrer les fonctionnalités de base d'un système d’exploitation[19] telles que :

Ils doivent en plus gérer les spécificités propres aux systèmes d'exploitation pour capteur en réseau[19] :

  • Gestion efficace de l’énergie ;
  • Fiabilité du système d'exploitation ;
  • Faible empreinte mémoire ;
  • Reconfiguration du système d'exploitation ;
  • Support de protocole de routage optimisé(µIP, Rime, µIPv6) ;
  • Support Temps-réel.

µIPv6 permet de réduire la consommation d’énergie dans le processus de routage par rapport au protocole IPv4[20].

Principes architecturaux

principes architecturaux des systèmes d'exploitation pour capteurs

Architecture
  • Monolithic
  • Modulaire ou composant
  • Machine virtuelle
Modèle d’exécution
  • Événementiel (Event-based)
  • multi Thread (Thread-based)
  • Hybrid
Reprogrammation
  • niveau applicatif
  • niveau modulaire ou composant
  • niveau d'instruction
  • niveau variable
Ordonnancement
  • temps reel
  • non real-time
Gestion de l'alimentation

Historique

Origine

Un état de l'art de mai 2010 recense les principaux systèmes d'exploitation pour capteur en réseau[21]. Un autre article de mai 2007 permet de compléter la liste des systèmes d'exploitation pour capteurs en réseau.[22]

TinyOS[5]
TinyOS est un système principalement développé et soutenu par l'université américaine de Berkeley. La version 0.6.1 apparaît en mai 2002.
Contiki[1]
Contiki, est un système développé et soutenu par l'Institut d'Informatique Suédoise. Adam Dunkels est l'initiateur du projet[23].
SOS[4]
SOS, est un système développé par l'Université de Californie et supporté conjointement par l'Université de Los Angeles. Possède un outils de débogage du code avec gdb.
Mantis OS[6]
Mantis, est un système principalement développé et soutenu par l'université américaine de Colorado. La version 0.9.5 apparait en juillet 2005. La version 1.0 beta apparaît en octobre 2007.
Nano-RK[3]
RETOS[7]
RETOS est un système développé par l'Université Yonsei en Corée. La version 1.1.0 apparaît en juin 2007.
LiteOS[10]
LiteOS est un système développé et soutenu par l'Université américaine de l'Illinois à Urbana-Champaign. La version 0.3 apparaît en janvier 2008.
SenOS
EYES/PEEROS

Autres Systèmes d'exploitation :

t-Kernel
DCOS
MagnetOS
kOS

Évolution

Contiki
La version 2.3 apparaît en juin 2011. Le développement de Contiki reste actif, puisque de nombreuses améliorations apparaissent avec cette nouvelle version. La première mise en avant est la pile µIPv6, annoncée en Octobre dernier conjointement par Cisco, Atmel et l'équipe de Contiki, mais fraîchement intégrée au système. Contiki fait donc enfin partie des systèmes dits "IPv6 ready".[24]
LiteOS
La version 2.1 apparaît en octobre 2011. Il fournit un mécanisme de virtualisation de l'énergie [25] (Virtual Batterie ) et un système de débogage à distance (déclarativePoints de trace ).[26]

Systèmes existants

Fonctionnement

Principales forces et faiblesses

Taxonomie

Les systèmes sont classés selon les caractéristiques suivantes :

  • Statique / Dynamique.

Dans un système statique le programmeur doit allouer toutes les ressources lors de la conception. Par-contre, dans un système dynamique le programmeur alloue les ressources lors de l'exécution. Les systèmes dynamiques sont plus souples, et sont plus adaptés aux environnements à évolution dynamique. Cependant, ils ne sont pas fiables et une application boguée peut facilement entraîner le blocage du système.

Un système "Event-driven" est en dormance et réagit à l'arrivée d'un évènement. Un système "Multi-Threads" est un système qui accomplit les tâches en parallèle.

  • Monolithique / Modulaire

Un système est monolithique lorsque le système d'exploitation et l'application sont compilés en un seul bloc. A l'opposé, un système est modulaire si l’application est séparé du système d'exploitation. Dans ce cas le système d'exploitation est contenu dans un noyau.

  • Réseau

Par conception un capteur dispose d'une couche applicative réseau. TCP/IP est la norme. protocoles réseau utilisés : µIP, µIPv6, RIME[1], Active Message, Three-layer architecture.

  • Temps Réel

Le capteur peut être doté d'une synchronisation de référence en fonction des besoins applicatifs.

  • Langage

Le système d'exploitation peut être codé dans différents langage : nesC, LiteC++, C, C++, java

  • Système de fichiers
  • Reprogrammation

Le capteur est susceptible d'être reprogrammé à distance, en fonction de l'évolution de l'application.

  • Dépannage à distance

Le capteur doit pouvoir être analysé à distance, ou au minimum être capable de remonter des informations sur son état au gestionnaire du réseau.[26]


Taxonomie des systèmes d'exploitation pour capteur en réseau[27]
TinyOS Contiki SOS Mantis Nano-RK RETOS LiteOS
Publication (année) ASPLOS (2000) EmNets (2004) MobiSys (2005) MONET (2005) RTSS (2005) IPSN (2007) IPSN (2008)
Statique/Dynamique Statique Dynamique Dynamique Dynamique Statique Dynamique Dynamique
Événementiel/Thread Event&Thread(TinyThread,TOSThreads) Event&Threads&Protothreads Event Thread&Event(TinyMOS) Thread Thread Thread&Event(through callback)
Monolithique/Modulaire Monolithique Modulaire Modulaire Modulaire Monolithique Modulaire Modulaire
Réseau Message Actif uIP,uIPv6,Rime Message "comm" Socket Three-layer Architecture File-Assisted
Support Temps réel non non Non Non oui POSIX 103.1b non
Language Programmation nesC C C C C C LiteC++
File System Single level(&.x only)(ELF,Matchbox) Coffee non non(sera en 1.1) non Hierarchical Unix-like)
Reconfiguration oui(Deluge,FlexCup) oui oui (Modulaire) no (sera en 1.1) non oui oui
Débogage Distant oui(Clairvoyant) non non oui (NodeMD) non non oui(DT)

Applications

Catégories d’applications

La classification des applications dépend du but pour lequel les capteurs en réseau sont utilisés. Ils peuvent être classés dans les catégories suivantes : (i) Contrôle, (ii) Détection/Classification/Dépistage et (iii) Direction. Ces applications sont utilisées dans des domaines différents, tels que :

  • Contrôle Environnemental

Ce domaine d'applications est réparti entre un contrôle intérieur et extérieur. Des applications de contrôle intérieures incluent typiquement le contrôle de bâtiments et des bureaux. (Exemple : le contrôle de la température ambiante, de la lumière, de l'air conditionné, de la qualité de l'air). D'autres applications intérieures importantes sont la détection de fumée et de feu. La recherche en génie civil a montré que les capteurs en réseau peuvent aussi être utilisés afin de contrôler les structures civiles comme les ponts et les bâtiments contre les méfaits des vibrations. Les applications extérieures intéressantes de capteurs en réseau sont la détection de la dangerosité chimique, la surveillance des autoroutes, la prévision de tremblement de terre, d'éruption, de phénomène météorologique, la surveillance des rivières, la prévision d'inondation. Les nœuds (ou les réseaux ?)de capteur sont aussi présents dans l'agriculture. Ils peuvent être utilisés pour anticiper les premières gelées, prévoir les conditions climatiques, améliorer la gestion des cultures et réduire des coûts. Le contrôle de l'humidité du sol est encore une application des capteurs en réseau dans l'agriculture.

  • Santé

Ce domaine d'applications concerne typiquement la surveillance de patients et l'alerte de docteurs. Les capteurs mesurent les actions récentes des patients et informent les médecins du comportement du patient. Une autre application pourrait être le traçage de l'utilisation des médicaments par les patients et les médecins dans les hôpitaux. Cet article[28]donne une vue d'ensemble des applications potentielles de capteur en réseau dans les services médicaux.

  • Armée
  • Industrie

Caractéristiques d'applications

Perspectives d'applications

Notes et références

Notes

  1. Acronyme : Wireless Sensor Network, littéralement : Réseau de senseur sans fils.
  2. Le transmetteur assure en fait deux fonctions, émetteur ET récepteur, d'où l'usage plus courant du terme émetteur-récepteur pour lever l’ambiguïté du terme anglais "transmit" signifiant "émettre")

Références

Bibliographie

Livres

  • (en) Avi Silberschatz et Peter Galvin, « OPERATING SYSTEM CONCEPTS », Department of Computer Sciences University of Texas at Austin,‎ (lire en ligne)

Articles scientifiques

  • (en) Muhammad Omer Farooq, Sadia Aziz et Abdul Basit Dogar, « State of the Art in Wireless Sensor Networks Operating Systems: A Survey », T.-h. Kim et al. (Eds.): FGIT 2010, LNCS 6485, pp. 616–631, 2010.© Springer-Verlag Berlin Heidelberg 2010,‎ , p. 616-631 (DOI 10.1007/978-3-642-17569-5_61, lire en ligne)
  • (en) Qing Cao, Liqian Luo, John Stankovic, Yusuf Sarwar et Tarek Abdelzaher, « Declarative Tracepoints: A Programmable and Application Independent Debugging System

for Wireless Sensor Networks », Department of Computer Science University of Illinois,‎ (lire en ligne)

  • (en) Qing Cao, Debessay Fesehaye, Nam Pham, Yusuf Sarwar et Tarek Abdelzaher, « Virtual Battery: An Energy Reserve Abstraction for Embedded Sensor Networks », Department of Computer Science University of Illinois at Urbana-Champaign,‎ , p. 123-133 (DOI 10.1109/RTSS.2008.41, lire en ligne)
  • (en) Shah Bhatti, James Carlson, Hui Dai, Jing Deng, Jeff Rose, Anmol Sheth, Brian Shucker, Charles Gruenwald, Adam Torgerson et Richard Han, « MANTIS OS: An Embedded Multithreaded Operating System for Wireless Micro Sensor Platforms », University of Colorado at Boulder Computer Science Department Boulder, CO, 80309,‎ (lire en ligne)
  • (en) Anthony D. Joseph, « Operating Systems and Systems Programming Course Reader for Spring 2008 », University of California Berkeley Computer Science 162,‎ (lire en ligne)
  • (en) Adam Dunkels, Bjorn Gronvall et Thiemo Voigt, « Contiki - a Lightweight and Flexible Operating System for Tiny Networked Sensors », Local Computer Networks, 2004. 29th Annual IEEE International Conference on,‎ , p. 455-462 (DOI 10.1109/LCN.2004.38, lire en ligne)
  • (en) Nicolas Tsiftes, Joakim Eriksson, Finne Finne, Fredrik Österlind, Joel Höglund et Adam Dunkels, « A Framework for Low-Power IPv6 Routing Simulation, Experimentation, and Evaluation », Swedish Institute of Computer Science,‎ (lire en ligne)
  • (en) Joseph Polastre, Robert Szewczyk et David Culler, « Telos: Enabling Ultra-Low Power Wireless Research », Computer Science Department University of California, Berkeley Berkeley, CA 94720,‎ , p. 364-369 (DOI 10.1109/IPSN.2005.1440950, lire en ligne)
  • (en) Giuseppe Anastasi, Marco Conti, Andrea Passarella et Luciana Pelusi, « Mobile-relay Forwarding in Opportunistic Networks », Dept. of Information Engineering University of Pisa, Italy. IIT-CNR National Research Council, Italy,‎ (lire en ligne)
  • (en) Jonathan W. Hui et David Culler, « The dynamic behavior of a data dissemination protocol for network programming at scale », Proceeding SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems,‎ (DOI 10.1145/1031495.1031506, lire en ligne)
  • (en) Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler et Kristofer Pister, « System Architecture Directions for Networked Sensors », Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA,‎ , p. 93-104 (lire en ligne)
  • (en) Adi Mallikarjuna, Reddy V Avu, Phani Kumar, D Janakiram et G Ashok Kumar, « Operating Systems for Wireless Sensor Networks: A Survey Technical Report », Distributed and Object Systems Lab Department of Computer Science and Engineering Indian Institute of Technology Madras, Chennai, India - 600036,‎ (lire en ligne)
  • (en) Qiang Wang, Yaoyao Zhu, Liang Cheng et Lehigh University, « Reprogramming wireless sensor networks: challenges and approaches », Dept. of Comput. Sci. & Eng., Lehigh Univ., Bethlehem, PA, USA,‎ , p. 48 - 55 (DOI 10.1109/MNET.2006.1637932, lire en ligne)
  • (en) Wei Dong, Chun Chen, Xue Liu et Jiajun Bu, « Providing OS Support for Wireless Sensor Networks: Challenges and Approaches », IEEE COMMUNICATIONS SURVEYS & TUTORIALS, VOL. 12, NO. 4, FOURTH QUARTER 2010,‎ , p. 519 - 530 (DOI 10.1109/SURV.2010.032610.00045, lire en ligne)
  • (en) Jialiang Wang, Hai Zhao, Peng Li, Zheng Liu, Jie Zhao et Wei Gao, « The Mechanism and Performance Comparison of Two Wireless Sensor Network Operating System Kernels », Information Technology: New Generations, 2009. ITNG '09. Sixth International Conference on,‎ , p. 1442 - 1446 (lire en ligne)
  • (en) Kim Nakyoung, Choi Sukwon et Hojung Cha, « Automated sensor-specific power management for wireless sensor networks », Mobile Ad Hoc and Sensor Systems, 2008. MASS 2008. 5th IEEE International Conference on,‎ , p. 305 - 314 (lire en ligne)
  • (en) Seungmin Park, Jin Won Kim, Kwangyong Lee, Kee-Young Shin et Daeyoung Kim, « Embedded sensor networked operating system », Object and Component-Oriented Real-Time Distributed Computing, 2006. ISORC 2006. Ninth IEEE International Symposium on,‎ , p. 305-314 (ISBN 0-7695-2561-X, DOI 10.1109/ISORC.2006.33)
  • (en) Kim Nakyoung, Choi Sukwon et Hojung Cha, « Automated sensor-specific power management for wireless sensor networks », Mobile Ad Hoc and Sensor Systems, 2008. MASS 2008. 5th IEEE International Conference on,‎ , p. 305 - 314 (lire en ligne)
  • (en) Anand Eswaran, Anthony Rowe et Raj Rajkumar, « Nano-RK: an Energy-aware Resource-centric RTOS for Sensor Networks », Real-Time and Multimedia Systems Lab. Electrical and Computer Engineering Department, {aeswaran,agr,raj}@ece.cmu.edu. School of Computer Science Carnegie Mellon University, Pittsburgh, PA, USA,‎ (lire en ligne)
  • (en) Anthony Rowe, Rahul Mangharam et Raj Rajkumar, « FireFly: A Time Synchronized Real-Time Sensor Networking Platform. », Department of Electrical and Computer Engineering Carnegie Mellon University, Pittsburgh, PA, USA {agr, rahulm, raj}ece.cmu.edu,‎ (lire en ligne)
  • (en) Kang Lee, « IEEE P1451 Draft Standard for a Smart Transducer Interface for Sensors and Actuators », IEEE,‎ (lire en ligne)
  • (en) Kang Lee, « Brief Description of the Family of IEEE 1451 Standards », IEEE,‎ (lire en ligne)

Autres documents

  • (en) Julian W. Gardner, Krishna C. Persaud, Perena Gouma et Ricardo Gutierrez-Osuna, « CALL FOR PAPERS IEEE Sensors Journal Special issue on Machine Olfaction », IEEE,‎ (lire en ligne)
  • (en) Daniela De Venuto, Weileun Fang et Jacob Abraham, « CALL FOR PAPERS IEEE Sensors Journal Special issue on Advances in Sensors and Interfaces », IEEE,‎ (lire en ligne)
  • (en) Aimé Lay-Ekuakille, Olfa Kanoun, Cristina Davis et Antonio Trabacca, « CALL FOR PAPERS IEEE Sensors Journal Special issue on Sensors for Non-Invasive Physiological Monitoring », IEEE,‎ (lire en ligne)

Thèses

  • Rahul Mangharam Barrère, Étude et proposition de services dans les réseaux mobiles militaires de type MANet, , 30-35 p. (lire en ligne)

Liens externes