Gestione della Memoria

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Memoria Virtuale in Linux
Algoritmi e Strutture Dati
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Gestione della memoria
Unità D2 Archivi e file.
TECNICA DELLE PARTIZIONI RILOCABILI
Il Sistema Operativo.
File System Cos’è un File System File e Directory
Gestione della Memoria
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione della Memoria
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
1 System Call per Comunicazione tra Processi Pipe.
Realizzazione del file system
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Gestione della memoria
Realizzazione del file system
Memoria Virtuale Background Paginazione su richiesta
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Scheduling della CPU Concetti di base Criteri di scheduling
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
File.
Risorse e Stallo.
Tabelle hash.
La Memoria Virtuale.
Algoritmi e Strutture Dati
Unità Didattica 2 I Linguaggi di Programmazione
memoria gestita staticamente:
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Introduzione ai Sistemi Operativi
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Algoritmi di String Matching
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
La Gestione della Memoria
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Threads.
Pippo.
Gestione della Memoria
Sistema Operativo (Software di base)
Memoria La memoria è un vettore di stringhe di bit (word/parole) In memoria è allocato il Sistema Operativo. In memoria sono allocati i programmi per poter.
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Migliorare le prestazioni delle cache
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Gestione della Memoria. Scenario 1 o più CPU Un certo quantitativo di memoria Una memoria di massa.
Gestione della Memoria
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Gestione della Memoria
1 Cenni di gestione della memoria Unix-Linux. 2 Organizzazione della Memoria Spazio logico dei processi A e B e memoria fisica Condivisione dell’area.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
La gerarchia di memorie
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Compitino di Sistemi Operativi corsi A -C 19 Maggio 2003.
Transcript della presentazione:

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

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

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

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

Algoritmo di Sostituzione “Second Chance” Tempi di caricamento Pagina caricata per prima 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

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

Algoritmo di Sostituzione “Working Set” (1) 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

Algoritmo di Sostituzione “Working Set” (2) Il “working set” al tempo t è l’insieme di pagine riferite negli ultimi k accessi in memoria w(k,t) è la dimensione del “working set” al tempo t

Algoritmo di Sostituzione “Working Set”(3)

Algoritmo di Sostituzione “Working Set”(3.1) Ad ogni tick i bit R vengono azzerati Ad ogni page fault si scandisce TP se R=1, tempo virtuale corrente viene copiato nel descrittore ( > > tick) se R=0 la pagina viene rimossa solo se non appartiene a WS (age-anzianità >) se tutte le pagine sono in WS si elimina quella riferita da più tempo con R=0 (se c’è) altrimenti una con R=1 (possibilmente non dirty) tutta la TP viene comunque scandita ed aggiornata

L’Algoritmo di Sostituzione “WSClock” Bit R Tempo ultimo utilizzo

L’Algoritmo di Sostituzione “WSClock” (2) Mantiene la lista circolare di pagine di P caricate in memoria aggiornata ad ogni caricamento Ad ogni fault si esamina la pagina puntata dalla lancetta se R=1 viene resettato se la pagina non è in WS ma è dirty viene richiesta la scrittura e si continua la ricerca se non è dirty viene selezionata come vittima (fine) si selezionano al più k scritture

L’Algoritmo di Sostituzione “WSClock” (3)

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

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)

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

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

Riassunto degli Algoritmi di Sostituzione Algoritmo Commento  Ottimo  Non implementabile, si usa come benchmark LRU (Least Recently Used) Eccellente ma difficile da implementare Second Chance Realistico, piu’ costoso del clock Clock Realistico Working Set Costoso da implementare WSClock Buono ed efficiente

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

Dimensione delle Pagine (2) Spreco di memoria dovuto alla tabella delle pagine e alla frammentazione interna Dove s = dimensione media di un processo (in bytes) p = dimensione della pagina (in bytes) e = descrittore di pagina (in bytes) Spazio nella tabella delle pagine Frammentazione interna Ottimizzata quando

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

Separare Istruzioni e Dati Uno spazio di indirizzamento Spazi separati per istruzioni e dati

Pagine Condivise Due processi possono condividere lo stesso programma (area testo) tramite la condivisione dei record della tabella delle pagine associate al programma