Click here to load reader

Calcolatori Elettronici - ing. 2)New.pdfPDF fileCalcolatori Elettronici - La memoria virtuale (2) - Slide 2 L. Tarantino - a.a. 2011/2012 Come usare la memoria secondaria oltre che

  • View
    215

  • Download
    0

Embed Size (px)

Text of Calcolatori Elettronici - ing. 2)New.pdfPDF fileCalcolatori Elettronici - La memoria virtuale (2) -...

Calcolatori Elettronici

La memoria gerarchica

La memoria virtuale

Calcolatori Elettronici - La memoria virtuale (2) - Slide 2 L. Tarantino - a.a. 2011/2012

Come usare la memoria secondaria

oltre che per conservare permanentemente dati e programmi

Idea

Tenere parte del codice in mem. princ. e il resto in mem. secondaria

Trattare la mem. principale come una cache per la mem. secondaria

Vantaggi

Molti programmi contemporaneamente in esecuzione anche se la

somma delle quantit di memoria che ognuno di essi richiede eccede

le dimensioni della memoria principale

un singolo programma pu eccedere le dimensioni della memoria

principale (tanto carico solo porzioni di esso)

Meccanismi base

memoria principale e memoria secondaria vengono scomposti in

gruppi di parole detti pagine

se non trovo una pagina in memoria principale ho una mancanza di

pagina (page fault) e cercher la pagina in memoria secondaria

Calcolatori Elettronici - La memoria virtuale (2) - Slide 3 L. Tarantino - a.a. 2011/2012

Memoria virtuale - problematiche di base

Posizionamento della pagina

sempre completamente associativa (gestita via software)

Individuazione della pagina

gestita via software

Tecnica di sostituzione

LRU o sue approssimazioni

Strategia di scrittura

sempre write-back

minimizzare i page fault perch la penalizzazione altissima!!

Calcolatori Elettronici - La memoria virtuale (2) - Slide 4 L. Tarantino - a.a. 2011/2012

Un passo indietro

Il programma eseguibile prodotto dal linker che integra librerie e

moduli oggetto prodotti dallassemblatore

Il linker lavora come se avesse a sua disposizione lintera memoria

virtuale

Esempio

se ho indirizzi da 32 bit posso indirizzare fino a 232 byte

lo spazio di indirizzamento virtuale va considerato scomposto in

pagine virtuali

durante lesecuzione alcune pagine virtuali si trovano nella memoria

principale (caricate in pagine fisiche) le altre si trovano nella memoria

secondaria

spazio di indirizzamento virtuale

C:/Users/Laura/Documents/didattica - transito/CE - corso 0910/3 - linguaggio macchina/lezioni (ppt)/14-MIPS8-LM-new.pptx

Calcolatori Elettronici - La memoria virtuale (2) - Slide 5 L. Tarantino - a.a. 2011/2012

Corrispondenze tra pagine virtuali e fisiche

DIM_PAG_VIRT = DIM_PAG_FIS

in realt le pagine virtuali risiedono sempre tutte in mem.secondaria

le pagine in mem. principale sono un sottoinsieme di quelle in

memoria secondaria

Memoria

secondaria Memoria virtuale

di un programma

Memoria

principale

pagine fisiche

Calcolatori Elettronici - La memoria virtuale (2) - Slide 6 L. Tarantino - a.a. 2011/2012

Trattamento dellindirizzo

.. prosegue il parallelismo tra cache e memoria virtuale

Se la memoria principale divisa in blocchi lindirizzo viene diviso in

due porzioni:

La memoria virtuale divisa in pagine, quindi lindirizzo viene diviso

in due porzioni:

indirizzo del bloccoMP spiazzamento

lg2 DIM_MEM_PRINC

lg2 NBLKMP lg2 DIM_BLK

indirizzo pagina virtuale spiazzamento nella pagina

lg2 DIM_MEM_VIRT

lg2 NPagVirt lg2 DIM_PAG

Calcolatori Elettronici - La memoria virtuale (2) - Slide 7 L. Tarantino - a.a. 2011/2012

Indirizzo virtuale e indirizzo fisico (1)

Quando si accede in memoria?

durante le fasi di fetch o di accesso ai dati (lettura/scrittura)

A quale parola si accede?

a quella il cui indirizzo nel PC (se fetch) o in AluOut (se accesso

ai dati)

lindirizzo di interesse generato dalla CPU

Come viene generato lindirizzo?

in base alla evoluzione del processo, facendo riferimento allo

spazio di indirizzamento virtuale (lunico conosciuto dal

programma)

la CPU genera indirizzi virtuali

Calcolatori Elettronici - La memoria virtuale (2) - Slide 8 L. Tarantino - a.a. 2011/2012

Indirizzo virtuale e indirizzo fisico (2)

la CPU genera indirizzi virtuali la mem.princ. vuole indirizzi fisici

necessario un processo di traduzione

???

indirizzo pagina virtuale spiazzamento nella pagina

lg2 NPagVirt lg2 DIM_PAG

indirizzo

virtuale

