Download - Gestione della Memoria

Transcript
Page 1: Gestione della Memoria

1

Gestione della Memoria

Capitolo 4

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: Gestione della Memoria

2

Gestione della Memoria• Idealmente la memoria dovrebbe essere

– grande– veloce– non volatile

• Gerarchia di memorie– Disco: capiente, lento, non volatile ed economico – Memoria principale: volatile, mediamente grande, veloce e

costosa– Cache: volatile, veloce, piccola e costosa

• La gerarchia di memorie e’ gestita dal “memory manager” (gestore della memoria)

Page 3: Gestione della Memoria

3

Tipica Gerarchia di Memoria

• Sia il tempo di accesso che la capacità sono approssimazioni abbastanza grossolane

Page 4: Gestione della Memoria

4

Modelli di gestione della memoria• Modelli che non spostano i processi dalla RAM una volta iniziata l’esecuzione

– monoprogrammazione– multiprogrammazione a partizioni fisse

• Modelli che spostano un processo in esecuzione da RAM a disco– swapping– paginazione

Page 5: Gestione della Memoria

5

Introduzione alla Gestione della MemoriaAmbiente monoprogrammato senza swapping nè paginazione

Tre modi semplici di organizzare la memoria- un sistema operativo con un solo processo utente

Page 6: Gestione della Memoria

6

Ambiente multiprogrammato con partizioni fisse

• Partizioni fisse– Con code dei job distinte per ogni partizione– Con unica coda dei job

Page 7: Gestione della Memoria

7

Rilocazione e Protezione

• Non si conosce l’istante nel quale il programma verrà caricato in memoria– Gli indirizzi dei dati e del codice non possono essere assoluti– E’ necessario mantenere separati gli spazi di indirizzamento dei

processi

• Registri Base e Limite– Indirizzo fisico = indirizzo logico + registro base– Errore se indirizzo logico > registro limite

Page 8: Gestione della Memoria

8

Modelli per la Multiprogrammazione

Utilizzazione della CPU in funzione del numero di processi in memoria

Degree of multiprogramming

Page 9: Gestione della Memoria

9

Swapping (1)

• Caricamento in partizioni variabili• L’allocazione della memoria cambia quando:

– I processi vengono caricati in memoria– I processi rilasciano la memoria

Page 10: Gestione della Memoria

10

Swapping (2)• Rilocazione e protezione possono usare ancora i registri base e limite • Problema: la frammentazione della memoria

– molte aree piccole– compattazione

• Problema: stabilire quanto spazio allocare per ogni processo– area dati, stack

• Problema: come tenere traccia della memoria libera

Page 11: Gestione della Memoria

11

Swapping (3)

a) Allocare dinamicamente memoria nel segmento datib) Allocare dinamicamente memoria nello stack e nel

segmento dati

Page 12: Gestione della Memoria

12

Gestione della Memoria con Bit Map

a) Porzione di memoria con 5 processi e 3 aree libere• Le suddivisioni indicano l’unità di allocazione

b) Bit Map corrispondentec) Lista di Allocazione corrispondente

Page 13: Gestione della Memoria

13

Gestione della Memoria con Liste

Quattro possibili combinazioni di allocazione in seguito alla terminazione del processo X

Page 14: Gestione della Memoria

14

Allocazione della Memoria

Allocazione di un blocco di memoria di dimensione x:• First Fit

– Individua la prima porzione di memoria libera di dimensione x

• Best Fit– Individua la più piccola porzione di memoria libera di

dimensione x

3