Il memory manager. Gestione della memoria centrale



Documenti analoghi
Sistema operativo: Gestione della memoria

Gestione della Memoria

Sistemi Operativi. 5 Gestione della memoria

Varie tipologie di memoria

Gestione della memoria centrale

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

La Gestione delle risorse Renato Agati

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

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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

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

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il Software. Il software del PC. Il BIOS

PARTE 4 La Macchina Software

Il Sistema Operativo

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

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Corso di Sistemi di Elaborazione delle informazioni

Architettura hardware

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

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

Architettura dei computer

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

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

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Sistemi Operativi. 8 LEZIONE MEMORIA CENTRALE 1 PARTE CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

STRUTTURE DEI SISTEMI DI CALCOLO

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

INFORMATICA 1 L. Mezzalira

Gestione del processore e dei processi

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

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

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

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Lo schedulatore del kernel

1.4b: Hardware. (Memoria Centrale)

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

La gestione della memoria

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

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

Cosa è un foglio elettronico

Informazione analogica e digitale

Gestione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale

Introduzione ai Sistemi Operativi

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

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Sistemi operativi. Esempi di sistemi operativi

GESTIONE DELLA MEMORIA CENTRALE

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

Rappresentazione delle informazioni

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

La memoria centrale (RAM)

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 processi Unix. Entry della tabella dei processi

Laboratorio di Informatica

FONDAMENTI di INFORMATICA L. Mezzalira

C. P. U. MEMORIA CENTRALE

SISTEMI DI NUMERAZIONE E CODICI

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Capitolo Silberschatz

Architettura dei calcolatori II parte Memorie

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

4 3 4 = 4 x x x 10 0 aaa

Processi e Thread. Scheduling (Schedulazione)

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella

Sistemi Operativi Kernel

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Laboratorio di Informatica

CPU. Maurizio Palesi

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

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Architettura del calcolatore

Un sistema operativo è un insieme di programmi che consentono ad un utente di

FoLUG Forlì Linux User Group. Partizionamento

Fasi di creazione di un programma

Gestione della memoria

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!!

8.9 CREARE UNA TABELLA PIVOT

Struttura del calcolatore

Approccio stratificato

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

Sistemi Operativi (modulo di Informatica II) I processi

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

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

Alessandro Pellegrini

Transcript:

Il memory manager Gestione della memoria centrale

La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda della architettura del calcolatore. Il vettore in figura è fatto di word a 16 bit (le righe). Ogni cella (ogni riga) memorizza quindi un dato non maggiore di 16 bit. CELLA 0 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

La memoria La CPU preleva le istruzioni da eseguire in questa memoria, e le trova attraverso l indirizzo di memoria Nella CPU c è il registro PI (registro prossima istruzione) Ogni programma per essere eseguito deve passare in memoria centrale e deve aver assegnato Uno spazio di memoria per i dati che elabora (zona dati) Uno spazio di memoria per le istruzioni (zona istruzioni) Spazio indirizzi = zona dati + zona istruzioni

Spazio degli indirizzi Tipo di memoria : 8 bit memory Capacità della memoria : 48 byte capacity Spazio occupato dal S.O. : 8 Byte Zona istruzioni del progr.: 8 Byte Zona dati del progr.: 4 Byte Spazio libero: 28 Byte. CELLA 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Spazio degli indirizzi Spazio degli indirizzi 12 Byte. CELLA 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Gestione dei programmi in memoria Di solito i PROGRAMMI sono su memoria di massa ed in formato binario. Per essere eseguito deve passare in RAM e diventare PROCESSO Durante la sua esecuzione, un programma, può ripetutamente ritornare su HDD e poi di nuovo in RAM e viceversa, ogni volta che viene «sospeso». Quando ritorna in RAM, il programma può ritornare in qualunque altro punto della memoria.

Gestione dei programmi in memoria Gli indirizzi «relativi» del programma possono restare gli stessi, cioè la 3 istruzione è sempre memorizzata due celle dopo la prima istruzione. Gli indirizzi assoluti possono cambiare durante l esecuzione: 0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5

4 categorie di indirizzi di memoria Programma sorgente su HDD Programma eseguibile Programma Ready in RAM 1. Simbolici 2. Logici 3. Virtuali 4. Fisici Espressi senza sapere quale sarà l indirizzo reale in RAM è in forma di ETICHETTA: lo sviluppatore non deve mai curarsi degli indirizzi reali, questo è il compito del compilatore. Nella fase di assemblaggio gli indirizzi diventano «logici» cioè espressi in forma numerica (binaria) relativa ma comunque non indicano la posizione reale in memoria Sono in forma binaria relativa in uno stadio intermedio; ancora non indicano la locazione fisica definitiva. Indirizzo effettivo della posizione del programma/dato in memoria, in forma binaria assoluta. È il MMU che effettua l ultimo passaggio.

