La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.

Presentazioni simili


Presentazione sul tema: "1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria."— Transcript della presentazione:

1 1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria

2 2 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 )

3 3 Tipica Gerarchia di Memoria Sia il tempo di accesso che la capacità sono approssimazioni abbastanza grossolane

4 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

5 5 Introduzione alla Gestione della Memoria Ambiente monoprogrammato senza swapping nè paginazione Tre modi semplici di organizzare la memoria -un sistema operativo con un solo processo utente

6 6 Ambiente multiprogrammato con partizioni fisse Partizioni fisse –Con code dei job distinte per ogni partizione –Con unica coda dei job

7 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

8 8 Text Data Stack Area vuota Traduzione in assembler delle funzioni che compongono il programma 0 2 32 - 1 Variabili globali Pila di FRAME, uno per ogni chiamata di funzione da cui non abbiamo ancora fatto ritorno Spazio di indirizzamento Come è organizzata la memoria accessibile ad un programma in esecuzione ?

9 9 Condivisione della RAM Tipicamente la RAM contiene lo spazio di indirizzamento di più processi : –es. organizzazione tipica della memoria negli SO degli anni ‘70 (es IBM 360) Sistema Operativo Spazio processo 1 Area riservata, non accessibile in modalità utente Una possibile organizzazione della RAM con più processi attivi contemporaneamente 0 AmpiezzaRAM - 1 Spazio processo 2 Spazio processo 3

10 10 Condivisione della RAM (2) Problemi legati alla condivisione della RAM : (1) protezione dello spazio di indirizzamento di processi diversi Sistema Operativo Spazio processo 1 Spazio processo 2 Spazio processo 3 Il processo 2 non deve poter accedere agli indirizzi di RAM al di fuori della sua area

11 11 Condivisione della RAM (2) Problemi legati alla condivisione della RAM : (2) problema della rilocazione Sistema Operativo Spazio processo 1 Spazio processo 2 Spazio processo 3 Il compilatore/linker assume che lo spazio di indirizzamento parta dall’indirizzo 0 Ma, P2 è caricato ad un indirizzo base2 != 0 base2 Text Stack Area vuota 0 Data max

12 12 Condivisione della RAM (3) Problemi legati alla condivisione della RAM : (2) problema della rilocazione (cont.) Sistema Operativo Spazio processo 1 Spazio processo 2 Spazio processo 3 Indirizzi di istruzioni e dati devono essere incrementati (rilocazione) di base2 base2 + X Text Stack Area vuota 0 Data max X base2

13 13 Condivisione della RAM (4) È necessario dell’Hw aggiuntivo Una possibile soluzione (usata nella serie IBM360) base PC limite + + Indirizzo (alla memoria) Fault (accesso oltre il limite) Addizionatore Confrontatore Indirizzo iniziale del programma in RAM Ampiezza dello spazio di indirizzamento

14 14 Condivisione della RAM (5) base PC limite + + Indirizzo (alla memoria) Fault (accesso oltre il limite) Addizionatore Confrontatore Indirizzo iniziale del programma in RAM Ampiezza dello spazio di indirizzamento Risolve il problema della rilocazione

15 15 Condivisione della RAM (6) base PC limite + + Indirizzo (alla memoria) Fault (accesso oltre il limite) Addizionatore Confrontatore Indirizzo iniziale del programma in RAM Ampiezza dello spazio di indirizzamento Risolve il problema della protezione

16 16 Swapping (1) Caricamento in partizioni variabili L’allocazione della memoria cambia quando: –I processi vengono caricati in memoria –I processi rilasciano la memoria

17 17 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

18 18 Swapping (3) a)Allocare dinamicamente memoria nel segmento dati b)Allocare dinamicamente memoria nello stack e nel segmento dati

19 19 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 corrispondente c)Lista di Allocazione corrispondente

20 20 Gestione della Memoria con Liste Quattro possibili combinazioni di allocazione in seguito alla terminazione del processo X

21 21 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


Scaricare ppt "1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria."

Presentazioni simili


Annunci Google