Salta al contenuto
Note per Studenti Esercizio - Rate monotonic ed EDF su due compiti periodici (slide di scheduling)

Esercizio - Rate monotonic ed EDF su due compiti periodici (slide di scheduling)

In questa pagina 3

Testo (esempi delle slide di scheduling del corso di Sistemi Operativi, Ing. Informatica UniPD). Due compiti periodici con scadenza uguale al periodo.

  • Caso 1: P1P_1 con p1=50p_1 = 50, t1=20t_1 = 20; P2P_2 con p2=100p_2 = 100, t2=35t_2 = 35. Il carico complessivo (75%) è sostenibile? Si confrontino le assegnazioni di priorità fissa P2>P1P_2 > P_1 e Rate Monotonic.
  • Caso 2: P1P_1 con p1=50p_1 = 50, t1=25t_1 = 25; P2P_2 con p2=80p_2 = 80, t2=35t_2 = 35. Si verifichi la schedulabilità con Rate Monotonic e con EDF.

Teoria: Scheduling multiprocessore e real-timeNei sistemi real-time conta la scadenza: si misurano latenza di interrupt e latenza di dispatch; i sistemi soft real-time danno priorità ai compiti critici senza garanzie, quelli hard devono rispettare le scadenze; per compiti periodici (burst t, scadenza d, periodo p, con 0 <= t <= d <= p) l'utilizzo è la somma di t/p: Rate Monotonic (priorità fissa, minore il periodo maggiore la priorità) garantisce le scadenze se l'utilizzo non supera N(2^(1/N)-1) (83% per due compiti), Earliest Deadline First (priorità dinamica, scadenza più vicina) le garantisce se l'utilizzo è sotto il 100%; la ripartizione proporzionale assegna T quote con controllo di ammissione; con più processori si hanno code comuni o private (SMP), core con più thread hardware, bilanciamento del carico (push e pull migration), affinità al processore (soft e hard), scheduling NUMA-aware; Linux usa CFS/EEVDF con domini di scheduling, Windows 32 livelli di priorità.Scheduling multiprocessore e real-time →. I compiti sono rilasciati a 0,p,2p,…0, p, 2p, \dots e devono finire entro pp unità dal rilascio.

Caso 1

Utilizzo: 2050+35100=0,40+0,35=0,75\dfrac{20}{50} + \dfrac{35}{100} = 0{,}40 + 0{,}35 = 0{,}75.

Priorità P2>P1P_2 > P_1. P2P_2 esegue 0 .. 35, poi P1P_1 35 .. 55: ma la scadenza della prima istanza di P1P_1 è 50: persa. Il 75% non basta se la priorità è sbagliata.

Rate Monotonic (P1P_1, periodo più breve, priorità più alta):

t 0 .. 20 20 .. 50 50 .. 70 70 .. 75
CPU P1P_1 P2P_2 (30 unità) P1P_1 (2ª istanza) P2P_2 (5 unità finali)
  • P1P_1 finisce a 20 ≤50\le 50; seconda istanza rilasciata a 50, finisce a 70 ≤100\le 100;
  • P2P_2 parte a 20, a 50 è prelazionato (ha fatto 30 su 35), riprende a 70 e finisce a 75 ≤100\le 100.

Entrambe le scadenze sono rispettate. Conferma dal limite: per N=2N = 2 il limite di RMS è 2(2−1)=0,8282(\sqrt{2} - 1) = 0{,}828 e 0,75<0,8280{,}75 < 0{,}828.

Caso 2

Utilizzo 2550+3580=0,5+0,4375=0,9375\dfrac{25}{50} + \dfrac{35}{80} = 0{,}5 + 0{,}4375 = 0{,}9375, oltre il limite RMS 0,828.

RMS (P1P_1 ha priorità, p1<p2p_1 < p_2):

t 0 .. 25 25 .. 50 50 .. 75 75 .. 85
CPU P1P_1 P2P_2 (25 di 35) P1P_1 (2ª istanza) P2P_2 (ultime 10)

P2P_2 finisce a 85, ma la sua scadenza è 80: scadenza mancata. (Il limite è solo sufficiente: oltre di esso non si può garantire, e qui avviene davvero.)

EDF (priorità alla scadenza assoluta più vicina):

t 0 .. 25 25 .. 60 60 .. 85 85 .. 100 100 .. 125 125 .. 145 145 .. 150 150 .. 160
CPU P1P_1 (scad. 50) P2P_2 (scad. 80) P1P_1 (2ª, scad. 100) P2P_2 (2ª, scad. 160) P1P_1 (3ª, scad. 150) P2P_2 (2ª, resto) vuota P1P_1 (4ª)
  • a t=50t=50 arriva la 2ª istanza di P1P_1 (scadenza 100) ma P2P_2 ha scadenza 80: nessuna prelazione, P2P_2 finisce a 60;
  • a t=60t=60 resta solo P1P_1 (scad. 100), finisce a 85;
  • a t=80t=80 è rilasciata la 2ª istanza di P2P_2 (scadenza 160); a 85 P2P_2 è l'unico pronto: esegue fino a 100 (15 unità);
  • a t=100t=100 la 3ª istanza di P1P_1 (scadenza 150) ha scadenza minore di quella di P2P_2 (160) e prelaziona; finisce a 125; P2P_2 riprende e finisce a 145 ≤160\le 160.

Tutte le scadenze sono rispettate: EDF funziona perché U=0,9375<1U = 0{,}9375 < 1 (RMS richiede U≤0,828U \le 0{,}828 per garantire).

I tracciati sono stati confermati con una simulazione in Python sull'iperperiodo.

Domande d'esame

Con U=0,9U = 0{,}9 per due compiti, RMS è garantito? E EDF? Traccia. RMS garantisce solo fino a 2(21/2−1)=0,8282(2^{1/2} - 1) = 0{,}828: non garantito (può funzionare, ma va verificato). EDF garantisce per ogni U≤1U \le 1.

Versione ripasso

Teoria collegata