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

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

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

Sistemi operativi e distribuiti

Memoria virtuale. Daniele Loiacono, Vittorio Zaccaria

Astrazione. Gestore della memoria. La rilocabilità del codice. Gestore della memoria

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

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi. Bruschi Martignoni Monga. Gestione della memoria. Sistemi multiprogrammati. Partizioni fisse Partizioni variabili Paginazione

Il sistema operativo

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

IL SISTEMA OPERATIVO

Capitolo 8 - Silberschatz

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

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

La gerarchia delle memorie

Corso di Architettura (Prof. Scarano) 10/05/2002

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

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

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

Gestione della memoria

Sistema Operativo - Gestione della Memoria lista argomenti di studio

Gestione della Memoria

La gestione della memoria. Lezione 5 Sistemi Operativi

La gestione della memoria. Lezione 30 Sistemi Operativi

La gestione della memoria. Lezione 16 Sistemi Operativi

Capitolo 4 Gestione della Memoria

Il sistema operativo

Cognome e nome: Matricola: Posto:

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

Gestione della Memoria Principale

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

Macchina di Riferimento: argomenti

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

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

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

GESTIONE DELLA MEMORIA CENTRALE

Corso di Informatica

Gestione della memoria centrale. Capitolo 8 - Silberschatz

Modulo 7: Gestione della Memoria

Obiettivo. Gestione della memoria. Inoltre. Sistemi monoprogrammati. Sistemi monoprogrammati. Sistemi monoprogrammati 07/06/2012

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

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

Gestione della memoria

Laboratorio di Informatica (Chimica)

Cognome e nome: Matricola: Posto: Regole dell'esame.

Concetti Generali sulla Gestione della memoria

Gestione Memoria. Gestione della memoria

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

Il Sistema Operativo Ripasso

memoria virtuale protezione

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

Cenni di sistemi operativi

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Gestione della memoria

SOLUZIONI: Memoria virtuale

1.7: Spazio degli Indirizzi di un Processo

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

Il supporto al sistema operativo

Introduzione all Informatica. Alfredo Cuzzocrea. Sistema Operativo

La gestione della memoria. Lezione 9 Sistemi Operativi

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

Sistemi Operativi. Principi di gestione della memoria Swapping Memoria virtuale

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

Istruzioni e linguaggio macchina

Calcolo prestazioni cache (1)

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

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

Architettura dei sistemi di elaborazione (Input/Output parte 1)

3.3 Memoria virtuale Generalità. 3.3 Memoria virtuale Spazi di indirizzamento Memoria virtuale Spazi di indirizzamento - 2

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

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione XII: La gestione delle eccezioni in MINIX

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

Sistemi Operativi Gestione della Memoria (parte 1)

correttezza e precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; riservatezza dei dati; interoperabilità fra

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

Sommario FONDAMENTI DI INFORMATICA. Schema dell'architettura a livelli del SO. Il Sistema Operativo (SO) SISTEMI OPERATIVI

Sistemi Operativi 1. Mattia Monga. 3 giugno Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

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

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

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

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

La Memoria Virtuale Valeria Cardellini

Sistemi Operativi Da Unix a GNU/Linux (parte 2)

Sistemi Operativi 2003/2004 WINDOWS 2000

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

Parte III: Gestione della Memoria

static dynamic random access memory

Abilità Informa/che. capitolo 3. Prof. Fabio Calefato a.a Giurisprudenza

Memoria Virtuale. Alessandro A. Nacci ACSO 2014/2014

Esercizi sulle prestazioni delle memorie cache

Architettura dei Sistemi Informatici

Informatica giuridica

Transcript:

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2008-09

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 P3 parte parte e P3 terminano riparte P3 P3 P3 Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 8

Memoria e Indirizzi Ogni volta che uno stesso programma viene avviato, occuperà/utilizzerà zone di memoria diverse Tuttavia un programma usa dei riferimenti alla memoria: indirizzi numerici Allora, se la memoria assegnata cambia ad ogni esecuzione...... gli indirizzi da usare devono cambiare ad ogni esecuzione Tuttavia gli indirizzi che il programma usa sono scritti nel codice macchina generato dal compilatore Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 9

