TinyOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m parametri del tmp sistema operativo
Botcrux (discussione | contributi)
m Bot: fix citazione web (v. discussione)
Riga 29:
 
== Modello di concorrenza ==
TinyOS è un sistema operativo totalmente non bloccante e l'intero ciclo di vita del software in esecuzione è di tipo event-driven. Ogni evento viene associato ad un interrupt che a sua volta è legato ad una sezione di codice di tipo Asynchronous Code -AC-. Sezioni di tipo AC possono essere invocata solo dagli interrupt e di conseguenza queste routine (riconoscibili poiché decorate tramite la keyword event) entrano a far parte del ''core'' del sistema stesso (possono essere pensate come le routine che vengono richiamate tramite il vettore degli interrupt in un sistema operativo standard).
 
L'assenza di primitive bloccanti è un grosso limite poiché può portare a situazioni di [[race condition]]. Tuttavia, nesC "risolve" tramite un [[workaround]] il problema permettendo l'uso della keyword "Atomic" all'interno del codice AC: la keyword può essere usata per decorare blocchi di codice da eseguire senza interruzioni. L'implementazione di questo costrutto richiede la disattivazione di tutti gli interrupt, l'esecuzione del codice (monopolizzando l'intero sistema) e la successiva riattivazione degli interrupt: pertanto, viene consigliato di rendere le sezioni atomiche quanto più piccole possibile per evitare di perdere eventi che nel frattempo potrebbero verificarsi.
Riga 39:
 
Il modello split-phase (che in inglese significa "a fase spaccata") è esplicitamente progettato per gestire operazioni che richiedono tempi nell'ordine dei microsecondi per essere completate. Queste operazioni vanno identificate tramite la keyword Task in modo da poterle distinguere dalle operazioni di tipo Event (hanno livelli di priorità diversi)
 
 
== Lo scheduler ==
Riga 60 ⟶ 59:
* [[Wireless sensor network]]
* [[NesC]]: un linguaggio di programmazione per le reti di sensori
* [{{cita web|http://www.mauropaglietta.it/tesi/tesi.htm |Un'API Java per la comunicazione seriale di Windows x86 con TinyOS Mica2]}}
* [{{cita web|http://www.cs.berkeley.edu/~pal/pubs/nesc.pdf |The nesC Language: A Holistic Approach to Networked Embedded Systems]}}
 
==Collegamenti esterni==
*{{en}}cita [web|http://www.tinyos.net |Sito ufficiale]|lingua=en}}
 
[[Categoria:Sistemi operativi]]