Fondamenti · Lezione 8 di 11 · circa 15 min
RTOS: tanti lavori su un solo chip
Task, priorità e code
Un dispositivo può dover leggere un sensore ogni 10 ms, aggiornare uno schermo lento e inviare dati, tutto insieme. In un semplice ciclo, un lavoro lento fa ritardare gli altri. Un sistema operativo real-time (RTOS) risolve il problema.
- Un task è una funzione con un proprio ciclo infinito, come un thread.
- Lo scheduler esegue il task più importante tra quelli pronti, anche se deve metterne in pausa un altro.
- Un delay mette a dormire un task, così gli altri possono usare la CPU.
- Una coda passa i dati in sicurezza da un task all’altro.
- Un mutex protegge una risorsa condivisa, come la UART, così due task non la usano nello stesso momento.
void SensorTask(void *p) {
for (;;) {
float t = read_temperature();
xQueueSend(tempQueue, &t, 0); // hand the value to the display task
vTaskDelay(pdMS_TO_TICKS(10)); // sleep 10 ms, the CPU is free
}
}
xTaskCreate(SensorTask, "sensor", 256, NULL, 3, NULL); // high priority
xTaskCreate(DisplayTask, "display", 256, NULL, 1, NULL); // low priority
vTaskStartScheduler(); // never returns
Real-time non significa veloce. Significa prevedibile: il task importante viene sempre eseguito entro un tempo noto. Lo scheduler stesso è guidato da un interrupt del timer.
Domande da colloquio
- Che cos’è l’inversione di priorità e come si risolve?
- Coda o variabile globale: come devono condividere i dati due task?
- Quando un semplice ciclo è meglio di un RTOS?
Qui non ci sono le risposte, apposta: prova prima a rispondere ad alta voce. Nell’app BoardPilot l’allenatore per i colloqui legge la tua risposta e ti dice cosa era giusto, cosa manca e cosa chiederebbe dopo un intervistatore senior (usa il fornitore di IA che scegli nell’app). Domande da colloquio sui sistemi embedded →
Parole chiave
RTOS (sistema operativo real-time) Task Scheduler Coda (queue) Mutex Semaforo Inversione di priorità
Nell’app le lezioni prendono vita
Nell’app le lezioni hanno demo interattive ed esercitazioni pratiche verificate sulla tua scheda. Queste pagine sono la versione da leggere: le demo sono descritte a parole e le esercitazioni richiedono l’app.