Corso Embedded ARM: sistemi operativi real time

I sistemi embedded si interfacciano con il mondo esterno ed elaborano i dati provenienti dalle diverse periferiche. Elaborare e gestire tutte le informazioni in maniera efficiente può diventare un compito non facile quando le applicazioni non sono banali e le interfacce da gestire sono diverse, con diversi requisiti di timing. Per venire incontro a queste esigenze si utilizzano i Sistemi Operativi Real Time o RTOS.

I diversi approcci per la gestione del flusso di esecuzione di un'applicazione

Come abbiamo avuto modo di vedere nelle precedenti lezioni, esistono differenti modi di gestire il flusso di esecuzione di un'applicazione:

  • polling (dall'inglese to poll, sondare, monitorare): per applicazioni molto semplici il processore può attendere finchè non ha dati da processare, quindi processarli e attendere di nuovo altri dati in un ciclo infinito. Si prenda ad esempio la ricezione di caratteri sull'UART: il processore può aspettare che la seriale riceva un carattere per mostrarlo su un display e per fare questo monitora costantemente la flag RXC nel registro INTFLAG, in attesa che sia presente un nuovo carattere nel registro DATA del modulo SERCOM; una volta ricevuto il carattere, lo mostra sul display e torna ad attenderne un altro. Il processore è completamente impegnato nell'attesa di dati sulla seriale (spesso in una busy wait, un ciclo while();) e non può fare nient'altro se non sprecare cicli. Questo flusso è molto semplice da implementare e funziona bene per applicazioni basilari (figura 1).

    Figura 1: nel metodo polling il processore è completamente impegnato nel servire la periferica.

    In molti casi però un microcontrollore deve gestire più interfacce e quindi deve essere in grado di supportare più processi (ciascun processo, o task come verrà definito meglio in seguito, si occupa di gestire un'interfaccia). Il metodo polling può facilmente essere esteso per gestire più processi, in un approccio che viene definito super-loop, in cui ogni processo viene elaborato in sequenza (figura 2).

    Figura 2: super loop per gestire più interfacce/periferiche.

     

    Questo metodo funziona bene per applicazioni molto semplici, ma presenta diversi svantaggi: quando un'applicazione diventa più complessa il metodo polling è difficile da gestire e mantenere; inoltre non è facile stabilire un'ordine di priorità tra i vari processi e spesso alcuni (magari più urgenti) finiscono per attendere lunghi periodi di tempo mentre il processore ne sta elaborando altri (magari meno importanti): si dice che si viene a compromettere la responsività del sistema, (dall'inglese responsivity), parametro come vedremo molto importante in taluni sistemi.

  • interrupt driven: gli interrupt, generati dalle diverse periferiche, possono essere configurati con diversi livelli di priorità e ogni processo relativo ad un'interfaccia può essere elaborato all'interno della corrispettiva ISR (interrupt service routine)In assenza di dati da elaborare il processore può entrare in uno stato di risparmio energetico (sleep mode), dal quale viene risvegliato quando una periferica riceve dati e richiede l'attenzione del processore (figura 3).

    Figura 3: metodo interrupt driven.

    In alcuni casi è necessario processare i dati in arrivo dalle periferiche in due parti: la prima deve essere elaborata rapidamente, mentre la seconda può essere elaborata in un secondo momento. In queste situazioni si può adottare un approccio misto, polling e interrupt driven, per gestire il flusso dell'applicazione: quando una periferica richiede attenzione genera un interrupt come in un'applicazione interrupt driven. L'ISR aggiorna una variabile (globale e volatile) di stato del programma in maniera tale [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3102 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Una risposta

  1. Avatar photo Maurizio Di Paolo Emilio 7 Giugno 2017

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend