GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

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

Gestione della memoria

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Sistemi operativi e distribuiti

Gestione Memoria. Gestione della memoria

Gestione della memoria

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

GESTIONE DELLA MEMORIA CENTRALE

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems

Nei sistemi moderni si usano sistemi di avvicendamento sofisticati al fine di garantire ad ogni processo quanti di esecuzione considerevoli.

La gestione della memoria. Lezione 16 Sistemi Operativi

Gestione della Memoria

Gestione della memoria

Il supporto al sistema operativo

Gestione della memoria principale

Sistemi Operativi (modulo di Informatica II)

SISTEMI OPERATIVI. Gestione della memoria centrale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Sistemi Operativi Gestione della Memoria (parte 1)

Gestione della memoria

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

Gestione della memoria

SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.

Registri della CPU. Memoria Centrale. Memoria di Massa. Memorie di altri sistemi in rete

Parte 3: Meccanismi di Gestione della Memoria. Parte 3: Meccanismi di Gestione della Memoria. Gerarchia di Memorie

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

Corso di Informatica

Reti e problematiche di Rete

Gestione della Memoria Principale

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

La gerarchia delle memorie

Gestione della memoria

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

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica

La gestione della memoria. Lezione 30 Sistemi Operativi

Gestione della Memoria Principale

Sistemi Operativi (modulo di Informatica II)

Trasparenze del Corso di Sistemi Operativi

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

Sistema Operativo - Gestione della Memoria lista argomenti di studio

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica

Sistemi Operativi. Principi di gestione della memoria Swapping Memoria virtuale

Sistemi Operativi. La gestione delle risorse

La gestione della memoria

Cognome e nome: Matricola: Posto:

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

Docente Prò Giuseppe - Corso PENTEST MIND PROJECT A cura di Prò Giuseppe

Gestione della Memoria

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Capitolo 10: Memoria virtuale

Il Gestore della Memoria. Tecnica a Partizioni Fisse e a Partizioni Variabili

Gestione della memoria principale

Gestione della Memoria

I Sistemi Operativi. Prof.ssa Antonella Serra

Processi e memoria. Ges&one della memoria. Rilocazione. Indirizzi. Rilocazione e protezione. Memory Management Unit (MMU)

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale

Fallimenti nella TLB

Gestione della Memoria. Sistemi Operativi T AA

Struttura interna del Sistema Operativo. 3. La gestione della memoria virtuale

Veloce e cara. Lenta e economica. I livelli di memoria. E il supporto del calcolatore per conservare dati e istruzioni (programmi) La memoria centrale

Sistemi Operativi. Modulo 7: Gestione della memoria

Capitolo 9: Memoria centrale

Il concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale

Struttura Logica del S.O:

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Simuliamo ora il funzionamento di LRU sulla reference string data:

SOLUZIONI: Memoria virtuale

Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

Realizzazione del file system. Fabio Buttussi HCI Lab Dipart. Di Matematica ed Informatica Università degli studi di Udine

Introduzione alle gerarchie di memoria

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Sistema Operativo - Gestione della Memoria per moderne CPU. Address Binding Dinamico in esecuzione mediante Segmentazione, Paginazione e Memoria

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

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

