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

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

Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica. Corrado Santoro

Sistemi operativi e distribuiti

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

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

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

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

Gestione della memoria

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

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

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

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

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

La gerarchia delle memorie

Cognome e nome: Matricola: Posto:

Gestione Memoria. Gestione della memoria

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Corso di Informatica

GESTIONE DELLA MEMORIA CENTRALE

Il supporto al sistema operativo

Sistema operativo. Avere un architettura multi-core è un vantaggio

Sistemi Operativi 2003/2004 WINDOWS 2000

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Descrivere i vantaggi di un sistema a memoria virtuale

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

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Macchina di Riferimento: argomenti

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

La gestione della memoria. Lezione 30 Sistemi Operativi

Struttura Logica del S.O:

La gestione della memoria. Lezione 16 Sistemi Operativi

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Gestione della memoria

Sistema di protezione

Sistema operativo. Utente. Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). S.O.

Sistemi operativi e distribuiti

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

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

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Gestione della Memoria

La gestione della memoria

Gestione della memoria

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

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Il Sistema Operativo

Sistemi Operativi Gestione della Memoria (parte 1)

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

Gestione della memoria

Informatica Generale 06 - Introduzione ai Sistemi Operativi

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

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Lezione 5: Software. Firmware Sistema Operativo. Laboratorio di Informatica

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

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

INFORMATICA GENERALE. Informatica Generale

LA GESTIONE DELLA I/O

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

CPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica

Calcolo prestazioni cache (1)

Lezione4: MIPS e Istruzioni (1 Parte)

SOLUZIONI: Memoria virtuale

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

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

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

Cognome: Nome: Matricola:

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Sistemi Operativi. Principi di gestione della memoria Swapping Memoria virtuale

Università degli Studi di Padova - Corso di Laurea in Informatica

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

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 25 settembre 2008.

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

Simuliamo ora il funzionamento di LRU sulla reference string data:

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Gestione della memoria centrale

Ambienti di calcolo a griglia Parte 2. Docente: Marcello CASTELLANO

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

Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1

Sistemi Operativi. 5 Gestione della memoria

2. Nucleo del sistema operativo (la gestione dei processi)

Gestione della memoria

Sistemi Operativi Gestione della Memoria (parte 3)

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

Memory management 49

Sommario FONDAMENTI DI INFORMATICA. Sistema operativo come gestore delle risorse. Il Sistema Operativo (SO) SISTEMI OPERATIVI

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi prof. Augusto Celentano. Domande di riepilogo

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente

Calcolatori Elettronici B a.a. 2007/2008

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

Fondamenti di informatica I. Sistemi operativi II

Capitolo 14: Struttura delle memorie di massa

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Componenti di un sistema operativo

Come funzionano i computer

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

Livelli del sottosistema di I/O

Gestione della Memoria Principale

Il software: Istruzioni per il computer

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

Transcript:

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2010-11

Architettura di un sistema operativo Progr 1 Progr 2 Progr 3 Progr 4... Progr N System Call (or API Application Program Interface) CPU Scheduler Virtual Memory File System Other Services Device Driver Services Device Driver Device Driver... Device Driver HARDWARE Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 2

Gestione della memoria Ogni programma in esecuzione usa una certa quantità di memoria Ogni programma in esecuzione deve possedere la sua memoria La totalità della memoria fisica deve essere opportunamente spezzettata tra i vari programmi in esecuzione Cosa accade se un programma richiede una memoria maggiore di quella a lui assegnata? Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 3

Gestione della memoria Compito del sistema operativo è virtualizzare la memoria fisica allo scopo di offrire, ad ogni programma in esecuzione un proprio spazio di indirizzamento contiguo e privato Processo 1... Processo N Virt. CPU 1 Virt. Mem 1... Virt. CPU N Virt. Mem N OS CPU Memory Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 4

Tecniche di gestione della memoria Allocazione contigua Molto semplice Poco efficiente Costosa dal punto di vista computazionale Paginazione Più complessa Molto efficiente Poco costosa computazionalmente Supportata da hardware specifico Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 5

Allocazione contigua In funzione delle esigenze dei processi, il sistema operativo suddivide la memoria centrale e ne assegna una partizione ad ogni processo Il sistema operativo tiene traccia: delle zone di memoria assegnate dei processi a cui ha assegnato ogni zona delle zone di memoria libere Processo 1 Processo 2 Processo N OS Memory Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 6

Allocazione contigua La memoria è quindi bucherellata in zone contigue assegnate ai processi zone libere (buchi) La zona di memoria fisica assegnata ad un processo è stabilita a runtime Quindi per ogni esecuzione dello stesso programma, la zona di memoria assegnata può cambiare Processo 1 Processo 2 Processo N OS Memory Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 7

Allocazione contigua parte parte parte e terminano riparte Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 8

Frammentazione Man mano che i processi terminano, la memoria da loro usata viene liberata Tuttavia rimane un buco (di dimensioni N) che può essere occupato solo da un processo di dimensioni <= N Con l'andare del tempo, si creano molti buchi piccoli Si arriva al paradosso: Processo di dimensioni K Tanti buchi di dimensione Ni < K Il processo non può essere caricato nonostante: Σ N i > K Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 9

Frammentazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 10

Frammentazione: Compattazione Altamente costosa: Si devono spostare grossi blocchi di memoria Si devono rilocare nuovamente i processi presenti nei spostati Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 11

Crescita della memoria occupata Cosa accade se, durante la sua esecuzione, dovesse avere bisogno di una quantità di memoria maggiore? Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 12