Loading e Relocation Il compilatore genera un eseguibile in cui i riferimenti agli indirizzi non sono assoluti ma relativi Il sistema operativo, quando carica il programma, gli assegna una zona di memoria che parte da un certo indirizzo: base_address Il sistema operativo modifica il codice del programma caricato aggiungendo il base_address ad ogni riferimento in memoria: (LOAD TIME-)RELOCATION, RILOCAZIONE Gli indirizzi vengono quindi trasformati da relativi ad assoluti Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 10

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 11

Frammentazione P3 P3 P4 P4 P4 P3 P4 Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 12

Frammentazione: Compattazione P3 P3 P4 P4 P4 P4 P3 P4 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 13

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

Problemi da risolvere Rilocazione a load-time (caricamento del programma) Rilocazione a run-time (per compattazione blocchi) Alto costo della compattazione Frammentazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 15

Gli indirizzi virtuali Abbiamo imparato che i programmi usano indirizzi (riferimenti) assoluti (diretti) alla memoria principale STORE 035CH: memorizza un valore nell'indirizzo di memoria 035C esadecimale Tuttavia sono proprio gli indirizzi assoluti che provocano i problemi di rilocazione Allora... inventiamoci un nuovo modello di indirizzamento che non necessita la rilocazione SOLUZIONE: indirizzi indipendenti dall'effettiva zona di memoria assegnata al processo Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 16