Parte III: Gestione della Memoria. 8 Memoria Centrale ( gestione della ) 8.1. Introduzione. Memoria Centrale (cap. 8) Memoria Virtuale (cap.

Memoria secondaria. Fabio Buttussi HCI Lab Dept. of Math and Computer Science University of Udine ITALY

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame

Il memory manager. Gestione della memoria centrale

USO DELLA GERARCHIA. FONDAMENTI DI INFORMATICA Lezione n. 14 POLITICHE DI SOSTITUZIONE DIMENSIONE DEL BLOCCO THRASHING POLITICA DI ALLOCAZIONE

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Il Sistema Operativo Gestione del File System

Sistemi Operativi Esercizi Gestione Memoria

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Il file system. Il File System. Attributi del file. File

Si può simulare una struttura di directory a multilivelli con una struttura di directory a singolo livello?"

Sistemi operativi e distribuiti

Descrivere i vantaggi di un sistema a memoria virtuale

GESTIONE DELLA MEMORIA CENTRALE

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Gestione del file system. Astrazione di File System. Attributi del file. File

Memoria Virtuale. Considerazioni sulla paginazione e segmentazione

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

C1. MEMORIA CENTRALE Memoria Ampio vettore di parole o byte. Vede soltanto un flusso di indirizzi di memoria e non sa come questi sono generati.

Sistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma

Transcript:

GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2

Background Per essere eseguito un programma deve trovarsi (almeno parzialmente) in memoria centrale. La gestione della memoria centrale dipende dalle funzionalità dell hardware disponibile. I programmi che risiedono sul disco devono essere trasferiti in memoria centrale tramite la coda di input. Coda di input : l insieme dei processi residenti su disco che attendono di essere trasferiti e eseguiti. I programmi utente possono attraversare diversi stadi prima di venire eseguiti. 6.3 Stadi di un programma utente 6.4

Associazione di istruzioni e dati alla memoria L associazione (Address binding) di istruzioni e dati alla memoria può avvenire in momenti diversi : Compilazione: se la locazione di memoria è conosciuta a priori possono essere generati indirizzi assoluti. La ricompilazione è necessaria quando la locazione di partenza cambia. Caricamento: se la locazione di memoria non è conosciuta a priori si genera codice rilocabile (al variare dell indirizzo iniziale). Esecuzione: se il processo può essere spostato, l associazione viene ritardata al momento dell esecuzione. Necessario hardware specializzato (es: registri base e limite). 6.5 Indirizzi fisici e indirizzi logici Il concetto di spazio di indirizzi logici che è legato allo spazio degli indirizzi fisici è molto importante nella gestione della memoria centrale. Indirizzo logico : generato dalla CPU (indirizzo virtuale). Indirizzo fisico : visto dall unità di memoria. Gli indirizzi logici e gli indirizzi fisici sono uguali nella compilazione e nel caricamento. Durante l esecuzione gli indirizzi logici sono detti virtuali e differiscono dagli indirizzi fisici. 6.6

Memory-Management Unit (MMU) C è bisogno di un mapping a tempo di esecuzione. MMU: dispositivo hardware che associa indirizzi virtuali a indirizzi fisici. Nello schema della MMU, il valore del registro di rilocazione viene aggiunto ad ogni indirizzo generato dal processo utente quando viene portato in memoria. Il programma utente lavora con indirizzi logici e non conosce mai gli indirizzi fisici dove sono realmente allocati i propri dati e il proprio codice. 6.7 Rilocazione dinamica con registro di rilocazione 6.8

Caricamento dinamico Le routine (procedure, metodi) vengono caricate quando sono chiamate (se non sono già in memoria). Loader di caricamento rilocabile. Migliore uso dello spazio di memoria; le routine mai usate non vengono mai caricate in memoria centrale. Utile quando molta parte del codice è usata raramente. Nessun speciale supporto del S.O. In alcuni casi esistono librerie per il caricamento dinamico. 6.9 Collegamento dinamico Collegamento ritardato fino al momento dell esecuzione. Codice stub, usato per localizzare (in memoria o sul disco) la routine di sistema richiesta. Lo stub si sostituisce con l indirizzo della routine che verrà eseguita. Il sistema operativo permette l utilizzo delle routine a più processi. Utile per le librerie di sistema. 6.10

Overlay La tecnica dell overlay è usata per eseguire processi che non entrano in memoria. Tiene in memoria solo i dati e le istruzioni usati spesso. Quando servono altri dati/istruzioni si caricano al posto di quelli meno usati. Implementato dagli utenti su sistemi con hardware che non permette di realizzare tecniche migliori. Complesso da realizzare. 6.11 Overlay per un assembler a due passi 6.12

Swapping Un processo può essere temporaneamente riportato (swapped) su disco (backing store) e quindi riportato in memoria al momento di riprendere l esecuzione. Roll out, roll in : indicano le operazioni di swapping usate per algoritmi di scheduling basati su priorità quando un processo a più bassa priorità viene rimosso dalla memoria per far posto al processo con alta priorità. La maggior parte del tempo di swap è tempo di trasferimento e il tempo totale è proporzionale alla dimensione dell area di memoria sottoposta a swap. Versioni modificate di tecniche di swapping sono disponibili su molti sistemi operativi: UNIX, Linux, and Windows. 6.13 Swapping tra due processi ms = 1MB V = 4MBs t = 1 MB/ 4 MBs = 1/4 sec = 250 msec T = 2t = 500 msec 6.14

Allocazione Contigua La memoria centrale è usualmente divisa in due partizioni: Partizione del sistema operativo. Partizione per i processi utente. Allocazione con partizione singola Registro di rilocazione è usato per proteggere i processi utente tra loro e il sistema operativo dai processi utente. Registro di rilocazione contiene l indirizzo fisico più piccolo e il registro limite contiene l intervallo degli indirizzi logici: ogni indirizzo logico deve essere minore del registro limite. 6.15 Supporto hardware per rilocazione e registro limite 6.16

Allocazione Contigua Allocazione con partizioni multiple Buco : blocco di memoria disponibile; buchi di dimensione diverse sono distribuiti nella memoria. Quando un processo arriva viene allocato una partizione di memoria disponibile (buco) abbastanza grande per contenerlo. Il sistema operativo mantiene informazioni su: a) partizioni allocate e b) partizioni libere (buchi) SO SO SO SO processo 5 processo 5 processo 5 processo 5 processo 9 processo 9 processo 8 processo 10 processo 2 processo 2 processo 2 processo 2 6.17 Allocazione dinamica Come soddisfare una richiesta di dimensione n data una lista di buchi liberi? First-fit: Alloca il primo buco libero sufficiente. Best-fit: Alloca il più piccolo buco libero sufficiente; ricerca sull intera lista e produce i più piccoli buchi inutilizzati. Worst-fit: Alloca il più grande buco; ricerca sull intera lista e produce i più grandi buchi inutilizzati (ma più utili). Simulazione: First-fit e Best-fit sono migliori del Worst-fit in termini di velocità e uso di memoria. 6.18

