Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione



Documenti analoghi
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

GESTIONE DELLA MEMORIA CENTRALE

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria!

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Gestione della Memoria

Memoria. Sistemi Operativi Giuseppe Prencipe. Tipica Gerarchia di Memoria. Gestione della Memoria. Modelli di gestione della memoria

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Capitolo 9: Memoria centrale

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistema operativo: Gestione della memoria

Gestione della memoria principale

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Capitolo 11 La memoria cache

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

I processi Unix. Entry della tabella dei processi

Il memory manager. Gestione della memoria centrale

Gestione della memoria

Architettura hardware

Capitolo Silberschatz

Strutturazione logica dei dati: i file

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Strutture di Memoria 1

La Gestione delle risorse Renato Agati

Sistemi Operativi (modulo di Informatica II) I processi

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

memoria virtuale protezione

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Gerarchie di Memoria Andrea Gasparetto

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Calcolatori Elettronici B a.a. 2008/2009

Varie tipologie di memoria

GESTIONE INFORMATICA DEI DATI AZIENDALI

Esercitazione E6 Esercizi d esame

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

PROGETTAZIONE FISICA

Gestione della memoria centrale

B+Trees. Introduzione

La memoria centrale (RAM)

Organizzazione della memoria

Organizzazione della memoria principale Il bus

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Memoria cache, struttura. Tecniche impiegate. Ad ogni accesso alla memoria

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Funzioni in C. Violetta Lonati

Indirizzi IP. Indirizzi IP

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

La memoria - generalità

Sistemi Operativi Kernel

La Gestione della Memoria

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Il Processore: i registri

Compilatore risorse display grafico LCD serie IEC-line

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Gestione della Memoria Principale

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Corso di Informatica

Pronto Esecuzione Attesa Terminazione

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Appunti sulla Macchina di Turing. Macchina di Turing

= 0, 098 ms. Da cui si ricava t 2 medio

Esercitazione E2 Memoria virtuale

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

STRUTTURE DEI SISTEMI DI CALCOLO

Gestione della memoria centrale

Il supporto al Sistema Operativo

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Protezione. Protezione. Protezione. Obiettivi della protezione

1.4b: Hardware. (Memoria Centrale)

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

Architettura dei calcolatori II parte Memorie

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

I sistemi di numerazione

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Laboratorio di Informatica

Testi di Esercizi e Quesiti 1

Modulo 7: Gestione della Memoria

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Laboratorio di Informatica di Base Archivi e Basi di Dati

Gestione Memoria. Gestione della memoria

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Corso di Sistemi di Elaborazione delle informazioni

Architettura di un calcolatore: introduzione

SPECIFICHE E LIMITI DI EXCEL

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Uso di base delle funzioni in Microsoft Excel

Cognome e Nome Gennaio 2002 I prova in itinere

Transcript:

Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione

Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base nella memoria fisica di ogni pagina. L indirizzo di base si appaia con lo scostamento di pagina per definire l indirizzo della memoria fisica. Modello di paginazione di memoria logica e memoria fisica

Dimensione delle pagine La dimensione di una pagina, così come quella di un frame, è definita dall architettura del calcolatore ed è tipicamente una potenza di 2 compresa tra 512 byte e 16 MB. Le dimensioni sono potenza di 2 perché ciò facilita la traduzione degli logici in numero di pagina e scostamento. Se lo spazio degli indirizzi logici è 2 m e la dimensione di una pagina è 2 n, allora: gli m-n bit più significativi di un indirizzo logico indicano il numero di pagina, gli n bit meno significativi indicano lo scostamento. numero di pagina p m-n scostamento di pagina d n

Esempi di paginazione Frame liberi Prima dell allocazione Dopo l allocazione

Tabella dei blocchi di memoria Nella paginazione vi è una netta differenza tra memoria fisica e memoria logica: per il programma utente la memoria è un unico spazio contiguo. In realtà il programma è sparso nella memoria fisica, che contiene anche altri programmi. La differenza tra memoria fisica e memoria logica è contenuta nell architettura di traduzione degli indirizzi, che fa corrispondere indirizzi fisici e logici. Queste operazioni sono controllate dal sistema operativo, che mantiene le informazioni sull assegnazione in una tabella dei blocchi di memoria.

