Esercizio - Working set, thrashing e frequenza dei page fault (eserciziario, esercizio 87)
In questa pagina 5
Testo (eserciziario del corso di Sistemi Operativi, Ing. Informatica UniPD). Si consideri la stringa di riferimenti (partendo con )
2 6 5 7 7 7 7 5 1 6 4
e il working set all'istante con intervallo .
- Cos'è , cioè dopo l'ultimo accesso?
- Nel caso precedente, quanti page fault ci sono complessivamente con (supponendo che in ogni istante si mantenga in memoria esattamente il solo working set)?
Inoltre (dalle slide): come si usa per riconoscere il thrashing e come interviene la frequenza dei page fault.
Definizione usata
è l'insieme delle pagine riferite negli ultimi riferimenti che terminano all'istante (compreso). La sua dimensione è .
Numeriamo i riferimenti a partire da :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| pagina | 2 | 6 | 5 | 7 | 7 | 7 | 7 | 5 | 1 | 6 | 4 |
Punto 1:
Gli ultimi 8 riferimenti fino a sono quelli da a : 7 7 7 7 5 1 6 4. Le pagine distinte sono
La pagina 2 () e il primo riferimento alla 6 () sono fuori finestra; la 6 è comunque nell'insieme perché è riferita di nuovo a .
Punto 2: page fault con
Si tiene in memoria solo il working set: a ogni istante si trovano in memoria le pagine riferite negli ultimi 4 riferimenti, e le altre vengono tolte. Un riferimento causa un page fault se la pagina non era nel working set dell'istante precedente (cioè non è stata riferita nei 4 riferimenti precedenti).
| pagina | riferimenti precedenti (ultimi 4) | in memoria? | |||
|---|---|---|---|---|---|
| 0 | 2 | – | no | 1 | |
| 1 | 6 | 2 | no | 2 | |
| 2 | 5 | 2 6 | no | 3 | |
| 3 | 7 | 2 6 5 | no | 4 | |
| 4 | 7 | 2 6 5 7 | sì | 3 | |
| 5 | 7 | 6 5 7 7 | sì | 2 | |
| 6 | 7 | 5 7 7 7 | sì | 1 | |
| 7 | 5 | 7 7 7 7 | no (uscita dalla finestra) | 2 | |
| 8 | 1 | 7 7 7 5 | no | 3 | |
| 9 | 6 | 7 7 5 1 | no | 4 | |
| 10 | 4 | 7 5 1 6 | no | 4 |
I fault sono a (4 fault di primo accesso), (la 5, uscita dalla finestra: era stata riferita a , ben oltre 4 riferimenti prima), (pagine 1, 6, 4): in totale
Il working set varia nel tempo: passa da 4 a 1 e poi risale a 4 (picchi di fault quando la località cambia, valli quando il working set è caricato). Con troppo piccola si hanno più fault; con grande il working set copre più "località" insieme.
Thrashing e frequenza dei fault (dalle slide)
- Si stima la richiesta totale di frame . Se (i frame disponibili) c'è thrashing: i processi non hanno i frame per il proprio working set e il sistema passa il tempo a caricare e scaricare pagine. Il sistema operativo deve sospendere o scaricare un processo (diminuire il grado di multiprogrammazione).
- Con la frequenza dei page fault (PFF) si fissa un intervallo accettabile: se il tasso di un processo è sotto la soglia inferiore gli si toglie un frame, se supera la soglia superiore gli se ne assegna uno; se non ci sono frame liberi, si sospende un processo.
Esempio. frame; tre processi hanno : , thrashing: si sospende (per esempio) il processo da 6, poi .
Errori tipici
- Includere nel working set i riferimenti prima della finestra.
- Contare come fault i riferimenti a pagine ancora nel working set (per esempio ).
- Dimenticare il fault a : la 5, riferita a , è uscita dalla finestra di 4 riferimenti.
- Confondere (insieme di pagine) con (numero di pagine).
Versione ripasso
Definizione. = pagine distinte degli ultimi riferimenti fino a compreso; ; thrashing sospendere un processo. PFF: tasso basso togliere un frame; alto darne uno.
Stringa 2 6 5 7 7 7 7 5 1 6 4 (). : riferimenti da a (7 7 7 7 5 1 6 4) .
Fault con (si tiene solo il working set; fault se la pagina non è tra gli ultimi 4 riferimenti precedenti): (primi accessi), (la 5, uscita dalla finestra), (1, 6, 4) 8. : 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 4.
Tabella per 2 6 5 7 7 7 7 5 1 6 4: 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 4. Fault a (8); .
Errori tipici: includere riferimenti fuori finestra; contare fault sulle pagine ancora nel working set; dimenticare il fault a ; .