Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.

Slides:



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

Memoria Virtuale in Linux
Gestione della Memoria
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Fondamenti di Informatica1 Gestione della memoria I sistemi di memoria possono essere suddivisi in: –memoria interna al processore –memoria principale.
Gestione della memoria
Unità D2 Archivi e file.
IL MICROCONTROLLORE ST6
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
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Realizzazione del file system
Operating System Concepts
Gestione della memoria
Interfaccia del file system
Realizzazione del file system
Memoria Virtuale Background Paginazione su richiesta
Gestione della memoria
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Scheduling della CPU Concetti di base Criteri di scheduling
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Disco magnetico (2) Ciascuna traccia è divisa in settori
Criticità sul controllo
Struttura dei sistemi operativi (panoramica)
Gestione della memoria principale
La Memoria Virtuale.
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Il Linguaggio Macchina
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
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
La schedulazione dei processi
Complessità di un algoritmo
Architettura Centralizzata di un DBMS Relazionale
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)
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Architettura di una CPU
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
Gestione dei dispositivi di I/O:
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © William Fornaciari La Gestione della memoria.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
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 Strutture dati. 2 Astrazione Non vogliamo sapere l’organizzazione fisica dei dati  indirizzi e celle di memoria Ci interessa solo la loro organizzazione.
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.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
La gerarchia di memorie
Scheduler e politiche di Marco Arcamone.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Transcript della presentazione:

Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi in memoria per l’esecuzione. Lo spazio logico degli indirizzi può quindi essere più grande dello spazio fisico. E’ necessario permettere lo spostamento (swapping) delle pagine. La memoria virtuale può venir implementata per mezzo di: Paginazione su richiesta Segmentazione su richiesta Sistemi operativi

Paginazione su richiesta Si porta una pagina in memoria solo quando è richiesta. Viene richiesto meno I/O Viene impiegata meno memoria Si ha una risposta più veloce Si possono gestire più utenti Una pagina è richiesta  si fa un riferimento alla pagina riferimento non valido  abort pagina non in memoria  si porta in memoria Sistemi operativi

Bit di validità SI associa un bit di validità a ciascun elemento della tabella delle pagine (1  in memoria, 0  non in memoria). Inizialmente il bit di validità viene posto a 0 per tutte le pagine. Esempio di una configurazione della tabella delle pagine. Durante la traduzione dell’indirizzo, se il bit di validità vale 0  si ha un page fault. Frame # Bit di validità 1 1 1 1  Tabella pagine Sistemi operativi

Page Fault Se non ci sono mai stati riferimenti ad una pagina, il primo riferimento causa un trap del SO  page fault Il SO consulta un’altra tabella per decidere: Riferimento non valido  abort. Semplicemente non è in memoria. Seleziona un frame vuoto. Sposta la pagina nel frame. Aggiorna le tabelle (bit di validità = 1). Viene riavviata l’istruzione che era stata interrotta. Sistemi operativi

Sostituzione delle pagine Sostituzione della pagina – si trova una pagina in memoria che non sia realmente utilizzata, e si sposta sul disco. algoritmo prestazioni: è richiesto un algoritmo che abbia il minimo numero di page fault. Alcune pagine possono essere portate in memoria più volte. Page Fault Rate 0  p  1.0 se p = 0 non si hanno page fault se p = 1, ciascun riferimento è un fault Effective Access Time (EAT) EAT = (1 – p) x t[accesso alla memoria] + p x t[page fault] + t[swap page out] + t[swap page in]+ restart overhead Sistemi operativi

Sostituzione delle pagine La sovra-allocazione della memoria si ha quando è richiesta più memoria di quella effettivamente disponibile. SI previene la sovra-allocazione delle pagine modificando le routine di servizio, includendo la sostituzione delle pagine (oppure terminando i processi). Si impiega un bit di modifica (dirty) per ridurre il sovraccarico dei trasferimenti di pagine – solo le pagine modificate vengono scritte sul disco. Il rimpiazzamento delle pagine completa la separazione fra la memoria logica e la memoria fisica – una grande memoria virtuale può essere fornita ad un sistema con poca memoria fisica. Si richiede il più basso rate di page-fault possibile. Si valutano gli algoritmi eseguendoli su una particolare stringa di riferimenti a memoria (reference string) e contando il numero di page fault su tale stringa. Sistemi operativi

Algoritmo First-In-First-Out (FIFO) Stringa di riferimenti: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frame (3 pagine possono trovarsi in memoria in un dato momento per ciascun processo) 4 frame Algoritmo FIFO – anomalia di Belady: più frame  più page fault 1 1 4 5 2 2 1 3 9 page fault 3 3 2 4 1 1 5 4 2 2 1 5 10 page fault 3 3 2 4 4 3 Sistemi operativi

Algoritmo ottimo Rimpiazzare la pagina che non verrà usata per il più lungo periodo di tempo. Esempio con 4 frame: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Come si può conoscere questa pagina? Viene impiegato per misurare quanto bene funziona un determinato algoritmo. 1 4 2 6 page fault 3 4 5 Sistemi operativi

Algoritmo Least Recently Used (LRU) 1 5 Stringa di riferimenti: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Implementazione con contatore Ciascuna pagina ha un contatore; ogni volta che si fa riferimento alla pagina si copia l’orologio nel contatore. Quando si deve rimuovere una pagina, si analizzano i contatori per scegliere quale pagina cambiare. 2 3 5 4 4 3 Implementazione con stack – si tiene uno stack di numeri di pagina in forma di lista doppiamente concatenata: Pagina referenziata: Si sposta in cima allo stack è necessario al più aggiornare 6 puntatori Non è necessario fare ricerche per la scelta. Sistemi operativi

