Gestione della Memoria

14
1 Gestione della Memoria Capitolo 4 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

description

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. Capitolo 4. Gestione della Memoria. - PowerPoint PPT Presentation

Transcript of Gestione della Memoria

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