La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.

Presentazioni simili


Presentazione sul tema: "1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile."— Transcript della presentazione:

1 1 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 Gestione della memoria Tutti i programmi che compongono il SO ed i programmi applicativi attivi usano contemporaneamente la RAM Il gestore della memoria si preoccupa di fare condividere la RAM ai vari processi in esecuzione in modo che : –ogni processo abbia il suo spazio privato distinto dagli altri (e inaccessibile agli altri) –ogni processo abbia abbastanza memoria per eseguire il proprio algoritmo e raccogliere i suoi dati

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

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

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

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

9 9 Swapping 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

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

11 11 Gestione della memoria Le strategie viste finora –ricopiano interamente lo spazio di indirizzamento di un processo P da memoria secondaria a RAM quando P va in esecuzione Sistema Operativo Spazio Ind processo 1 Area riservata, non accessibile in modalità utente 0 AmpiezzaRAM - 1 Spazio Ind processo 2 RAM vuota

12 12 Gestione della memoria Problemi: –limite all’ampiezza dello spazio di indirizzamento Attualmente ogni processo usa almeno 4GB di spazio di indirizzamento, con RAM assai più piccole… –memoria sottoutilizzata aree dello spazio di indirizzamento che non sono utilizzate occupano RAM Soluzione: memoria virtuale –ad ogni istante carico in RAM solo le parti di SI che servono per una certa fase dell’esecuzione –diverse soluzioni: vedremo la paginazione

13 13 Paginazione: idea base Lo spazio di indirizzamento di ogni processo è diviso in ‘fette’ (pagine logiche) tutte della stessa ampiezza 0 1 2 3 4.. Processo 1 Pagina Logica: ‘fetta’ dello spazio di indirizzamento (1-4K) 0 1 2 3 4.. Processo 2 0 1 2 3 4.. Processo 3

14 14 Paginazione: idea base –Anche la RAM disponibile per i processi utente è divisa in pagine della stessa ampiezza (pagine fisiche) Sistema Operativo RAM vuota Pagina Fisica: ‘fetta’ dello RAM stessa ampiezza della pagina logica

15 15 Paginazione: idea base –Ad ogni istante solo le pagine necessarie per i processi in esecuzione sono caricate in RAM (si usa la località!) Sistema Operativo RAM vuota 0 1 2 3 4.. Processo 1 0 1 2 3 4.. Processo 2 0 1 2 3 4.. Processo 3

16 16 Paginazione: problema Esecuzione (corretta) dei programmi utente parzialmente caricati: –bloccare automaticamente accessi ad aree non caricate in RAM (page fault) –aggiornare automaticamente l’insieme delle pagine in memoria scaricando/caricando da memoria secondaria quelle necessarie in una certa fase

17 17 Paginazione Cosa succede se la pagina non è in memoria? –Presente-Assente = 0, si genera un page fault –l’esecuzione del processo viene bloccata –va in esecuzione il gestore della memoria –la pagina logica viene localizzata su disco e caricata in RAM –se la RAM è piena si individua una pagina vittima da scaricare dalla RAM –algoritmi di sostituzione : servono a selezionare la pagina vittima

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

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

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

21 21 Algoritmo di Sostituzione “Working Set” 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


Scaricare ppt "1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile."

Presentazioni simili


Annunci Google