Gestione della memoria centrale



Documenti analoghi
Cenni sull ingegneria del software e sulla qualità dei programmi

FONDAMENTI DI MATEMATICA BINARIA

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

Codifica delle immagini

FONDAMENTI DI INFORMATICA. Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine. Compressione MPEG

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Codifica delle immagini

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Esercizi di Sniffing

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine

Wireless monitoring & protection

Sistemi Operativi. 5 Gestione della memoria

Ricerca ed analisi della causa di un problema o guasto di rete

Multicast e IGMP. Pietro Nicoletti

Domain Name Service. Mario BALDI. Silvano GAI. Fulvio RISSO. staff.polito.it/mario.baldi. sgai[at]cisco.com. fulvio.risso[at]polito.

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Il protocollo VTP della Cisco

ARP e RARP. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it Fulvio RISSO

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Sistema operativo: Gestione della memoria

Gestione della memoria centrale

Autenticazione tramite IEEE 802.1x

Linguaggio C Compilazione, linking e preprocessor

Gestione della Memoria

ACCESS LIST. Pietro Nicoletti

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

Reti logiche e componenti di un elaboratore

La Gestione delle risorse Renato Agati

SIP e SDP. Segnalazione nelle reti VoIP. Fulvio Risso. Politecnico di Torino

Unbundling e xdsl. Mario Baldi

Interdomain routing. Principi generali e protocolli di routing. Mario Baldi

Progettazione di reti locali basate su switch - Switched LAN

Nota di Copyright. 09_Prog_dorsale_fibra - 2 Copyright M. Baldi - P. Nicoletti: see page 2

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

SMDS: Switched Multi-Megabit Data Service. Silvano GAI

IP Multicast. Mario Baldi staff.polito.it/mario.baldi. Silvano Gai Nota di Copyright. Comunicazioni di gruppo

Il memory manager. Gestione della memoria centrale

GESTIONE DELLA MEMORIA CENTRALE

SNMP e RMON. Pietro Nicoletti Studio Reti s.a.s. Mario Baldi Politecnico di Torino. SNMP-RMON - 1 P. Nicoletti: si veda nota a pag.

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

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

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

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

Gli indirizzi di IPv6

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Capitolo 11 La memoria cache

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

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

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

Architettura di un calcolatore

La Memoria Virtuale Ottimizzazione della memoria centrale

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

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

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

I protocolli di routing dell architettura TCP/IP

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

Laboratorio di Informatica

Tipi di errori e possibili cause sulle reti Ethernet

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

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

Transparent bridging

Link Aggregation - IEEE 802.3ad

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Struttura del calcolatore

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

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

La gestione della memoria

Memoria Virtuale. Lezione 29 Sistemi Operativi

STRUTTURE DEI SISTEMI DI CALCOLO

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

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

Voce su IP e Telefonia su IP

il progetto ieee 802

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale

Reti di computer. Materiale estratto da:

Esercitazione E6 Esercizi d esame

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Le Infrastrutture Software ed il Sistema Operativo

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

Sistemi Operativi Gestione della Memoria (parte 2)

Introduzione ai sistemi operativi

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

Gestione della memoria

Perché abbiamo problemi di sicurezza? Sicurezza. Reti di calcolatori Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Transcript:

FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell autore prof. Pier Luca Montessoro, Università degli Studi di Udine. Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell informazione). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali. 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2

Gestione della memoria per sistemi multiprogrammati Diverse tecniche: partizioni fisse partizioni variabili segmentazione paginazione segmentazione + paginazione memoria virtuale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3

Obiettivi Massimizzare il numero di processi che possono utilizzare la memoria Minimizzare lo spazio di memoria inutilizzato frammentazione interna: spazio inutilizzato all interno di una partizione frammentazione esterna: partizioni non utilizzate perché troppo piccole Semplicità ed efficienza 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4

Partizioni fisse La memoria fisica viene suddivisa in partizioni predefinite Quando un programma viene caricato in una partizione, gli indirizzi vengono ricalcolati in funzione dell indirizzo di inizio della partizione Problemi: quante partizioni, quanto grandi? frammentazione interna ed esterna 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5

Partizioni fisse partizioni vuote P1 inizia P1 P1 P2 P3 P4 P5 iniziano P2, P3, P4, P5 PX frammentazione interna: non è possibile caricare il processo P6 P1 P3 P5 terminano P2 e P4 PY frammentazione esterna: non è possibile caricare il processo P7 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6

Partizioni variabili Le partizioni vengono create man mano che i processi richiedono memoria Gli indirizzi vengono ricalcolati come nel caso delle partizioni fisse Problemi: scelta della partizione da utilizzare frammentazione / ricompattazione 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7

Partizioni variabili P1 P1 P1 P1 P1 P5 P2 P2 P3 P3 P4 P3 P4 P3 la memoria è frammentata, non è possibile caricare il processo P5 P2 termina P1 termina 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8

2 aspetti: Memoria virtuale estensione della memoria RAM utilizzabile dalla CPU oltre la dimensione reale della memoria fisica disponibile (mediante page file) mapping tra gli indirizzi virtuali di ciascun processo in ambiente multitasking: tutti i processi usano lo stesso range di indirizzi, ma per ciascuno la memoria realmente indirizzata è diversa 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9

Memoria virtuale e indirizzi Spazio di indirizzamento virtuale: determinato dal parallelismo della CPU (es. 32 bit indirizzi da 0 a 4G) Spazio di indirizzamento reale (in cui vengono tradotti gli indirizzi virtuali): determinato dall architettura (numero di fili dell address bus) e dalla quantità di RAM Massima quantità di parole di memoria utilizzabili contemporaneamente determinata dal numero di processi attivi e dalla quantità di RAM 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10