Il MMU memory manager unit Il MMU è un modulo del sistema operativo ma spesso i sistemi dispongono di una unità MMU hardware posizionata nei pressi della CPU. In sostanza il gestore della memoria è un microchip che controlla continuamente ed esegue gli accessi in memoria di dati e programmi. CPU MMU MEMORIA RAM MEMORIA RAM MEMORIA RAM MEMORIA RAM

Lezione 2 Allocazione dei programmi in memoria Sistema Operativo Progr. 1 Progr. 2 Pg 3 In una memoria ci sono sempre il Sistema Operativo (almeno il suo Kernel), uno o più programmi e degli spazi vuoti (zona scura).

Rilocazione della memoria come si calcolano gli indirizzi effettivi

Rilocazione è il procedimento di ricalcolo degli indirizzi virtuali per ottenere indirizzi fisici. I Codici eseguibili usano indirizzi di memoria virtuale. Più programmi sorgente usano gli stessi indirizzi di memoria virtuale (Potrebbero tutti partire da 0) Vanno allora RICOLLOCATI negli spazi opportuni, ogni programma non deve VIOLARE lo spazio di un altro. La MMU ricalcola gli indirizzi virtuali ottenendo indirizzi fisici

Due tecniche di rilocazione Rilocazione statica Rilocazione dinamica STATICA = Durante il caricamento del programma DINAMICA = Durante l esecuzione del programma (run-time) indirizzo fisico = indirizzo virtuale + K

Due tecniche di rilocazione Rilocazione statica Il «caricatore» del S.O. dopo aver letto tutto il programma e prima di eseguirlo, rialloca in memoria tutto il codice adattando gli indirizzi virtuali alle posizioni effettivamente presenti in memoria fisica in quel momento. Richiede un elevato tempo iniziale ma poi i programmi girano veloci.

Due tecniche di rilocazione Il S.O. rialloca il programma mentre lo manda in esecuzione. Quindi solo «running» ogni indirizzo generato dal programma (virtuale) viene ricalcolato in indirizzo fisico effettivo. Il codice è caricato in memoria dal LOADER in forma rilocabile (le posizioni in RAM non sono definitive) Durante l esecuzione ad ogni accesso, si calcola l indirizzo assoluto. I programmi rallentano run-time Rilocazione dinamica

Cosa fa il MMU È aggiornato sullo stato di ogni cella di memoria ram Assegna gli spazi ai processi Fa lo swapping (in e out) Applica politiche di swapping Recupera, al termine, la memoria libera.

Fattore di rilocazione K 0 200 Programma 1 0.. 300 programma 2 K=400 K=800 0 200 400 600.. 800 1200 Memoria RAM completa

Rilocazione degli indirizzi in memoria 0 200 400 600.. 800 12000 0.. 300 K=400 K=800

Ripeto: Rilocazione statica Statica al caricamento, prima della esecuzione Usata nei S.O. monotasking Il «Caricatore» o Loader (procedura che fa parte del S.O.) 1. legge il programma 2. ricalcola gli indirizzi di tutto il codice 3. pone in esecuzione il programma. Metodo molto lento

Ripeto: Rilocazione dinamica Dinamica runtime Il Loader agisce durante l esecuzione del programma Ad ogni accesso si calcola l indirizzo assoluto Un registro contiene l indirizzo effettivo della 1ma istruzione.

Ripeto: Compiti del MMU 1. Controlla lo stato della memoria 2. Conosce lo stato di ogni cella (libera/occupata) 3. Alloca i processi 4. Gestisce le politiche di swapping 5. Effettua lo swap-in e swap-out dei processi 6. Recupera la memoria liberata

Parte II Allocazione della memoria come si gestiscono più programmi in memoria

Allocazione della memoria significa Allocazione statica Allocazione dinamica Allocazione statica i programmi allocati non si spostano più. Allocazione dinamica i programmi allocati sono spostati più volte.

Allocazione della memoria Allocazione Statica I programmi allocati non si spostano fino al termine Dinamica I programmi allocati si spostano più volte Swap in-out

Sistemi monoprogrammati Allocazione a singola partizione Tipo PC con MS-DOS 1 processo + sistema operativo Spazio riservato al Sistema operativo Spazio di memoria libero, riservato all applicativo