Indirizzamento virtuale 02FF 0300 Ogni programma può essere caricato in qualunque posizione in memoria 0FFF 02FF 08FF 04FF 0BFF 0C00 10FF 1100 20FF Il modo con cui un processo vede la memoria deve essere indipendente dalla sua posizione Il processo vede degli indirizzi logici/virtuali non fisici Vi è un mapping 1:1 tra l'intero spazio logico/virtuale del processo e l'intero blocco di memoria fisica assegnato Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 13

Verso il paging (paginazione) 0FFF 02FF 08FF 02FF 0300 0BFF 0C00 10FF 1100 20FF Ora supponiamo di suddividere lo spazio logico e fisico in blocchetti di dimensione fissa... mantenendo lo stesso tipo di mapping tra blocco logico e blocco fisico 04FF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 14

Verso il paging (paginazione) 0FFF 02FF 08FF 04FF Ora supponiamo di poter effettuare il mapping tra i singoli blocchetti e non più tra i blocchi di memoria interi I blocchetti di memoria fisica non devono più essere contigui Si eliminano i problemi di allocazione e frammentazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 15

Va via... 0FFF 02FF Liberiamo 7 blocchettini 04FF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 16

Va via... 0FFF Liberiamo altri 3 blocchettini 04FF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 17

Arriva un'altra istanza di... 0FFF 0FFF ' Ci servono 8 blocchettini, ma non è necessario che siano contigui Non si è resa necessaria la compattazione 04FF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 18

' cresce... 0FFF '... e vorrebbe un altro po' di memoria... gli assegnamo un altro blocchettino che prima era libero 04FF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 19

Il paging (paginazione) Ogni blocchetto è denominato pagina La pagina ha una dimensione prefissata (una potenza del 2) In genere è 4 Kbytes = 4096 bytes = 2 12 La CPU, tramite la MMU (Memory Management Unit) che conosce il mapping delle pagine, traduce gli indirizzi logici in indirizzi fisici Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 20

Memory Management Unit 0FFF 1000 1FFF 2000 2380 2FFF 3000 Logical Address MMU Physical Address 3380 3FFF 4000 CPU 4FFF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 21

Demand Page Adesso abbiamo il controllo dello spazio di indirizzi a livello di pagina Tuttavia quando un processo gira esegue le istruzioni contenute in una pagina specifica...... con l'andare avanti dell'esecuzione, si passa ad eseguire il codice della pagina successiva, etc. etc. IN DEFINITIVA, AL PROCESSO SERVE UNA PAGINA PER VOLTA ALLORA SE ABBIAMO NECESSITA' DI MEMORIA, E NON C'E' PIU' SPAZIO, POSSIAMO MOMENTANEAMENTE TOGLIERE AD UN PROCESSO LE PAGINE CHE NON STA USANDO Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 22

Demand Page 0FFF 1000 1FFF 2000 2FFF 3000 Il Il processo processo sta sta eseguendo eseguendo il il codice codice presente presente nella nella pagina pagina (logica) (logica) 2 2 che che è è mappata mappata nella nella pagina pagina (fisica) (fisica) 3 3 3FFF 4000 4FFF Le Le altre altre pagine pagine del del processo processo NON NON SONO SONO PRESENTI PRESENTI IN IN MEMORIA MEMORIA FISICA FISICA Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 23

Demand Page 0FFF 1000 1FFF 2000 2FFF 3000 3FFF 4000 4FFF Il Il processo processo dovrebbe dovrebbe proseguire proseguire con con il il codice codice presente presente nella nella pagina pagina (logica) (logica) 3 3 che che NON NON E' E' PRESENTE PRESENTE IN IN MEMORIA MEMORIA Avviene Avviene un un evento evento denominato denominato PAGE PAGE FAULT FAULT che che attiva attiva l'esecuzione l'esecuzione del del sistema sistema operativo operativo Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 24

Demand Page 0FFF 1000 1FFF 2000 Il Il sistema sistema operativo operativo sceglie sceglie una una pagina pagina di di memoria memoria fisica fisica libera libera...... 2FFF 3000 3FFF 4000 4FFF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 25

Demand Page 0FFF 1000 1FFF 2000...... e e carica carica dal dal disco disco la la pagina pagina del del processo processo che che occorre occorre eseguire eseguire 2FFF 3000 3FFF 4000 4FFF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 26

Demand Page 0FFF 1000 1FFF 2000 La La page page table table viene viene aggiornata aggiornata inserendo inserendo questo questo nuovo nuovo mapping mapping e e l'esecuzione l'esecuzione può può proseguire proseguire 2FFF 3000 3FFF 4000 4FFF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 27

Infine... Quando occorre caricare una pagina da disco... Se ci sono pagine fisiche libere, allora nessun problema Ma se tutta la memoria è occupata? Occorre scaricare una pagina Si sceglie una pagina occupata la si toglie al processo proprietario la si assegna al nuovo processo Quali pagine sono candidate? Ovviamente quelle dei processi in WAIT E poi le altre... Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 28

Conclusioni Il paging è la soluzione ottimale per la gestione della memoria Si basa sul suddividere la memoria logica e fisica in pagine di dimensione fissata Un componente della CPU, la MMU (Memory Management Unit) traduce l'indirizzo virtuale in indirizzo fisico Grazie alla MMU, non tutte le pagine devono essere caricate in memoria, ma solo quelle utili al momento Se serve memoria, una pagina non usata da tempo può essere scaricata su disco per liberare memoria Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 29