Memory Management Unit (MMU) CPU Memoria Dispositivi di I/O CU PC IR SP flags ALU. R0 R1 R15 0000 0001 0002 0003 0004 0005 0006 0007. INDIRIZZI VIRTUALI MMU Address bus INDIRIZZI FISICI Data bus Control bus 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11

Segmento Segmenti e pagine raggruppamento logico di informazioni (subroutine, area dati, ecc.) di lunghezza variabile Page frame partizione della memoria fisica di dimensione fissa e uguale per tutti i page frame Pagina partizione della memoria virtuale del processo di dimensione pari ad un page frame 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12

Segmentazione Dati e programmi possono essere suddivisi in segmenti, contenenti parti che possono essere indirizzate relativamente ad un indirizzo di base. indirizzo di base del segmento lunghezza del segmento istruzione indirizzo relativo dell'istruzione 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13

Segmentazione Ogni segmento corrisponde ad una entità logica ben definita (Esempi: codice, dati, funzioni di libreria, sistema operativo o parte di esso) Le istruzioni e/o le variabili contenute nel segmento sono identificate tramite il loro indirizzo relativo all'indirizzo di base NOTA: Per l'esecuzione di un programma non è necessario che siano presenti in memoria centrale tutti i segmenti: possono essere caricati quando serve 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14

Vantaggi Possibilità di rilocare i segmenti: gli indirizzi sono relativi all'indirizzo di base, e quest'ultimo viene definito al momento del caricamento del segmento in memoria L'hardware che gestisce la memoria virtuale provvede alla traduzione degli indirizzi relativi in indirizzi fisici di memoria Ad ogni segmento possono essere associate delle protezioni (es. sola lettura o esecuzione) in base alla sua funzione 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15

PID Segmentazione indirizzo di base della segment table del processo indirizzo virtuale segmento offset + segment table indirizzo del segmento in memoria fisica + indirizzo fisico 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16

Segmentazione vs. partizioni variabili CPU: indirizzo virtuale 0000 CPU: indirizzo reale 0000 000 114 A136 segment table A022 + 114 A022 A136 istruzione segmento A022 A136 istruzione partizione 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17

Paginazione Risolve il problema della frammentazione esterna, esistente nella segmentazione al pari del sistema a partizioni variabili, unificando la dimensione dei blocchi di codice (pagine) che vengono dinamicamente caricati in memoria (page frame) Il programma vede ancora lo spazio di indirizzamento virtuale contiguo all'interno dei segmenti, ma in realtà è immagazzinato in pagine che non sono contigue 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18

Paginazione Pagine e page frame hanno dimensioni pari a 2 n come nella segmentazione, l indirizzo viene calcolato sommando l offset all indirizzo di base della pagina, ma questo avrà gli ultimi n bit a zero, quindi sarà sufficiente accostare i bit 101111000000000 + 001001011 ---------------------------- 101111001001011 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19

PID Paginazione indirizzo di base della page table del processo indirizzo virtuale pagina offset + page table m - n bit più significativi dell indirizzo della pagina in memoria fisica indirizzo fisico 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20

Paginazione + segmentazione La paginazione pura può portare a page table molto grosse La segmentazione con paginazione permette di suddividerle in più page table (una page table diversa per ogni segmento) PID indirizzo virtuale segment table segmento pagina offset determina la page table da usare 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21

segmento n. 6 A B 4 C mediante la segment table ha permesso di individuare la page table da usare b (base address) b + 16 b + 20 (0010100) Esempio pagina (3 bit) offset (4 bit) NOTA: n = 4 (pagine da 16 byte) 0 1 2 page table del segmento 16 64 48 110 001 0100 segm. (3 bit) memoria fisica 0 A C B 16 32 48 64 4 80 96 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22

Gerarchia di memoria file su disco capacità memoria RAM cache memory costo, velocità 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23

Page file Il meccanismo di traduzione degli indirizzi permette di far vedere ai programmi uno spazio di indirizzamento virtuale, per esempio da 00000000h a FFFFFFFFh (32 bit) La memoria RAM fisicamente presente nel calcolatore avrà normalmente dimensione molto inferiore a quella massima indirizzabile dalla CPU L'uso del page file permette di sfruttare la memoria su disco (più lenta, ma più economica) per espandere la memoria RAM centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24

Page fault Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all indirizzo di pagina in memoria fisica) Ciò significa che la pagina non è presente in memoria centrale ed è necessario leggerla dal page file su disco Troppi page fault provocano una degradazione delle prestazioni del sistema, esiste il problema del bilanciamento tra dimensione del page file e capacità della memoria centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25

Algoritmo di gestione dei page fault Least Recently Used (LRU), altrimenti detto FIFO modificato. pagina a cui è stato fatto accesso lista delle pagine in memoria pagefile solo se la pagina è stata modificata 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 26

Attributi di pagina In corrispondenza di ogni pagina, nella page table sono contenute diverse informazioni: bit di presenza (in memoria centrale) se è presente, l'indirizzo della pagina di memoria, altrimenti, l'indirizzo all'interno del page file informazioni di protezione (ereditate dal segmento di cui attualmente fa parte) informazioni relative all'utilizzo e alla modifica del contenuto 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 27

Swapping I primi sistemi UNIX, per liberare memoria centrale, trasferivano su memoria secondaria interi processi, e non soltanto parti di essi (pagine). Questo modo di procedere è detto swapping I sistemi con paginazione usano ancora lo swapping per liberare memoria quando il carico inizia ad essere eccessivo. In queste condizioni il sistema è impegnato quasi al 100% a caricare e scaricare pagine in memoria (thrashing) I processi vengono nuovamente caricati in memoria quando è possibile riattivarli 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 28