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

3 3 Gestione della memoria (2) 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

4 4 Gestione della memoria (3) Problemi: –limite all’ampiezza dello SI 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 (es. gap fra heap e stack) 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

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

6 6 Paginazione: idea base (2) –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

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

8 8 Paginazione: problema Esecuzione (corretta) dei programmi utente parzialmente caricati: –tradurre correttamente l’indirizzo logico X (relativo allo spazio di indirizzamento) nell’indirizzo fisico Y (parola di RAM) in cui è caricato –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

9 9 Traduzione indirizzi Vogliamo tradurre X (ind. Logico) in Y (ind fisico) RAM... SI X Y

10 10 Traduzione indirizzi (2) Osservate che X = #pagLogica * s + offset –s ampiezza della pagina (logica e fisica) –offset indirizzo dentro la pagina (fra 0 ed s-1 ) quindi Y= f(#pagLogica) *s + offset –f() funzione che associa ad ogni pagina logica il numero di pagina fisica in cui è caricata –NB f() è definita solo per le pagine caricate

11 11 Traduzione indirizzi (3) X= 1*s + offset Y= f(1) *s + offset RAM... SI X Y Ampiezza di pagina (s) offset f

12 12 Traduzione indirizzi (4) La traduzione degli indirizzi deve essere veloce! –Va fatta ad ogni accesso in memoria Come si calcolano #pagLogica e offset ? –Sono quoziente e resto della divisione per s –in generale la divisione è molto costosa! –È semplice se s=2 k perché stiamo lavorando con indirizzi binari quoziente resto k k

13 13 Traduzione indirizzi (5) Quindi il calcolo è veloce –es. pagine di 4KB= 2 12 B basta selezionare (hw) i primi 12 bit per offset ed il resto per #pagLogica Come si calcola la funzione di corrispondenza f() ? –Serve una tabella (la tabella delle pagine, TP) –TP [ #pagLogica ] è il descrittore di pagina e contiene il numero di pagina fisica corrispondente bit Presente-Assente (se la pagina è in memoria o no) altro

14 14 Traduzione indirizzi (6) 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 rimpiazzamento : servono a selezionare la pagina vittima

15 15 La Memory Management Unit Organizzazione tipica dell’hw: posizione e funzione della MMU

16 16 La MMU (2) Operazioni di una MMU con 16 pagine di 4KB

17 17 Informazioni contenute in un descrittore di pagina –il formato dipende dall’hw –NON ci sono informazioni su dove trovare la pagina su disco (dipende dal SO) Tabella delle Pagine

18 18 Traduzione indirizzi (6) L’accesso alla tabella delle pagine deve essere veloce –non può stare solo in RAM se no duplica il tempo di accesso –non può stare tutta in MMU prenderebbe troppo spazio indirizzi a 32 bit e pagine di 4K, la size(TP)=2 20 record non tutti i descrittori servono contemporaneamente –si usa una piccola cache dei descrittori in MMU TLB (Translation Lookaside Buffer) o memoria associativa tutta la tabella è in RAM

19 19 TLB - Translation Lookaside Buffer o Memoria Associativa Esempio di TLB

20 20 Second-level page tables Top-level page table Tabella delle Pagine a due livelli PT1PT2offset Descrittori di pagina

21 21 Second-level page tables Top-level page table Tabella delle Pagine a due livelli (2) 05offset 10 12

22 22 Tabella delle Pagine Inversa Confronto tra tabella delle pagine tradizionale e tabella delle pagine inversa

23 23 Implementazione della Paginazione Il Sistema operativo invoca i meccanismi di paginazione in quattro circostanze: 1. Creazione di un Processo  Determina la dimensione dello spazio di indirizzamento  Crea la tabella delle pagine 2. Esecuzione di un Processo (context switch)  Reset della MMU per il nuovo processo  Aggiornamento del TLB (flush) 3. Page fault  Determina l’indirizzo logico che ha causato il page fault  Sposta una pagina su disco (se necessario) e carica la pagina richiesta 4. Terminazione di un Processo  Dealloca la tabella delle pagine e le pagine del processo

24 24 Gestione del Page Fault (1) 1. Una eccezione provoca l’invocazione del nucleo, salvando almeno il PC sullo stack (hw) 2. Salvataggio registri generali e altri reg. interni (assembler) 3. Il sistema determina la pagina logica richiesta 1. registro speciale o software 4. Il sistema verifica la validità dell’indirizzo, e ricerca una pagina libera o, in alternativa, una pagina vittima 5. Se la pagina vittima selezionata è stata modificata (dirty), viene scritta su disco

25 25 Gestione del Page Fault (2) 6. Il sistema richiede la lettura della pagina logica dal disco 6. (schedulatore) va in esecuzione un altro processo pronto 7. Quando la lettura è completata (interruzione), si aggiorna la tabella delle pagine 8. Viene ripristinata l’istruzione che ha causato il page fault 9. Il processo che ha causato il page fault viene schedulato 10. Ripristino dei registri, ritorno in modo utente (assembler) Il processo riprende l’elaborazione come se il page fault non fosse avvenuto

26 26 Ripristino dell’Istruzione Il fault si può verificare in una dei tre accessi Problemi se l’istruzione modifica i registri –autoincremento, autodecremento Alcune macchine hanno dei registri interni che mantengono infomazioni di ripristino (backup) #

27 27 Vincolare le pagine in Memoria Memoria virtuale e I/O interagiscono occasionalmente Un processo richiede una lettura da un dispositivo su un buffer –Mentre attende per l’I/O passa in esecuzione un altro processo –Il processo in esecuzione causa un page fault –La pagina contenente il buffer del primo processo può essere selezionata per essere scaricata dalla memoria Necessità di vincolare alcune pagine –Le pagine vincolate non possono essere scaricate dalla memoria (pinning)

28 28 Backing Store: area di swap (a) Paginazione con un’area di swap statica –indirizzo iniziale su disco in TP (b) Paginazione con area di swap dinamica Process address space

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

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

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

32 32 Algoritmo di Sostituzione “Second Chance” Operazioni di un algoritmo “second chance” –Pagine disposte in ordine FIFO –Lista delle pagine se il fault di pagina avviene all’istante 20, A ha il bit R settato –A viene trattata come una pagina arrivata all’istante 20, R viene posto a 0 Pagina caricata per prima Tempi di caricamento

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

34 34 Criteri di progetto per la paginazione Politiche di Allocazione Locali VS Globali (1) Configurazione originale Sostituzione con politica locale Sostituzione con politica globale

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

36 36 Politiche di Allocazione Locali VS Globali (3) Tasso di page fault in funzione del numero di pagine fisiche assegnate: possibile strategia per PFF

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

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

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


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