• Non ci sono risultati.

Gestione della memoria centrale

N/A
N/A
Protected

Academic year: 2021

Condividi "Gestione della memoria centrale"

Copied!
5
0
0

Testo completo

(1)

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

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) 2 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.

Nota di Copyright

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3

Gestione della memoria per sistemi multiprogrammati

• Diverse tecniche:

– partizioni fisse – partizioni variabili – segmentazione – paginazione

– segmentazione + paginazione

memoria virtuale

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4

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

Fondamenti di Informatica - Gestione della memoria centrale

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

Fondamenti di Informatica - Gestione della memoria centrale

Partizioni fisse

inizia P1

PX frammen- tazione interna:

non è possibile caricare il processo P6

P1 P1

P2 P4 P3 P5

PY frammen- tazione esterna:

non è possibile caricare il processo P7 partizioni

vuote

iniziano P2, P3, P4, P5

P1 P3 P5 terminano

P2 e P4

(2)

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7

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) 8

Partizioni variabili

P1 P1

P2 P1 P2 P3

P1

P3

P2 termina

P1

P3 P4

P3 P4

P1 termina

P5

la memoria è frammentata,

non è possibile caricare il processo P5

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9

Memoria virtuale

• 2 aspetti:

– 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

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10

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

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11

Memory Management Unit (MMU)

Address bus CPU

CU ALU

PC

IR R0

R1 R15

Memoria Dispositivi di I/O 0000

0001 0002 0003 0004 0005 0006 0007...

...

Data bus Control bus SP

flags

INDIRIZZI FISICI INDIRIZZI VIRTUALI MMU

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12

Segmenti e pagine

• Segmento

– 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

(3)

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13

indirizzo di base del segmento

lunghezza del segmento

indirizzo relativo dell'istruzione istruzione

Segmentazione

• Dati e programmi possono essere suddivisi in segmenti, contenenti parti che possono essere indirizzate relativamente ad un indirizzo di base.

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14

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

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15

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

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16

Segmentazione

PID

indirizzo di base della segment table del processo

segment table

segmento offset indirizzo virtuale

+

indirizzo fisico + indirizzo del segmento

in memoria fisica

Fondamenti di Informatica - Gestione della memoria centrale

Segmentazione vs. partizioni variabili

istruzione

segmento

0000

A022 A136 000 114

segment table

CPU:

indirizzo virtuale

A022 + 114 istruzione

partizione

0000

A022 A136 A136 CPU:

indirizzo reale

Fondamenti di Informatica - Gestione della memoria centrale

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

(4)

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19

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) 20

Paginazione

PID

indirizzo di base della page table del processo

page table

pagina offset

indirizzo virtuale

+

m - n bit più significativi dell’indirizzo della pagina in memoria fisica

indirizzo fisico

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21

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)

pagina offset

indirizzo virtuale segmento

determina la page table da usare PID

segment table

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22

A

C

A

C

memoria fisica

NOTA: n = 4 (pagine da 16 byte) b (base address)

b + 20 (0010100) segmento

n. 6

offset (4 bit) pagina

(3 bit) 0 1 2

B

0 16 32 48 64

80 96 16

48 64

4

B 4

b + 16

Esempio

page table del segmento

110 001 0100 segm.

(3 bit) mediante la

segment table ha permesso di individuare la page table da usare

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23

file su disco

memoria RAM

cache memory

capacità

costo, velocità

Gerarchia di memoria

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24

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

(5)

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25

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) 26

solo se la pagina è stata modificata pagina a cui è stato fatto accesso

pagefile

lista delle pagine in memoria

Algoritmo di gestione dei page fault

• Least Recently Used (LRU), altrimenti detto FIFO modificato.

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 27

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

Fondamenti di Informatica - Gestione della memoria centrale

© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 28

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

Riferimenti

Documenti correlati

Le memorie di massa servono per immagazzinare dati e programmi e si dividono in hard disk (dischi rigidi o fissi), floppy disk (dischi flessibili e rimovibili), CD ROM (compact

[r]

O., individua una area della memoria centrale che può contenere in locazioni consecutive la sequenza di istruzioni e dati del programma da caricare e fissa in K il primo indirizzo

• 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

z Numero di pagina (p) – usato come indice nella tabella delle pagine che contiene l’indirizzo di base di ogni frame nella memoria fisica.. z Spiazzamento nella pagina (d)

Paginazione a più livelli: allocazione non contigua della tabella delle pagine -> si applica ancora la paginazione alla tabella della pagine. Esempio: paginazione a

–  Allocazione della memoria ai singoli job –  Protezione dello spazio di indirizzamento –  Condivisione dello spazio di indirizzamento –  Gestione dello swap.. • 

Inoltre, quando l’unità centrale richiede l’accesso a una locazione di memoria virtuale non presente in una cella di memoria reale, si rende necessario effettuare