La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione.

Presentazioni simili


Presentazione sul tema: "1 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione."— Transcript della presentazione:

1 1 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione 4.6 Criteri di progetto per la paginazione 4.7 Case study: Unix 4.8 Case study: Windows 2000

2 2 Algoritmi di Sostituzione Il page fault forza la scelta su quale pagina deve essere rimossa –Libera memoria per la pagina da caricare Pagine modificate devono essere salvate –Quelle non modificate vengono semplicemente sovrascritte Deve evitare di selezionare una pagina riferita spesso –Potrebbe essere necessario ricaricarla in breve tempo

3 3 Algoritmo di Sostituzione Ottimo Sostituisce la pagina che sarà riferita nellistante più lontano nel tempo –Ottimo ma non realizzabile In alternativa: –Si stima lordine di caricamento delle pagine in esecuzioni precedenti del processo –Neanche questa soluzione è applicabile in pratica –Tuttavia può essere usata per valutare le prestazioni di algoritmi utilizzabili

4 4 Least Recently Used (LRU) Assume che le pagine usate di recente siano riferite di nuovo in breve tempo (località temporale) –Scarica le pagine inutilizzate da più tempo Implementazione diretta: mantiene una lista di pagine –Le pagine usate più di recente in cima –Aggiorna la lista ad ogni riferimento della memoria!! Impl. Approssimata: mantiene un contatore per ogni descrittore della tabella delle pagine –Lhw incrementa il un contatore centrale C ad ogni tick –Se accedo la pagina p, C viene copiato nel descrittore corrispondente –Scarica la pagina fisica con il più piccolo valore nel campo contatore

5 5 Algoritmo di Sostituzione Second Chance Operazioni di un algoritmo second chance a)Pagine disposte in ordine FIFO b)Lista delle pagine se il fault di pagina avviene allistante 20, A ha il bit R settato c)A viene trattata come una pagina arrivata allistante 20, R viene posto a 0 Pagina caricata per prima Tempi di caricamento

6 6 Algoritmo di Sostituzione Clock Quando avviene un fault di pagina, la pagina indicata dal puntatore viene analizzata. Lazione dipende dal bit R: R=0: elimina la pagina R=1: resetta R e avanza il puntatore

7 7 Algoritmo di Sostituzione Working Set (1) Working set (idea di base) –insieme di pagine necessarie ad un processo P in una fase della propria elaborazione es. due array globali A,B (dati), più istruzioni di copia (testo) Paginazione su domanda (a richiesta) –P passa in esecuzione senza alcuna pagina in memoria –le pagine vengono caricate quando avviene un page fault –lento finché non è stato caricato il working set Pre-paginazione (prepaging) –il sistema tiene traccia del working set –lultimo working set di P viene caricato in memoria prima di riavviare il processo

8 8 Algoritmo di Sostituzione Working Set (2) Il working set al tempo t è linsieme di pagine riferite negli ultimi k accessi in memoria w(k,t) è la dimensione del working set al tempo t k

9 9 Algoritmo di Sostituzione Working Set(3)

10 10 Algoritmo di Sostituzione Working Set(3.1) Ad ogni tick i bit R vengono azzerati Ad ogni page fault si scandisce TP –se R=1, tempo virtuale corrente viene copiato nel descrittore ( > > tick) –se R=0 la pagina viene rimossa solo se non appartiene a WS (age-anzianità > ) –se tutte le pagine sono in WS si elimina quella riferita da più tempo con R=0 (se cè) –altrimenti una con R=1 (possibilmente non dirty) –tutta la TP viene comunque scandita ed aggiornata

11 11 LAlgoritmo di Sostituzione WSClock Tempo ultimo utilizzo Bit R

12 12 LAlgoritmo di Sostituzione WSClock (2) Mantiene la lista circolare di pagine di P caricate in memoria –aggiornata ad ogni caricamento Ad ogni fault si esamina la pagina puntata dalla lancetta –se R=1 viene resettato –se la pagina non è in WS ma è dirty viene richiesta la scrittura e si continua la ricerca –se non è dirty viene selezionata come vittima (fine) –si selezionano al più k scritture

13 13 LAlgoritmo di Sostituzione WSClock (3)

14 14 Criteri di progetto per la paginazione Politiche di Allocazione Locali VS Globali (1) Configurazione originale Sostituzione con politica locale Sostituzione con politica globale

15 15 Politiche di Allocazione Locali VS Globali (2) In caso di politiche di allocazione locali è necessario determinare il numero di pagine fisiche da assegnare ad ogni processo Tramite monitoraggio della dimensione del working set –analizzando listante dellultimo riferimento alle pagine Tramite algoritmi di allocazione delle pagine –Allocazione iniziale in funzione della dimensione del processo –Allocazione successiva tramite algoritmo PFF (Page Fault Frequency)

16 16 Politiche di Allocazione Locali VS Globali (3) Tasso di page fault in funzione del numero di pagine fisiche assegnate: possibile strategia per PFF

17 17 Controllo del carico A prescindere dalla bontà dello schema adottato, il sistema può comunque andare in thrashing (causare un page fault ogni poche istruzioni) Accade quando lalgoritmo PFF indica che –Alcuni processi necessitano di più memoria –E che nessun processo necessita di meno memoria Soluzione (scheduling di secondo livello) Ridurre il numero di processi che competono per la memoria –Fare lo swap di qualche processo su disco –Ridurre il grado di multiprogrammazione

18 18 Riassunto degli Algoritmi di Sostituzione AlgoritmoCommento Ottimo Non implementabile, si usa come benchmark LRU (Least Recently Used)Eccellente ma difficile da implementare Second ChanceRealistico, piu costoso del clock ClockRealistico Working SetCostoso da implementare WSClockBuono ed efficiente

19 19 Dimensione delle Pagine (1) Pagine piccole Vantaggi –Riducono la frammentazione interna –Si adattano meglio a varie strutture dati e sezioni di codice –Limitano lampiezza dello spazio di indirizzamento inutilizzato caricate in memoria Svantaggi –I programmi necessitano di parecchie pagine, tabelle delle pagine più grandi

20 20 Dimensione delle Pagine (2) Spreco di memoria dovuto alla tabella delle pagine e alla frammentazione interna Dove –s = dimensione media di un processo (in bytes) –p = dimensione della pagina (in bytes) –e = descrittore di pagina (in bytes) Frammentazione interna Ottimizzata quando Spazio nella tabella delle pagine

21 21 Cleaning Policy Necessità di un processo in background (demone di paginazione -- paging daemon) –Analizza periodicamente lo stato della memoria Quando troppe poche pagine fisiche sono libere –Seleziona una pagina da scaricare usando un algoritmo di sostituzione

22 22 Separare Istruzioni e Dati Uno spazio di indirizzamento Spazi separati per istruzioni e dati

23 23 Pagine Condivise Due processi possono condividere lo stesso programma (area testo) tramite la condivisione dei record della tabella delle pagine associate al programma


Scaricare ppt "1 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione."

Presentazioni simili


Annunci Google