Algoritmi di approssimazione di LRU Bit di riferimento A ciascuna pagina si associa un bit, inizialmente = 0 Quando si fa riferimento alla pagina si pone il bit a 1. Si rimpiazza la pagina il cui bit=0 (se esiste). Tuttavia non si conosce l’ordine. Seconda chance E’ necessario un bit di riferimento. Clock replacement. Se la pagina da rimpiazzare (in ordine di clock) ha il bit di riferimento = 1. allora: Si pone il bit di riferimento a 0. Si lascia la pagina in memoria. Si rimpiazza la pagina successiva (in ordine di clock), soggetta alle stesse regole. Sistemi operativi

Algoritmi con conteggio Si tiene un contatore del numero di riferimenti che sono stati fatti a ciascuna pagina. Algoritmo LFU (Least Frequently Used): si rimpiazza la pagina col valore più basso del contatore. Algoritmo MFU (Most Frequently Used): è basato sull’assunzione che la pagina col valore più basso del contatore è stata spostata recentemente in memoria e quindi ha sempre bisogno di essere impiegata. L’implementazione di questi algoritmi è molto costosa. Sistemi operativi

Allocazione dei frame Ciascun processo richiede un numero minimo di pagine. Esempio: IBM 370 – l’istruzione SS MOVE manipola 6 pagine: l’istruzione è di 6 byte, quindi può toccare 2 pagine. 2 pagine per gestire from. 2 pagine per gestire to. Si hanno due schemi principali di allocazione. Allocazione fissa Allocazione con priorità Sistemi operativi

Allocazione fissa e con priorità Stessa allocazione per ogni processo – Ad esempio, se si hanno 100 frame e 5 processi, si assegnano 20 pagine a ciascuno. Allocazione proporzionale – Si alloca sulla base della dimensione del processo. SI impiega uno schema di allocazione proporzionale impiegando delle priorità piuttosto che la dimensione. Se il processo Pi genera un page fault, si seleziona per il rimpiazzamento uno dei suoi frame. si seleziona per il rimpiazzamento un frame di un processo con numero di priorità più basso. Sistemi operativi

Allocazione globale o locale Rimpiazzamento globale – il processo seleziona un frame da rimpiazzare dall’insieme di tutti i frame; un processo può prendere un frame ad un altro processo. Rimpiazzamento locale – ciascun processo seleziona i frame solo dal suo insieme di frame allocati. Sistemi operativi

Thrashing Se un processo non ha abbastanza pagine, il rate di page-fault è molto alto. Questo porta a: basso impiego della CPU. il sistema operativo crede di aver bisogno di aumentare il grado di multiprogrammazione. si aggiunge un altro processo al sistema! Thrashing  un processo è in attesa spostando pagine dal disco alla memoria e viceversa. Perché la paginazione funziona? Modello di località Il processo passa da una località ad un’altra. Le località possono essere sovrapposte. Perché avviene il thrashing?  dimensioni delle località > dimensione totale della memoria Sistemi operativi

Modello del Working-Set   finestra di working-set  un numero fisso di riferimenti a pagine esempio: 10.000 istruzioni. WSSi (working set del Processo Pi) = numero totale di pagine referenziate nel più recente  (varia col tempo): se  è troppo piccolo non comprende tutta la località. se  è troppo grande comprenderà più località. se  =   comprende l’intero programma. D =  WSSi  numero totale di frame richiesti se D > m (n. totale dei frame)  Thrashing Politica: se D > m, allora si sospende un processo. Sistemi operativi

Tener traccia del working-set Problema: la finestra del working-set è una finestra in movimento con riferimenti che entrano ed escono dal working-set. Si approssima con un interrupt del timer e un bit di riferimento Esempio:  = 10.000 Il timer interrompe ogni 5000 unità di tempo. Si tengono in memoria 2 bit per ogni pagina. Quando si ha un interrupt del timer, si copiano i valori di tutti i bit di riferimento e si settano a 0. Se uno dei bit in memoria è 1  pagina nel working-set. Questo approccio non è completamente accurato. Miglioramento: 10 bit e interrupt ogni 1000 unità di tempo. Sistemi operativi

Schema della frequenza dei page-fault Si stabilisce un rate di page fault “accettabile”. Se il rate corrente è troppo basso, il processo perde dei frame. Se il rate corrente è troppo alto, il processo guadagna dei frame. Sistemi operativi

Altre considerazioni Prepaginazione: Si portano in memoria tutte le pagine richieste in una volta sola. Ad esempio si può memorizzare il working-set al momento della sospensione per I/O e poi riprendere le pagine che appartengono al working-set. Criteri per la determinazione della dimensione della pagina frammentazione dimensione della tabella delle pagine sovraccarico (overhead) di I/O località Struttura dei programmi Array A[1024,1024] of integer Ciascuna riga viene memorizzata in una pagina Memoria con un frame Prog. 1 for j := 1 to 1024 do Prog. 2 for i := 1 to 1024 do for i := 1 to 1024 do for j := 1 to 1024 do A[i,j] := 0; A[i,j] := 0; 1024 x 1024 page fault 1024 page fault Sistemi operativi

Segmentazione su richiesta Viene impiegata quando non si ha hardware sufficiente per implementare la paginazione su richiesta. OS/2 alloca la memoria in segmenti, di cui si tiene traccia attraverso descrittori di segmenti Un descrittore di segmento contiene un bit di validità per indicare se il segmento è correntemente in memoria. Se il segmento si trova in memoria principale, allora si prosegue l’accesso, Se non è in memoria si ha un segmentation fault. Sistemi operativi