Problema della Frammentazione Frammentazione Esterna esiste uno spazio totale di memoria disponibile per soddisfare una richiesta ma non è contiguo. Frammentazione Interna la memoria allocata può essere un po più grande di quella richiesta; la parte in eccesso è interna alla partizione ma non è usata. La compattazione riduce la frammentazione esterna: La memoria libera viene compattata in un unico blocco spostando i blocchi usati. La compattazione è possibile solo se la rilocazione è dinamica a tempo di esecuzione. Metodi semplici richiedono tempi più lunghi. 6.19 Allocazione non contigua: Paginazione Lo spazio degli indirizzi logici di un processo possono essere non contigui; la memoria da allocare è presa da dove essa è disponibile. PAGINAZIONE La memoria fisica è divisa in blocchi di dimensione fissa chiamati frame (la dimensione è una potenza di 2, tra 512 e 8192 byte). La memoria logica è divisa in blocchi di dimensione fissa chiamati pagine. 6.20

Allocazione non contigua: Paginazione Si tiene traccia di tutti frame liberi. Per eseguire un programma che richiede n pagine, bisogna trovare n frame liberi. Esiste una tabella delle pagine che contiene l indirizzo iniziale di ogni pagina nella memoria fisica. Si evita la frammentazione esterna. Si può avere frammentazione interna. 6.21 Schema di traduzione degli indirizzi Un indirizzo generato dalla CPU è diviso in: Numero di pagina (p) usato come un indice nella tabella delle pagine che contiene l indirizzo di base di ogni pagina in memoria fisica. Offset di pagina (d) usato insieme all indirizzo base per definire l indirizzo fisico di memoria da inviare alla unità di memoria. 6.22

Architettura di traduzione degli indirizzi 6.23 Esempio di paginazione 6.24