indirizzo pagina fisica spiazzamento nella pagina

lg2 NPagFis lg2 DIM_PAG

indirizzo

fisico

Osservazione

ind_pag_virt e

ind_pag_fis in

genere hanno

dimensioni diverse

Calcolatori Elettronici - La memoria virtuale (2) - Slide 9 L. Tarantino - a.a. 2011/2012

Posizionamento della pagina

Politica completamente associativa

se ci sono pagine fisiche libere si carica la pagina virtuale dove c

posto

se non ci sono pagine libere entrano in gioco politiche di sostituzione

limplementazione software permette di usare algoritmi sofisticati

e strutture dati complesse per tenere traccia delleffettivo utilizzo

delle pagine

i miglioramenti ottenuti per il miss rate compensano il costo di tali

algoritmi

Calcolatori Elettronici - La memoria virtuale (2) - Slide 10 L. Tarantino - a.a. 2011/2012

Individuazione della pagina (1)

La pagina cercata pu essere ovunque

Per ricordarci la collocazione delle pagine usiamo una tabella delle

pagine

indirizzo di pagina fisica

.

.

.

.

.

.

una riga per ogni

pagina virtuale . . .

pagina caricata

in mem. principale

1

0

pagina NON caricata

in mem. principale

Valid.

Calcolatori Elettronici - La memoria virtuale (2) - Slide 11 L. Tarantino - a.a. 2011/2012

Individuazione della pagina (2)

indirizzo di pagina fisica

.

.

.

.

.

.

Valid.

indirizzo pagina virtuale spiazzamento nella pagina

lg2 NPagVirt lg2 DIM_PAG

indirizzo

virtuale

indirizzo pagina fisica spiazzamento nella pagina

lg2 NPagFis lg2 DIM_PAG

indirizzo

fisico

hit/miss

Calcolatori Elettronici - La memoria virtuale (2) - Slide 12 L. Tarantino - a.a. 2011/2012

La tabella delle pagine (1)

ogni processo in esecuzione ne possiede una distinta

le tabelle delle pagine risiedono in memoria

bisogna individuare quella del processo attivo (il processo servito

dalla CPU)

il registro della tabella delle pagine contiene lindirizzo in memoria

della tabella delle pagine del processo attivo

Altre informazioni nella tabella (associate alla pagina)

bit di uso (per la strategia di sostituzione LRU)

bit di modifica (per la strategia di scrittura write back)

Calcolatori Elettronici - La memoria virtuale (2) - Slide 13 L. Tarantino - a.a. 2011/2012

Esempio

Determinare loccupazione di memoria della tabella se

indirizzo virtuale 32 bit

dim_pagina 4 KB

dim_riga 4 byte

DIM_TABELLA = NRIGHE * DIM_RIGA

NRIGHE = NPAG_VIRT = DIM_MEM_VIRT / DIM_PAGINA

NRIGHE = 232 Byte / 4 KByte = 232 / 212 = 220

DIM_TABELLA = 220 * 4 byte = 4 MB

Calcolatori Elettronici - La memoria virtuale (2) - Slide 14 L. Tarantino - a.a. 2011/2012

Esercizio

Determinare loccupazione di memoria della tabella se

indirizzo virtuale 32 bit

dim_pagina 16 KB

dim_riga 4 byte

DIM_TABELLA = NRIGHE * DIM_RIGA

NRIGHE = NPAG_VIRT = DIM_MEM_VIRT / DIM_PAGINA

NRIGHE = 232 Byte / 16 KByte = 232 / 214 = 218

DIM_TABELLA = 218 * 4 byte = 1 MB

Calcolatori Elettronici - La memoria virtuale (2) - Slide 15 L. Tarantino - a.a. 2011/2012

La tabella delle pagine (2)

lo spazio occupato dalla tabella delle pagine elevato!

Tecniche per ridurre loccupazione di memoria della tabella

consentire alla tabella di crescere via via che il processo richiede

pi spazio (pi pagine), aggiungendo nuove righe

progettare strutture con una occupazione di memoria legata al

numero di pagine in mem. princ. (minore del numero di pagine

virtuali) TABELLA DELLE PAGINE INVERTITA

paginare la tabella delle pagine

Calcolatori Elettronici - La memoria virtuale (2) - Slide 16 L. Tarantino - a.a. 2011/2012

Gestione dei page fault

.. quando il bit il validit vale 0

lesecuzione dellistruzione viene interrotta per caricare la pagina

dalla memoria secondaria

dove collocata nel disco?

deve esistere una seconda tabella che, per ogni pagina virtuale, d

lindirizzo della pagina su disco

Osservazione

il sistema operativo crea lo spazio su disco per tutte le pagine di un

processo allatto della creazione del processo stesso

quando il caricamento della pagina completato si pu riprendere

lesecuzione dellistruzione. Due possibilit:

listruzione viene rieseguita da capo (facile da implementare nella

processore MIPS, lo stato non cambiato, si erano effettuate solo

letture dal banco e il calcolo dellindirizzo)

listruzione

Search related