Architettura di paginazione Ciascun sistema operativo segue strategie differenti per memorizzare le tabelle delle pagine, sebbene in genere venga memorizzata una tabella per ciascun processo. Il descrittore di processo contiene, insieme col valore degli altri registri, un puntatore alla tabella delle pagine. All atto del cambio di contesto, il dispatcher imposta i valori corretti della tabella delle pagine fisiche, usando la tabella delle pagine relativa al processo. L architettura a supporto alla tabella delle pagine può essere realizzata in modi differenti; nel caso più semplice, si può utilizzare un insieme di registri. L efficienza dell architettura di supporto è determinante, in quanto ogni accesso alla memoria passa attraverso di essa.

Supporto alla tabella delle pagine La tabella delle pagine risiede in memoria centrale, con una tabella per ogni processo. Il registro Page Table Base Register (PTBR) punta all inizio della tabella. Il registro Page Table Length Register dimensione della tabella. (PRLR) indica la Con questo schema, ogni accesso a dati o istruzioni richiede di fatto due accessi alla memoria: uno per la tabella e uno per le istruzioni/dati.

Supporto alla tabella delle pagine Il problema dei due accessi alla memoria può essere risolto per mezzo dei registri associativi (altrimenti detti translation look aside buffer, TLB) attraverso i quali si effettua una ricerca parallela veloce su una piccola tabella. Traduzione dell indirizzo (A, A ) Se A si trova nel registro associativo, si estrae il corrispondente # di frame dal registro A ; Altrimenti, occorre un riferimento di memoria alla tabella delle pagine. # Pagina # Frame In caso di insuccesso, si possono inserire i numeri di pagina e di blocco prelevati dalla tabella nel TLB; se il TLB è già pieno, è possibile sostituire uno degli elementi presenti.

Hardware di paginazione con TLB Alcuni TLB memorizzano gli identificatori dello spazio di indirizzi (ASID), per identificare in maniera univoca ciascun processo e proteggerne lo spazio di indirizzi.

Tempo di accesso effettivo La percentuale di volte che un numero di pagina si trova nel TLB si chiama tasso di successi (hit ratio). Detti: α il tasso di successi, ε unità di tempo per la ricerca nel TLB e γ il tempo di accesso alla memoria, il tempo di accesso effettivo (EAT, Effective Access Time) è: EAT = (γ + ε) α + (2γ + ε)(1 α) Esempio: hit ratio dell 80%, ricerca nel TLB 20 µs, tempo di accesso alla memoria 100 µs, allora: EAT=(100+20)x0,80+(200+20)x 0,20 = 140 µs Con un hit ratio del 98%, si ha: EAT=(100+20)x0,98+(200+20)x 0,02 = 122 µs All aumentare del tasso di successi, il rallentamento del tempo d accesso alla memoria decresce.

Protezione della memoria La protezione della memoria è implementata associando un bit di protezione a ciascun frame. Vengono impediti accessi non autorizzati (si possono avere bit separati per lettura e scrittura). Un ulteriore bit di validità viene associato ad ogni elemento della tabella delle pagine: Un valore valido indica che la pagina è nello spazio degli indirizzi logici del processo, e quindi è una pagina legale. Un valore non valido indica che la pagina non si trova nello spazio di indirizzi logici del processo. Bit di validità in una tabella delle pagine

Paginazione a due livelli Paginazione gerarchica: quando lo spazio degli indirizzi logici è grande, la stessa tabella delle pagine viene paginata. Esempio semplice: paginazione a due livelli. Un indirizzo logico (in architetture a 32 bit con dimensione della pagina di 4KB) viene suddiviso in: un numero di pagina di 20 bit; un offset all interno della pagina di 12 bit. Dato che la tabella di paginazione è paginata, il numero di pagina viene ulteriormente suddiviso in: un numero di pagina di 10 bit; un offset di 10 bit. Un indirizzo logico è costituito da: Numero di pagina offset p 1 p 2 d 10 10 12 p 1 è un indice nella tabella esterna, e p 2 è lo spostamento all interno della pagina indicata dalla tabella esterna.

Schema di tabella delle pagine a due livelli Poiché ciascun livello viene memorizzato come una tabella separata in memoria, la traduzione di un indirizzo logico in uno fisico può richiedere tre accessi alla memoria. Anche se il tempo richiesto per un accesso alla memoria è triplicato, la presenza di cache consente di mantenere prestazioni ragionevoli.

