Google+ Quarta Info B: WORKING SET

giovedì 11 aprile 2013

WORKING SET


Una cosa molto interessante da notare è che ogni proceso fa riferimento ad una piccola quantità di pagina e non a moltissime pagina tutte insieme.
Un compilatore a più passate, per esempio, fa riferimento a poche pagine di memoria per ogni passata.
L’insieme della pagine che vengono utilizzate correntemente da un processo si chiama working set (o zona di lavoro).
Il working set dovrebbe essere caricato tutto in memoria in modo da evitare dei fault di pagina continui che porterebbero al rallentaento della pagina (thrashing).
Cosa succede su un processo viene scaricato in memoria e poi deve riprendere l’esecuzione?
In teoria basterebbe semplicemente non far nulla. Il processo genererà moltissimi fault di pagina fino a che il suo working set non sia stato caricato in memoria per poi riprendere l’esecuzione.
Il problema sta nel fatto che il computer potrebbe metterci alcuni millisecondi per gestire un fault di pagina. E se abbiamo migliaia di fault?
La soluzione è implementata in molti sistemi operativi moderni: viene tenuta traccia dei working set di ogni processo e non si permette al processo di ricominciare a lavorare prima che il suo working set non sia stato caricato in memoria in modo da evitare fault di pagina (questa procedura si chiama prepaging).
Il working set è sostanzialmente l’insieme di pagine usate nei k riferimenti di memoria più recenti.

Nessun commento:

Posta un commento