Gli indirizzi virtuali Il processo usa indirizzi virtuali, indipendenti dalla memoria fisica assegnata, che non cambiano mai Es: STORE 005CH Al momento del caricamento del programma, viene assegnato il blocco di memoria e impostato il base_address in un registro speciale della CPU (es. blocco che inizia all'indirizzo 0400H) Quando il programma fa riferimento ad un indirizzo, la CPU automaticamente somma il base_address e ottiene l'indirizzo fisico STORE 005CH Logical (virtual) Address 005CH CPU 045CH 0400 045C Physical Address Base Address 0400H Memory Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 17

Gli indirizzi virtuali Ogni volta che il programma viene caricato, non è necessario rilocarlo ma è sufficiente impostare opportunamente il base_address Analogamente, se occorre compattare la memoria, è sufficiente aggiornare il base_address e non è necessario eseguire la rilocazione del programma 0400 STORE 005CH Logical (virtual) Address 005CH CPU 055CH Physical Address 0500 055C Base Address 0500H Memory Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 18

Gli indirizzi virtuali Con questo meccanismo è possibile garantire anche la privatezza Cioè che ogni processo non possa accedere allo spazio di memoria di un altro processo I processi NON USANO indirizzi fisici, quindi sono vincolati solo al proprio spazio di indirizzamento Un ulteriore registro speciale, denominato limit, memorizza la dimensione del blocco di memoria assegnato al processo Se l'indirizzo fisico generato è > base_address + limit, il programma viene arrestato STORE 005CH Logical (virtual) Address 005CH CPU 045CH 0400 045C Physical Address 1400 Base Address 0400H Limit 1000H Memory Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 19

Indirizzi virtuali e processi Il base address e il limit sono informazioni dipendenti dal processo Ogni processo ha i suoi base address e limit Lo scheduler, quando effettua il context switch, deve anche aggiornare i registri speciali della CPU con i nuovi valori di base address e limit Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 20

Problemi da risolvere Rilocazione a load-time (caricamento del programma) Rilocazione a run-time (per compattazione blocchi) Privatezza dei blocchi di memoria Alto costo della compattazione Frammentazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 21

Indirizzi virtuali vs. fisici 0FFF 02FF 02FF 0300 0BFF 0C00 10FF 1100 P3 P4 Vi è un mapping 1:1 tra l'intero spazio logico/virtuale del processo e l'intero blocco di memoria fisica assegnato P3 08FF 20FF 04FF P4 Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 22

Verso il paging (zione) 0FFF 02FF 08FF P3 02FF 0300 0BFF 0C00 10FF 1100 20FF P3 P4 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 P4 Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 23

Verso il paging (zione) 0FFF 02FF 08FF 04FF P3 P4 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 rilocazione a run-time e frammentazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 24

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

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

Arriva un'altra istanza di... 0FFF 0FFF 04FF ' P4 Ci servono 8 blocchettini, ma non è necessario che siano contigui Non si sono rese necessarie né la rilocazione né la compattazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 27

' cresce... 0FFF 04FF ' P4... e vorrebbe un altro po' di memoria... gli assegnamo un altro blocchettino che prima era libero Non si sono rese necessarie né la rilocazione né la compattazione Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 28

(Quasi) tutto risolto! Rilocazione a load-time (caricamento del programma) Rilocazione a run-time (per compattazione blocchi) Privatezza dei blocchi di memoria Alto costo della compattazione Frammentazione Cosa sono questi blocchetti? Serve un meccanismo di mapping degli indirizzi (da logico a fisico) che tenga conto dei blocchetti Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 29

Il paging (zione) Ogni blocchetto è denominato La ha una dimensione prefissata (una potenza del 2) In genere è 4 Kbytes = 4096 bytes = 2 12 L'indirizzo logico/virtuale VADR viene suddiviso in due parti: Numero logica, NLP = int (VADR / 4096) Offset (displacement), D = VADR mod 4096 La CPU (in realtà un componente specifico della CPU) traduce il NLP in numero di fisica, NPP, in base alla corrispondenza tra blocchetto logico e blocchetto fisico La CPU genera l'indirizzo fisico PADR combinando NPP e D PADR = NPP * 4096 + D Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 30

Paging 0FFF 1000 2380H div 1000H = 2 2380H mod 1000H = 380H 1FFF 2000 2380 2FFF 3000 3FFF 4000 2 --> 3 PADR = 3380H La La logica logica 2 2 del del processo processo è è mappata mappata nella nella fisica fisica 3 3 3380 4FFF Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 31

Paging 0FFF 1000 1FFF 2000 2380 2FFF 3000 3FFF 4000 4FFF 12 bit 001000111000 NLP Offset 0010 00111000 0011 NPP Offset 00111000 001100111000 La La logica logica 2 2 del del processo processo è è mappata mappata nella nella fisica fisica 3 3 3380 Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 32

Paging 0FFF 1000 1FFF 2000 2380 2FFF 3000 3FFF 4000 4FFF 12 bit 001000111000 NLP Offset 0010 00111000 0011 NPP Offset 00111000 001100111000 La La logica logica 2 2 del del processo processo è è mappata mappata nella nella fisica fisica 3 3 3380 Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 33

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 34

Memory Management Unit 0FFF 1000 Logical Address 001000111000 1FFF 2000 2380 2FFF 3000 3FFF 4000 Logical Page 0100 0001 1100 0010 0011 0011 0001 0100 1110... Physical Page PAGE TABLE Physical Address 3380 4FFF 001100111000 MMU CPU Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 35

Paging: riassunto Gli spazi di indirizzamento logico e fisico sono suddivisi in pagine di dimensioni prefissate (potenze del 2) Il processo deve leggere o scrivere una cella di memoria La CPU riceve un indirizzo logico e lo passa alla MMU La MMU separa numero di logica e offset tramite la tabella delle pagine, trasforma il numero di logica in numero di fisica accoda l'offset e genera l'indirizzo fisico L'indirizzo fisico viene generato sul bus e l'operazione di lettura/scrittura viene infine eseguita Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 36

Demand Page Adesso abbiamo il controllo dello spazio di indirizzi a livello di Tuttavia quando un processo gira esegue le istruzioni contenute in una specifica...... con l'andare avanti dell'esecuzione, si passa ad eseguire il codice della 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 37

Demand Page 0FFF 1000 1FFF 2000 2FFF 3000 Il Il processo processo sta sta eseguendo eseguendo il il codice codice presente presente nella nella (logica) (logica) 2 2 che che è è mappata mappata nella nella (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 38

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 (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 39

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

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

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 42

Memory Management Unit 0FFF 1000 Logical Address 001000111000 1FFF 2000 2380 2FFF 3000 3FFF 4000 Logical Page 0001 0010 0011 0011 0001 0100... Physical Page Presence Bit PAGE TABLE 0 0 1 1 0 Physical Address 3380 4FFF CPU 001100111000 MMU Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 43

Infine... Quando occorre caricare una da disco... Se ci sono pagine fisiche libere, allora nessun problema Ma se tutta la memoria è occupata? Occorre scaricare una Si sceglie una 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 44

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 tramite la page table La page table riporta la corrispondenza tra logica e fisica Grazie alla MMU, non tutte le pagine devono essere caricate in memoria, ma solo quelle utili al momento La page table possiede un bit presente/assente che indica se la è presente o meno in memoria Corrado Santoro, Informatica, Introduzione ai Sistemi Operativi, Memoria Virtuale 45