FreeRTOS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: Wikipedia:Specificità dei wikilink e modifiche minori
Gamon2 (discussione | contributi)
Implementazione: aggiustamento della traduzione Wipkipedia in Inglese.
Riga 16:
 
== Implementazione ==
FreeRTOS è stato ideato per essere compatto e semplice da utilizzare. Il [[kernel]] è composto da solo tre file in [[linguaggio C]]. Per rendere il codice più leggibile, quindi facile da trasferire, e da gestire, la maggior parte del sorgente è scritto in [[C (linguaggio)|C]], ma, dove necessario, sono presenti varie funzioni in [[assembly]] (soprattutto nelle architetture delle routine di pianificazioneschedulazione relative alle specifiche architetture).
 
FreeRTOS fornisce alcuni metodi per la creazione di [[Thread (informatica)|threads]] o istruzioni multiple, [[mutex]]es, [[Semaforo (informatica)|semafori]] e software [[temporizzatori|timer]]. LaPer modalitàle inapplicazioni [[ticklessa kernel]]basso consumo è utilizzatapossibile perutilizzare leuna applicazionimodalità che[[tickless richiedono una bassa potenzakernel]]. FreeRTOS supporta e gestisce le priorità dei thread. LeI applicazioniprogrammi cheFreeRTOS vengonopossono utilizzateessere tramiteallocati FreeRTOSin possono esseremodo completamente allocatestatico. In alternativa gli oggetti RTOS possono essere allocati in modo dinamico con cinque schemi di assegnazioneallocazione previstipossibili:
 
FreeRTOS fornisce alcuni metodi per la creazione di [[Thread (informatica)|threads]] o istruzioni multiple, [[mutex]]es, [[Semaforo (informatica)|semafori]] e [[temporizzatori]]. La modalità in [[tickless kernel]] è utilizzata per le applicazioni che richiedono una bassa potenza. FreeRTOS supporta e gestisce le priorità dei thread. Le applicazioni che vengono utilizzate tramite FreeRTOS possono essere completamente allocate. In alternativa gli oggetti RTOS possono essere allocati in modo dinamico con cinque schemi di assegnazione previsti:
* solo allocazione;
* allocazione e deallocazione con un semplice e rapido algoritmo;
* una algoritmo più complessa ma più veloce per la allocazione e la deallocazione conche fa uso di [[Coalescenza (informatica)|memoria coalescente]];
* un'alternativa alallo schema più complesso schema che comprendeusa la coalescenza della memoria, che consente ad un heap di interrompereessere frammentato moltein più aree di memoria;
* allocazione e deallocazioneuna di [[Libreria standard del C|librerielibreria in C]] di allocazione e deallocazione con protezione in mutua esclusione.
 
Non esiste nessuna delle funzioni più avanzate che si trovano in genere in sistemi operativi come Linux o Microsoft Windows, come driver per dispositivi esterni, gestione avanzata della memoria, account utente e rete. LaL'enfasi qualitàviene delposta prodotto è invece definitapiuttosto dallasulla compattezza e dallasulla velocità di esecuzione e lavoro. FreeRTOS può essere considerato come una ''libreria di supporto ai thread,'' piuttosto che come un 'sistema operativo', anche se sono disponibili interfacce a riga di comando e addizionamentidegli diaddon astrazionecompatibili IPOSIX /per Ol'astrazione comedegli POSIXI/O.
 
FreeRTOS implementa piùi thread, avendofacendo in modo il programma host che richiamarichiami un metodo "thread tick" a brevi intervalli regolari. Il metodo del''thread tick thread'' commutaabilita lei attivitàtask ain secondabase dellaad prioritàuna eschedulazione dicon unopriorità schemaed dia pianificazioneround-robin. L'intervallo solitamentedi tick è solitamente compreso in un range tra 1/1000 ed 1/100 di secondo, eccettoinnescato da un interrupt proveniente da un realtime clock hardware, ma viene spesso modificato per adattarsi alla particolare applicazione. in casi di interrupt derivanti dal timer dell'hardware. Questo intervallo spesso viene variato per configurare particolari applicazioni.
 
Il download contienedi unaFreeRTOS contiene configurazioni preimpostata,preimpostate unae dimostrazioneprogrammi demo per ogni portaport di architettura e ilper ogni compilatore, permettendonepermettendo un rapido utilizzo. Sul sito [http://www.freertos.org FreeRTOS.org] è presente una vasta sezione di documentazione e molti tutorial (manuali aggiuntivi e altro materiale sono disponibili a pagamento), così come dettagli sulla struttura dell'RTOS.
 
== Caratteristiche principali ==
* Esistono manuali in PDF e guide di riferimento gratuiti;
* Minima occupazione di memoria, basso [[overhead]], e veloce esecuzione dei programmi;
* Modalità [[Tickless kernel|tickless]] opzionale per applicazioni che richiedono unabasso bassa potenzaconsumo;
* È ideale sia per gli hobbisti alle prime armi con i sistemi operativi che per gli sviluppatori professionisti che creano prodotti commerciali;
* Lo schedulatore può essere configurato sia per le operazioni preventivepreemptive che per le cooperative;
* Supporta le coroutine (la coroutine in FreeRTOS è molto semplice ed è formata da processi leggeri che hanno un limitato impatto d'uso delladello [[stack]])
* Supporto tracciaal tracing del programma, tramite macro generiche di traccia. Strumenti come Tracealyzer (cioè FreeRTOS + Trace, fornite dal partner Percepio di FreeRTOS) possono quindi registrare e visualizzare il comportamento di runtime dei sistemi basati su FreeRTOS. Ciò include la pianificazione delle attività e le chiamate del kernel per operazioni di [[Semaforo (informatica)|semaforo]] e [[Coda (informatica)|coda]]. Tracealyzer è uno strumento commerciale, ma è anche disponibile in una versione libera a funzionalità limitata. La versione completa ha un prezzo di 1066 € (US$1,200).
 
== Architetture supportate ==