+ All Categories
Home > Documents > 1 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria...

1 Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria...

Date post: 01-May-2015
Category:
Upload: abele-turco
View: 213 times
Download: 0 times
Share this document with a friend
21
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
Transcript
Page 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.

1

Gestione della Memoria

4.1 Introduzione alla gestione della memoria4.2 Swapping4.3 Memoria virtuale4.4 Implementazione4.5 Algoritmi di sostituzione4.6 Criteri di progetto per la paginazione4.7 Case study: Unix4.8 Case study: Windows 2000

Page 2: 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.

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

Page 3: 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.

3

Algoritmo di Sostituzione Ottimo

• Sostituisce la pagina che sarà riferita nell’istante più lontano nel tempo– Ottimo ma non realizzabile

• In alternativa:– Si stima l’ordine 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

Page 4: 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

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– L’hw 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

Page 5: 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.

5

Algoritmo di Sostituzione “Second Chance”

• Operazioni di un algoritmo “second chance”a) Pagine disposte in ordine FIFOb) Lista delle pagine se il fault di pagina avviene all’istante 20, A ha il

bit R settatoc) A viene trattata come una pagina arrivata all’istante 20, R viene

posto a 0

Pagina caricata per prima

Tempi di caricamento

Page 6: 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.

6

Algoritmo di Sostituzione “Clock”

Quando avviene un fault di pagina, la pagina indicata dal puntatore viene analizzata. L’azione dipende dal bit R:

•R=0: elimina la pagina•R=1: resetta R e avanza il puntatore

Page 7: 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.

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 – l’ultimo working set di P viene caricato in memoria prima di riavviare il processo

Page 8: 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.

8

Algoritmo di Sostituzione “Working Set” (2)

• Il “working set” al tempo t è l’insieme di pagine riferite negli ultimi k accessi in memoria• w(k,t) è la dimensione del “working set” al tempo t

k

Page 9: 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.

9

Algoritmo di Sostituzione “Working Set”(3)

Page 10: 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.

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

Page 11: 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.

11

L’Algoritmo di Sostituzione “WSClock”

Tempoultimo utilizzo

Bit R

Page 12: 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.

12

L’Algoritmo 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

Page 13: 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.

13

L’Algoritmo di Sostituzione “WSClock” (3)

Page 14: 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.

14

Criteri di progetto per la paginazione Politiche di Allocazione Locali VS Globali (1)

• Configurazione originale• Sostituzione con politica locale• Sostituzione con politica globale

Page 15: 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.

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 l’istante dell’ultimo 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)

Page 16: 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.

16

Politiche di Allocazione Locali VS Globali (3)

Tasso di page fault in funzione del numero di pagine fisiche assegnate: possibile strategia per PFF

Page 17: 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.

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 l’algoritmo 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

Page 18: 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.

18

Riassunto degli Algoritmi di Sostituzione

Algoritmo Commento

 Ottimo  Non implementabile, si usa come benchmark

LRU (Least Recently Used) Eccellente ma difficile da implementare

Second Chance Realistico, piu’ costoso del clock

Clock Realistico

Working Set Costoso da implementare

WSClock Buono ed efficiente

Page 19: 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.

19

Dimensione delle Pagine (1)

Pagine piccole

• Vantaggi– Riducono la frammentazione interna– Si adattano meglio a varie strutture dati e sezioni di

codice– Limitano l’ampiezza dello spazio di indirizzamento

inutilizzato caricate in memoria

• Svantaggi– I programmi necessitano di parecchie pagine, tabelle

delle pagine più grandi

Page 20: 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.

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)

2

s e poverhead

p

Frammentazio

ne interna

Ottimizzata quando

2p se

Spazio nella tabella delle pagine

Page 21: 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.

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


Recommended