Schema di traduzione degli indirizzi Traduzione degli indirizzi per un architettura a 32 bit con paginazione a due livelli. Poiché la traduzione degli indirizzi avviene dalla tabella esterna delle pagine verso l interno, questo metodo è noto come tabella delle pagine ad associazione diretta (Pentium II)

Tabella delle pagine di tipo hash

Tabella delle pagine invertita Un elemento della tabella per ogni frame. Gli elementi della tabella contengono l indirizzo virtuale della pagina memorizzata nel dato frame, con informazioni sul processoche possiede tale pagina. Riduzione della memoria richiesta per memorizzare ciascuna tabella delle pagine; incremento del tempo necessario per ricercare nella tabella quando si ha un riferimento a pagina. Notare che è necessario ricercare su tutta la tabella! Si impiegano tabelle hash per limitare la ricerca ad uno o al più pochi elementi della tabella. Ciascun indirizzo virtuale è formato dalla tripla: <# processo, #pagina, offset>

Pagine condivise Codice condiviso Una copia di codice a sola lettura (reentrant ) viene condivisa fra processi (ad esempio: text editor, compilatori, sistemi a finestre). Il codice condiviso deve apparire nella stessa locazione nello spazio degli indirizzi logici di tutti i processi. Codice e dati privati Ciascun processo mantiene una copia separata dei dati e del codice. Le pagine di codice e dati privati possono apparire ovunque nello spazio degli indirizzi logici.

Esempio di pagine condivise Condivisione di codice in un ambiente di paginazione: Editor contenuto in tre pagine

Segmentazione Schema di gestione della memoria che asseconda la visione utente (l utente generalmente non pensa alla memoria come ad un array lilneare di byte). Un programma è una collezione di segmenti. Un segmento è un unità logica, come ad esempio: programma principale (main), procedura, funzione, metodo, oggetto, variabili logiche, variabili globali, blocco common, stack, tabella dei simboli, matrici. il mio codice

Schema logico di segmentazione 1 1 4 2 3 4 2 3 Spazio utente Spazio fisico di memoria

Architettura per la segmentazione Gli indirizzi logici sono rappresentati da coppie: <#segmento, offset> Tabella dei segmenti mappa gli indirizzi fisici bidimensionali; ciascun elemento della tabella contiene: base indirizzo fisico iniziale della memoria contenente il segmento. limite specifica la lunghezza del segmento. Il registro Segment Table Base Register (STBR) punta alla locazione in memoria della tabella dei segmenti. Il registro Segment Table Length Register (STLR) indica il numero di segmenti utilizzati dal programma; un numero di segmento s è legale se s < STLR.

Architettura per la segmentazione Rilocazione: Dinamica, con tabella dei segmenti. Condivisione: Si ottengono segmenti condivisi, puntando allo stesso numero di segmento. Allocazione: First fit/best fit. Possibile frammentazione esterna. Protezione: Si associa a ciascun elemento della tabella dei segmenti: bit di validità = 0 segmento illegale privilegi read/write/execute Bit di protezione associati ai segmenti; la condivisione di codice viene implementata a livello di segmento. Dato che i segmenti variano di dimensione, l allocazione della memoria è dinamica.

Hardware di segmentazione

Segmentazione Esempio di segmentazione

Segmentazione Condivisione di segmenti in un sistema con memoria segmentata

Segmentazione con paginazione Intel 386 L Intel 386 impiega una segmentazione con paginazione per la gestione della memoria con uno schema di paginazione a due livelli. Schema di traduzione degli indirizzi.

Sommario Gli algoritmi di gestione della memoria per sistemi operativi multiprogrammati variano da un metodo semplice, per sistema con un singolo utente, fino alla segmentazione paginata. L architettura determina la scelta del metodo da utilizzare. Gli algoritmi di gestione analizzati (assegnazione contigua, paginazione, segmentazione con paginazione) differiscono per aspetti riguardanti: l architettura che usano, le prestazioni che producono, la frammentazione che introducono, la rilocazione che impiegano, l eventuale utilizzo dello swapping, la possibilità di condivisione del codice e dei dati, la protezione che offrono.