Esempio di paginazione Ogni pagina è composta da 4 byte e la memoria è composta da 32 byte 6.25 Frame liberi Prima dell allocazione Dopo l allocazione 6.26

Implementazione della tabella delle pagine La tabella delle pagine sta in memoria centrale. Il Page-table base register (PTBR) punta alla tabella. Il Page-table length register (PRLR) indica la dimensione della tabella. Con questo schema l accesso a dati/istruzioni richiede due accessi alla memoria. Prima alla tabella e poi in memoria. Si può risolvere usando una cache hardware detta memoria associativa. 6.27 Memoria Associativa Memoria associativa ricerca parallela Pagina # Frame # Traduzione di indirizzo (A, A ) Se A è un registro associativo, si ottiene il numero di frame. Altrimenti si ottiene il numero di frame dalla tabella delle pagine e occorre fare un riferimento alla tabella. 6.28

Paginazione hardware con memoria associativa 6.29 Tempo di accesso effettivo Lookup Associativo (la) - tempo di accesso alla memoria associativa. Hit ratio (hr) percentuale di volte che un numero di pagina è trovato nei registri associativi; rapporto correlato al numero dei registri. Tempo di accesso effettivo TAE = hr x (la+tm) + (1-hr) x (la+2tm) = 0.9 x (20+100) +0.1 x (20+200) = 130 nsec 6.30

Protezione della memoria La protezione della memoria è implementata associando un bit di protezione ad ogni frame. Il bit associato ad ogni entry nella tabella delle pagine: valido indica che la pagina associata è nello spazio degli indirizzi del processo, e così è una pagina legale. non valido indica che la pagina associata non è nello spazio degli indirizzi del processo. 6.31 Bit Valid (v) o Non valido (i) 6.32

Struttura della tabella Paginazione Gerarchica Si divide lo spazio degli indirizzi logici in più tabelle Una tecnica semplice è basata sull uso una tabella a due livelli. Tabella delle pagine invertita 6.33 Esempio di tabella a due livelli Un indirizzo logico (su una macchina a 32 bit con pagine di 4KB) è divisa in: un numero di pagina di 20 bit. un offset di pagina di 12 bit. Poiché la tabella delle pagine è composta a sua volta da più pagine, il numero di pagina è diviso da: un numero di pagina di 10 bit. un offset di pagina di 10 bit. Così un indirizzo logico sarà composto come : Numero di pagina offset di pagina p 1 p 2 d 10 10 12 dove p 1 è un indice nella tabella esterna, e p 2 è lo spiazzamento nella tabella interna. 6.34

Schema di traduzione degli indirizzi Schema di traduzione degli indirizzi per un architettura di paginazione a due livelli. 6.35 Schema di tabella a due livelli 6.36

Tabella delle pagine invertita Usando questo schema la tabella delle pagine contiene una entry per ogni pagina reale in memoria. Ogni entry consiste dell indirizzo virtuale della pagina e dell identificatore del processo che possiede quella pagina. Diminuisce la memoria necessaria per memorizzare le tabelle delle pagine, ma aumenta il tempo per cercare la tabella quando viene fatto un riferimento ad una pagina. Si può usare una tabella hash per limitare la ricerca a poche entry della tabella delle pagine. 6.37 Tabella delle pagine invertita 6.38

Pagine condivise Usando la paginazione si può condividere codice comune. Codice condiviso Una singola copia di codice a sola lettura (rientrante) code condivisa tra i processi (i.e., text editor, compilatore, browser). Il codice condiviso deve apparire nella stessa locazione nello spazio degli indirizzi logici di tutti i processi. Codice privato e dati Ogni processo mantiene una copia del codice privato e dei dati. Le pagine possono stare in uno qualunque degli indirizzi logici. 6.39 Esempio di pagine condivise 6.40

Domande A cosa serve la tecnica dell overlay? Descrivere quando accade di avere frammentazione interna e/o frammentazione esterna. Quali sono le motivazioni principali per la paginazione? Discutere i pro e i contro del metodo worst-fit anche rispetto agli altri metodi. Quando serve usare la tabella delle pagine invertita? 6.41