Esame di Sistemi in Tempo Reale, Corso di Laurea Specialistica in Ingegneria dell'Automazione
Compito scritto (16 luglio 2008)
Esercizio 1
Un sistema di controllo multitask consiste di 2 catene di task periodici. La prima catena consiste dei task T1 e T2, e viene attivata periodicamente ogni 50 msec. La seconda catena consiste dei task T3, T4 e T5 e viene attivata ogni 75 millisecondi.
In ogni catena, il primo task viene attivato periodicamente, mentre i task successivi si attivano solo quando il task precedente termina. Tutti i task della catena 1 devono essere completati entro 70 msec dall'attivazione del primo task T1, mentre tutti i task della seconda catena vanno completati entro 75 msec dall'attivazione del task T3.
1) Scrivere il codice dei task T1 – T5, prestando attenzione ai meccanismi per la sincronizzazione temporale e per la sincronizzazione fra task della stessa catena.
2) Inoltre, aggiungere un controllo di “deadline miss”. Se una deadline di una delle catene viene mancata, segnalare la situazione di errore con una stampa a video.
3) Supponendo che il WCET di ognuno dei task sia pari a 10 msec, fare il disegno di una possibile
schedulazione nell'intervallo [0, 150], assumendo che le priorità siano assegnate in maniera decrescente da T1 a T5, e che la prima attivazione di T1 coincida con la prima attivazione di T3.
Esercizio 2
Dato il seguente insieme di task, schedulato con FP, a assegnamento delle priorità secondo DM.
Fare l'analisi di sensitività sul task 3 al fine di stabilire di quanto si può aumentare/diminuire il tempo di calcolo del task mantenendo il sistema schedulabile.
Task C T D P U
1 2 4 4 1 0.5
2 4 15 15 2 0.27 3 3 30 30 3 0.1