Sistemi monoprogrammati Allocazione a singola partizione Si usa il REGISTRO LIMITE INFERIORE Impedisce che l unico processo vada a sovrascrivere il SO Registro limite inferiore 1mo indirizzo libero dopo il SO Spazio riservato al Sistema operativo Spazio di memoria libero, riservato all applicativo

Allocazione nei sistemi monoprogrammati Svantaggi : Con unico programma la memoria può restare sprecata La cpu è inattiva durante un i/o Problemi con programmi grandi che devono usare l overlay: si carica un pezzo alla volta (come i videogame di avventura)

Allocazione a partizioni multiple Sistemi multiprogrammati Se vogliamo più programmi assieme in memoria dobbiamo: Dividere la ram in «partizioni» Eseguire tanti processi per quante sono le partizioni Memoria centrale Partizione 0 Operative System Partizione 1 Partizione 2 Partizione 3 Partizione 4 Partizione 5 Partizione 6

Allocazione a partizioni multiple Il MMU 1. Deve conoscere le partizioni 2. Lo stato di ognuna (occupata/libera) 3. Liberare le partizioni al termine del processo Memoria centrale Partizione 0 Operative System Partizione 1 Partizione 2 Partizione 3 Partizione 4 Partizione 5 Partizione 6

Allocazione a partizioni multiple GRANDEZZA PARTIZIONI Partizioni troppo grandi spreco di memoria Partizioni troppo piccole non entrano programmi grossi Memoria centrale Partizione 0 Operative System Partizione 1 Partizione 2 Partizione 3 Partizione 4 Partizione 5 Partizione 6

Partizioni statiche = fisse Le dimensioni sono stabilite dal SISTEMISTA Per fare modifiche bisogna riconfigurare il sistema Si usano partizioni di diverse categorie : 1. piccole 2. medie 3. grosse Memoria centrale Partizione 0 Operative System Partizione 1 Partizione 2 Partizione 3 Partizione 4 Partiz 5 Partiz 6

Tabella delle partizioni Il MMU usa una tabella per conoscere stato, dimensione e posizione delle partizioni Tabella delle partizioni Numero - id dimensione indirizzo Stato 1=occupato 0000 256 KB 00000000 1 0001 128 KB 0000e440 1 0010 128 KB 000fe340 1 0011 64 KB 00fe3400 0 0100 64 KB 0101 32 KB

Tabella delle partizioni altro esempio 0 100k 150k 180k 210k 220k 270k Sistema Operativo Progr. 1 Progr. 2 Pg 3 id dimensioni indirizzo Stato 0001 50 100 Prog.1 0010 30 150 Free 0011 30 180 Progr.2 0100 10 210 Progr.3 0101 50 220 Free

Partizioni statiche - svantaggi Un caso limite è quello in cui non esiste spazio contiguo sufficiente per i programmi per cui, pur essendo: dim (free) > dim (progr) non posso caricare il programma. Questo problema è detto frammentazione dello spazio libero in memoria. Frammentazione dello spazio libero Sistema Operativo Progr. 1 Progr. 2 Pg 3

Tabella delle partizioni 0 100k 150k 200k 230k 250k 270K 330k Sistema Operativo Progr. 1 Progr. 2 Pg 3 Spreco di memoria!!! Programma 4

Partizionamento «dinamico» Dimensione partizioni variabile (nel tempo) Numero partizioni variabile (nel tempo) s.o. Spazio libero Spazio libero programma

Tabella delle partizioni Il MMU usa una tabella delle partizioni Id partizione Tabella delle partizioni dimensione indirizzo Id programma 0000 256 KB 00000000 0f1 0001 128 KB 0000e440 00e 0010 128 KB 000fe340 010 0011 64 KB 00fe3400 001

Tabella delle aree libere Il MMU usa una tabella degli spazi liberi Tabella delle aree libere Id partizione dimensione indirizzo 0000 256 KB 00000000 0001 128 KB 0000e440 0010 128 KB 000fe340

Politiche di occupazione First fit = si occupala prima sufficientemente grande Best fit = si occupa la più piccola tra le sufficientemente grandi s.o. free free free First fit Best fit program ma

Frammentazione delle aree libere Anche qui c è questo problema detto frammentazione esterna alle partizioni Soluzioni: compattare gli spazi liberi (garbage collection)

Garbage collection s.o. free PRG 1 free PRG 2 free s.o. PRG 1 PRG 2 free free free