MEMORIA VIRTUALE. G. Frosini Memoria virtuale Slide 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "MEMORIA VIRTUALE. G. Frosini Memoria virtuale Slide 1"

Transcript

1 MEMORIA VIRTUALE G. Frosini Memoria virtuale Slide 1

2 MEMORIA VIRTUALE Programma: utilizza indirizzi che prendono il nome di indirizzi logici: l insieme degli indirizzi logici costituisce il cosiddetto spazio logico. Processore: utilizza indirizzi che prendono il nome di indirizzi fisici, emessi utilizzando un certo numero di piedini: l insieme degli indirizzi fisici costituisce il cosiddetto spazio fisico. Memoria fisica: quella effettivamente presente in un calcolatore; sottoinsieme dello spazio fisico (in genere non coincidente con lo spazio fisico per problemi di costo). Caso più semplice: indirizzo logico coincidente con indirizzo fisico; in questo caso un programma in esecuzione può utilizzare al massimo uno spazio di memoria avente una dimensione uguale a quella della memoria fisica; caso di multiprogrammazione: l insieme di tutti i programmi in esecuzione G. Frosini Memoria virtuale Slide 2

3 PAGINAZIONE (1) Spazio di memoria di un programma che supera la dimensione della memoria fisica: caso di multiprogrammazione: insieme degli gli spazi di memoria dei programmi in esecuzione opportuno rendere differenti gli indirizzi logico e fisico; meccanismo di virtualizzazione dello spazio di memoria (indirizzo logico diviene virtuale e memoria logica diviene virtuale), uno spazio per ogni programma, con utilizzo, oltre che della memoria fisica, anche della memoria di massa. Indirizzo virtuale: costituito da un numero di bit in genere maggiore o uguale a quello di un indirizzo fisico (supponiamo uguale). Paginazione: indirizzo virtuale pensato suddiviso in due parti: un indirizzo virtuale di pagina (a bit) e un indirizzo virtuale di riga all interno della pagina (b bit); memoria virtuale suddivisa in 2**a pagine, ciascuna di ampiezza 2**b byte; memoria fisica suddivisa in pagine di ampiezza 2**b byte. Associazione tra pagine virtuali e pagine fisiche: realizzata mediante una tabella di corrispondenza. G. Frosini Memoria virtuale Slide 3

4 PAGINAZIONE (2) Memoria virtuale Memoria fisica Tabella... Memoria di massa G. Frosini Memoria virtuale Slide 4

5 PAGINAZIONE (3) Indirizzo virtuale di pagina: utilizzato per accedere a una riga di questa tabella (descrittore di pagina), che dà l indirizzo fisico di pagina. Indirizzo virtuale di riga: rappresenta anche l indirizzo fisico di riga (rimane inalterato). Memoria virtuale: può contenere fino a 2**a pagine; caso di multiprogrammazione: memoria virtuale di ogni programma. Memoria fisica: in genere, è in grado di contenere un numero di pagine assai inferiore a 2**a (moltiplicato il numero dei programmi in esecuzione), per cui viene utilizzata, per la memorizzazione temporanea delle pagine, anche la memoria di massa. G. Frosini Memoria virtuale Slide 5

6 PAGINAZIONE (4) Programma che genera un indirizzo virtuale di memoria: la Memory Management Unit (MMU) provvede ad effettuare (via hardware) la traduzione di indirizzo da virtuale a fisico. Tabella di corrispondenza: bit P (Present) contenuto in ogni descrittore, specifica se una pagina virtuale è presente o meno in memoria fisica; in caso di non presenza, la MMU genera un eccezione di page-fault: memorizzazione (in un registro speciale del processore) dell indirizzo virtuale non tradotto, e in pila dell indirizzo dell istruzione attuale. Routine che va in esecuzione (routine di page-fault): utilizza le informazioni contenute nel registro speciale del processore per completare a livello software la gestione della memoria virtuale; provvede a effettuare un trasferimento, ricopiando la pagina dalla memoria di massa alla memoria fisica e aggiornando la tabella di corrispondenza ("aggancio" della pagina trasferita). Campo del descrittore di pagina normalmente riservato all indirizzo fisico: nel caso di una pagina non presente, può essere utilizzato per identificare la pagina stessa nella memoria di massa, e quindi utilizzato dalla routine di page-fault. G. Frosini Memoria virtuale Slide 6

7 PAGINAZIONE (5) Routine di page-fault: nel caso di non disponibilità di una pagina libera in memoria fisica, provvede a effettuare un rimpiazzamento, trasferendo preliminarmente una pagina dalla memoria fisica alla memoria di massa e aggiornando la tabella di corrispondenza ("sgancio" della pagina rimossa). Gestione dei fault: i registri del processore devono avere copie di lavoro; i registri vengono aggiornati solo quando l istruzione è stata completamente eseguita; l interruzione di page-fault memorizza in pila il valore di EIP che non è stato ancora aggiornato, ossia l indirizzo dell istruzione attuale. Termine della routine di page-fault: istruzione IRET; il programma ricomincia con il prelievo e l esecuzione dell istruzione interrotta (l istruzione interrotta viene rieseguita); i registri del processore non sono stati modificati dalla precedente esecuzione parziale della stessa istruzione. G. Frosini Memoria virtuale Slide 7

8 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE Tabella di corrispondenza: per poter essere acceduta via software, è sufficiente che si trovi anche in memoria virtuale. Posizionamento della tabella in memoria virtuale: nella tabella di corrispondenza occorre che vi siano descrittori che hanno come indirizzi fisici quelli delle pagine che contengono la tabella stessa. Memoria virtuale Memoria fisica... Tabella di corrispondenza Tabella di corrispondenza G. Frosini Memoria virtuale Slide 8

9 MEMORIA VIRTUALE E RILOCAZIONE Memoria virtuale: dimensioni non legate a quelle della memoria fisica, ma a quelle della memoria di massa; completamente trasparente al programmatore: tutti gli indirizzi generati dal programma sono riferiti allo spazio di indirizzamento virtuale; traduzione degli indirizzi effettuata dalla MMU; gestione del trasferimento (o rimpiazzamento) delle pagine virtuali effettuata, utilizzando il meccanismo di page-fault, da routine del sistema operativo. Fase di rilocazione di un programma: non necessaria in presenza di memoria virtuale: predisponendo per ogni programma un opportuna tabella di corrispondenza, la memoria virtuale può risultare sempre disponibile a partire dall indirizzo 0. G. Frosini Memoria virtuale Slide 9

10 MEMORIA FISICA IN MEMORIA VIRTUALE (1) Memoria fisica: per poter essere letta o scritta via software, è sufficiente che si trovi anche in memoria virtuale; è opportuno che la posizione in memoria virtuale sia quella iniziale: indirizzo virtuale e indirizzo fisico di una stessa locazione di memoria fisica hanno lo stesso valore; in tal modo, quando viene attivata la paginazione, si ha continuità nell indirizzamento (l indirizzo fisico si ha prima dell attivazione e l indirizzo virtuale dopo l attivazione). Posizionamento della memoria fisica in memoria virtuale: nella tabella di corrispondenza occorre che vi siano descrittori che hanno come indirizzi fisici quelli delle pagine fisiche, con il bit di presenza sempre uguale a 1 (queste pagine non devono essere rimpiazzabili); in memoria virtuale, viene a crearsi una finestra FM attraverso la quale si vede la memoria fisica; gli indirizzi virtuale e fisico sono numericamente uguali (la MMU effettua comunque la traduzione). G. Frosini Memoria virtuale Slide 10

11 MEMORIA FISICA IN MEMORIA VIRTUALE (2) Memoria virtuale Memoria fisica Memoria fisica tabella di corrispondenza it l G. Frosini Memoria virtuale Slide 11

12 TRASFERIMENTO DELLE PAGINE IN BUS MASTERING Trasferimenti delle pagine da o verso la memoria fisica: possono essere effettuati utilizzando, invece che una routine, una funzione PCI che opera in Bus Mastering: in questo caso non è richiesto che la memoria fisica si trovi anche in memoria virtuale. Funzione PCI che opera in Bus Mastering: coinvolge indirizzi fisici (descrittore di buffer: inizializzato con l indirizzo fisico del primo byte di una pagina); durante il trasferimento, non viene effettuata nessuna traduzione di indirizzo (maggior velocità di operazione); tale possibilità dovuta al fatto che sono coinvolti indirizzi consecutivi, e (all interno della pagina) la consecutività fisica comporta anche la consecutività virtuale (e viceversa). Routine di page-fault: inizializza la funzione PCI con un indirizzo fisico appropriato; aggiorna la tabella di corrispondenza. G. Frosini Memoria virtuale Slide 12

13 PAGINAZIONE NEL PROCESSORE PC (1) Meccanismo di paginazione nel processore PC: 4 registri speciali CR0, CR1, CR2 e CR3. Abilitazione della paginazione: messa a 1 del bit PG (PaGing) del registro speciale CR0. Numero massimo delle pagine (virtuali e fisiche): 1 M. Ampiezza di pagina: 4 Kbyte (a=20 e b=12). Tabella di corrispondenza: realizzata in due livelli: direttorio delle pagine e tabelle delle pagine; descrittore (di tabella o di pagina): contiene un bit di presenza P: la MMU, quando effettua la traduzione di indirizzo, se P vale 0 (la tabella delle pagine o la pagina non è presente in memoria fisica), genera un eccezione (page-fault): in quest ultimo caso l indirizzo virtuale che non è stato tradotto viene memorizzato nel registro speciale CR2, e l indirizzo dell istruzione attuale (contenuto in EIP) viene memorizzato in pila. G. Frosini Memoria virtuale Slide 13

14 PAGINAZIONE NEL PROCESSORE PC (2) Direttorio delle pagine: pagina sempre presente in memoria fisica, il cui indirizzo fisico (12 bit meno significativi uguali a 0) si trova nel registro speciale CR3; costituito da 1024 descrittori di tabella (ognuno lungo 4 byte), ciascuno contenente l indirizzo fisico (su 20 bit) di una tabella delle pagine. Tabella delle pagine: pagina presente o non presente in memoria fisica (a seconda del valore del bit P del descrittore di tabella); costituita da 1024 descrittori di pagina (ognuno lungo 4 byte), ciascuno dei quali contiene l indirizzo fisico (su 20 bit) di una pagina. Indirizzo virtuale: i 10 bit più significativi individuano un descrittore di tabella (all interno del direttorio delle pagine); i 10 bit adiacenti individuano un descrittore di pagina (all interno della tabella delle pagine individuata dal direttorio). G. Frosini Memoria virtuale Slide 14

15 PAGINAZIONE NEL PROCESSORE PC (3) Processore Memoria fisica CR3 Direttorio Indirizzo fisico Descrittore ind_pag-0x Tab. pagine Descrittore Indirizzo virtuale 0 G. Frosini Memoria virtuale Slide 15

16 PAGINAZIONE NEL PROCESSORE PC (4) Tabella di corrispondenza: paginata e costituita al più da 1K+1 pagine (4 Mbyte + 4 Kbyte); dimensioni effettive in genere inferiori, in quanto nel direttorio alcuni descrittori possono avere permanentemente P=0. Direttorio e tabelle delle pagine: per poter essere modificati via software è sufficiente che risiedano in memoria virtuale; se: il direttorio e le tabelle delle pagine si trovano in memoria virtuale; la memoria fisica si trova in memoria virtuale; è necessario che le tabelle delle pagine risiedano a indirizzi virtuali diversi da quelli in cui risiede la memoria fisica; in tal modo la MMU, quando effettua la traduzione di indirizzo, esamina descrittori di pagina diversi, uno con P che può valere 0 o 1, l'altro con P che vale sempre 1. G. Frosini Memoria virtuale Slide 16

17 PAGINAZIONE NEL PROCESSORE PC (5) Memoria virtuale: risulta suddivisa in 1024 macropagine (virtuali) MPi, i = 0,,1023; Direttorio: ciascuna macropagina è costituita da 1024 pagine (virtuali) Pj, j = 0,,1023. contiene descrittori che, nell ordine, si riferiscono alle macropagine: il descrittore di indice i individua la tabella delle pagine che riguarda la macropagina MPi; il direttorio è un indice delle macropagine. Tabella delle pagine che riguarda la macropagina MPi: contiene descrittori che, nell ordine, si riferiscono alle pagine della macropagina MPi : il descrittore di indice j riguarda la pagina Pj di MPi; tale tabella delle pagine è un indice delle pagine di MPi. G. Frosini Memoria virtuale Slide 17

18 PAGINAZIONE NEL PROCESSORE PC (6) Memoria virtuale Memoria fisica MP0 P0... descrittore 0 Direttorio... P1023 descrittore Tabella delle pagine indice di MP0... descrittore 0 descrittore 1023 P0 Pagina fisica corrispondente a MP0, P1023 MP P1023 G. Frosini Memoria virtuale Slide 18

19 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE NEL PROCESSORE PC Posizione del direttorio e tabelle delle pagine in memoria virtuale: deve consentire, dato un qualunque indirizzo virtuale, di trovare facilmente via software il descrittore di tabella delle pagine e il descrittore di pagina appropriati; registro CR3 e descrittori che fanno parte del direttorio: contengono indirizzi fisici e non virtuali; questi indirizzi non possono essere utilizzati via software. Direttorio: può essere posizionato in memoria virtuale in una qualunque macropagina, sia MPA, e di questa in una qualunque pagina, sia PB. Tabelle delle pagine: vengono posizionate in memoria virtuale in un unica macropagina, sia MPT, nello stesso ordine in cui i corrispondenti descrittori compaiono nel direttorio (anche nello stesso ordine delle macropagine di cui sono tabelle indice): quella indice della macropagina MPi deve essere messa in posizione i. conseguentemente: quella indice della macropagina MPT in posizione T (è la pagina PT); la pagina PT, in entrate aventi gli stessi indici di quelle del direttorio, ha gli stessi descrittori di tabelle delle pagine che si trovano nel direttorio stesso. G. Frosini Memoria virtuale Slide 19

20 RELAZIONE TRA INDIRIZZO VIRTUALE E DESCRITTORI Indirizzo virtuale generico: i 10 bit più significativi determinano l indice i di un descrittore all interno del direttorio, e anche l indice i di una tabella delle pagine all interno di MPT, sia Pi; i 10 bit intermedi determinano l indice j di un descrittore di pagina all interno di Pi. 1) Indirizzo virtuale generico indice i di macropagina indice j di pagina indice di riga 2) Indirizzo virtuale del descrittore nel direttorio indice A di macropagina indice B di pagina (direttorio) indice i di descrittore 00 3) Indirizzo virtuale del descrittore in una tabella delle pagine indice T di macropagina indice i di tabella delle pagine indice j di descrittore 00 G. Frosini Memoria virtuale Slide 20

21 ESEMPIO DI POSIZIONAMENTO (1) Esempio memoria virtuale composta da 4 macropagine (0, 1, 2 e 3); ciascuna macropagina composta da 4 pagine (0, 1, 2 e 3); ciascuna pagina può contenere 4 descrittori (0, 1, 2 e 3). Direttorio: posizionato nella macropagina 2, pagina 3; per questo posizionamento si considera la tabella delle pagine puntata dal descrittore 2 del direttorio, e in essa si aggiusta il descrittore 3. Tabelle delle pagine (4 tabelle): posizionate nella macropagina 3; per questo posizionamento si considera la tabella delle pagine puntata dal descrittore 3 del direttorio, e in essa si aggiustano tutti i 4 descrittori. Aggiustamenti necessari: danno luogo a collegamenti aggiuntivi (indicati con linee tratteggiate). G. Frosini Memoria virtuale Slide 21

22 ESEMPIO DI POSIZIONAMENTO (2) Memoria virtuale Memoria fisica MP2 direttorio direttorio tab. pag. (MP0) tab. pag. (MP0) tab. pag. (MP1) MP3 tab. pag. (MP1) tab. pag. (MP2) tab. pag. (MP3) tab. pag. (MP2) tab. pag.(mp3) G. Frosini Memoria virtuale Slide 22

23 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA E RIMPIAZZAMENTO DI PAGINA (1) Routine di page-fault: mancanza di pagina: deve trasferire la pagina mancante in memoria fisica; deve "agganciarla" (nel suo descrittore, deve modificare il bit P e il campo indirizzo); il descrittore coinvolto, che si trova in una tabella delle pagine, viene individuato a partire dall'indirizzo virtuale non tradotto contenuto in CR2. Routine di page-fault: rimpiazzamento, che coinvolge una pagina vittima: deve effettuare un preliminare trasferimento di una pagina in memoria di massa (pagina vittima); deve "sganciarla" (nel suo descrittore, deve modificare il bit P e il campo indirizzo); il descrittore coinvolto, che si trova in una tabella delle pagine, viene individuato a partire dall'indirizzo virtuale della pagina vittima. G. Frosini Memoria virtuale Slide 23

24 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA E RIMPIAZZAMENTO DI PAGINA (2) Individuazione del descrittore da modificare: per individuare quale descrittore di pagina modificare, dato l indirizzo virtuale non tradotto (contenuto di CR2) o l indirizzo della pagina vittima, sia in entrambi i casi indv, si opera come indicato precedentemente, ossia: si utilizzano i 10 bit più significativi di indv come indice i, per individuare una delle 2**10 tabelle delle pagine nella macropagina MPT; si utilizzano i successivi 10 bit di indv come indice j per selezionare un'entrata della tabella delle pagine individuata al punto precedente, che contiene il descrittore cercato; i punti precedenti sono equivalenti al seguente: utilizza i 20 bit più significativi di indv per accedere a un'entrata di un'unica tabella di corrispondenza che si trova in MPT di 2**20 entrate. G. Frosini Memoria virtuale Slide 24

25 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (1) Descrittore da modificare nel direttorio per l aggancio di tabella delle pagine: indirizzo virtuale non tradotto contenuto di CR2: rappresenta l indirizzo virtuale di una pagina indirizzata dalla tabella; dieci bit più significativi di CR2: costituiscono un indice i che individua il descrittore da modificare all interno del direttorio; indirizzo virtuale di tale descrittore: macropagina di indice A, pagina di indice B, indice i. Esiste un altro descrittore da modificare per l aggancio di tabella delle pagine : quello che pone la tabella delle pagine in memoria virtuale, che si trova nella macropagina MPT, pagina PT (tabella indice della macropagina MPT); individuato a partire dall indirizzo virtuale di tale tabella delle pagine. G. Frosini Memoria virtuale Slide 25

26 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (2) Indirizzo virtuale di una tabella delle pagine: nella macropagina MPT, le tabelle delle pagine sono nello stesso ordine dei loro descrittori nel direttorio; l indirizzo virtuale indv_tab_i della tabella delle pagine corrispondente al descrittore i-mo del direttorio è dato da indice di macropagina T, indice di pagina i. Descrittore da modificare nella macropagina MPT, Pagina PT: quello il cui indice è dato dai 10 bit intermedi ind_tab_i, ossia i. osservazione: anche il precedente descrittore può essere direttamente individuato dal contenuto di CR2. G. Frosini Memoria virtuale Slide 26

27 TABELLA DI CORRISPONDENZA IN MEMORIA VIRTUALE: MANCANZA DI TABELLA DELLE PAGINE (2) Contenuto di CR2 indice i di macropagina indice j di pagina indice di riga 1) Indirizzo virtuale del descrittore indice A di indice i di nel direttorio Indice B di macropagina descrittore 00 pagina Indirizzo virtuale della tabella delle pagine mancante indice T di macropagina indice i di tabella delle pagine indice di riga 2) Indirizzo virtuale del descrittore nella macropagina MPT, pagina PT indice T di macropagina indice T di tabella delle pagine indice i di descrittore 00 G. Frosini Memoria virtuale Slide 27

28 COINCIDENZA TRA DIRETTORIO E TABELLA INDICE DI MPT (1) Ricordare: il direttorio e la tabella indice di MPT contengono, in posizione corrispondente, lo stesso descrittore (puntano alla stessa tabella indice). Conseguenza: il direttorio (non avendo vincoli di posizionamento) può essere fatto coincidere con la tabella indice di MPT, nello spazio virtuale e nello spazio fisico; l'entrata del direttorio che punta alla tabella indice di MPT punta al direttorio stesso; in tal modo, un descrittore presente nel direttorio è contemporaneamente un descrittore di tabella delle pagine e un descrittore di pagina contenente una tabella delle pagine. In caso di coincidenza: l intera tabella di corrispondenza diviene di 4 Mbyte; per "sganciare" e "agganciare" una tabella delle pagine occorre modificare un solo descrittore ( i due descrittori da modificare coincidono). G. Frosini Memoria virtuale Slide 28

29 COINCIDENZA TRA DIRETTORIO E TABELLA INDICE DI MPT (2) Memoria virtuale Memoria fisica tab. pag. (MP0) tab. pag (MP1022) MP1023 tab. pag. (MP1022) direttorio e tab. pag (MP1023) direttorio e tab. pag. (MP1023) G. Frosini Memoria virtuale Slide 29

30 MEMORIA FISICA E TABELLA Memoria fisica in memoria virtuale: non è opportuno porre anche la tabella di corrispondenza in memoria virtuale (anch essa occupa spazio virtuale). Indirizzi virtuali delle tabelle di corrispondenza: indirizzi virtuali del direttorio e delle tabelle delle pagine presenti: numericamente coincidenti con quelli fisici; indirizzo virtuale del direttorio: indirizzo fisico contenuto di CR3; indirizzo virtuale di una tabella delle pagine presente: indirizzo fisico contenuto in un descrittore presente nel direttorio. Routine di page-fault: compie lo stesso percorso della MMU; in grado di effettuare "sgancio" (a partire dall indirizzo virtuale della vittima) e "aggancio" (a partire dall indirizzo virtuale contenuto in CR2): dato un indirizzo virtuale, i 10 bit più significativi individuano un descrittore nel direttorio i 10 bit intermedi un descrittore nella tabella delle pagine selezionata. G. Frosini Memoria virtuale Slide 30

31 MEMORIA FISICA IN MEMORIA VIRTUALE Memoria virtuale tab. pag. (MP1) Memoria fisica 1 macropagina Direttorio (residente) tab. pag. (MP1) Finestra FM MP0 Direttorio (residente) tab. pag. (MP0) (residente) Contenitore tab. pag. (MP0) (residente) Contenitore Contenuto Contenuto MP1 G. Frosini Memoria virtuale Slide 31

32 FORMA DI UN DESCRITTORE (1) Descrittore di pagina (nel direttorio delle pagine per una tabella delle pagine, o in una tabella delle pagine per una pagina vera e propria): indirizzo accesso D A PCD PWT S/U R/W P G. Frosini Memoria virtuale Slide 32

33 FORMA DI UN DESCRITTORE (2) Campo indirizzo: specifica l indirizzo fisico (della tabella delle pagine o della pagina). Byte di accesso: bit di presenza P, due bit utili per il rimpiazzamento (A e D), due bit per la gestione della memoria cache (PCD e PWT), due bit per la protezione (S/U e R/W). Bit A (Accessed) e D (Dirty): posti a 1 dalla MMU, rispettivamente, ogni qual volta avviene una accesso alla pagina (traduzione di indirizzo), o un accesso in scrittura. Bit PCD (Page Cache Disable) e PWT (Page Write Through): specificano, rispettivamente, se per quella pagina la memoria cache deve essere disabilitata (determinando lo stato di un apposito piedino CD del processore), e se per quella pagina la memoria cache deve essere gestita in modalità write-through (determinando lo stato di un apposito piedino WT del processore). G. Frosini Memoria virtuale Slide 33

34 FORMA DI UN DESCRITTORE (3) Bit S/U (System/User) e R/W (Read/Write): specificano, rispettivamente, il livello di privilegio della pagina (System = 0, User = 1), e se la pagina è solo leggibile (Read = 0) o anche scrivibile. (Write = 1). Descrittori di tabelle delle pagine (che si trovano nel direttorio delle pagine): sono significativi solo i bit A e P; i bit PCD e PWT non vengono utilizzati perché la memoria cache riguarda solo le pagine; il bit D non è significativo; i bit S/U e R/W contengono informazioni globali sulle tabelle delle pagine indirizzate: S/U: se in qualche tabella delle pagine indirizzata S/U vale 1 (User), allora vale 1; R/W: se in qualche tabella delle pagine indirizzata R/W vale 1 (Write), allora vale 1. Modifiche software a una tabella delle pagine TP: TP deve trovarsi in memoria virtuale; non viene gestito dalla MMU il bit D del descrittore di TP che si trova nel direttorio; viene gestito dalla MMU il bit D del descrittore di pagina che si trova nella tabella delle pagine che pone TP in memoria virtuale. G. Frosini Memoria virtuale Slide 34

35 CAMPO INDIRIZZO DI UN DESCRITTORE Tabella delle pagine o pagina non presente: bit P uguale a 0; campo indirizzo (20 bit): contiene informazioni che individuano la tabella delle pagine o la pagina in memoria di massa. Indirizzo di una pagina in memoria di massa: nel descrittore, può occupare i 20 bit del campo indirizzo, i 4 bit liberi e alcuni altri bit del byte di accesso (tipicamente 3, il bit non utilizzato, il bit A e il bit D), per un totale di 27 bit; questa informazione viene utilizzata dalla routine di page-fault per reperire dalla memoria di massa la tabella delle pagine mancante o la pagina mancante. G. Frosini Memoria virtuale Slide 35

36 FINESTRA FM Funzioni della finestra FM: 1) consentire l accesso alla parte di memoria contenente le strutture dati e le routine di nucleo; 2) consentire l accesso alle tabelle di corrispondenza; 3) gestire il trasferimento delle pagine utente. La finestra FM occupa spazio di indirizzamento virtuale: conveniente limitarne le dimensioni; mappare nella finestra solo quella parte della memoria fisica che consente di soddisfare la funzione di cui ai punti 1); funzione di cui al punto 2): può essere ottenuta anche posizionando le tabelle di corrispondenza in memoria virtuale; funzione di cui al punto 3): può essere ottenuta anche utilizzando una funzione PCI che opera in Bus Mastering. G. Frosini Memoria virtuale Slide 36

37 TRASFERIMENTO DELLE PAGINE Situazione iniziale: sono presenti in memoria fisica solo il direttorio e alcune tabelle delle pagine, le quali consentono di posizionare in memoria virtuale alcune entità iniziali (come il direttorio e alcune tabelle delle pagine, oppure la finestra FM). Trasferimento da memoria di massa a memoria fisica di una nuova tabella delle pagine o di una pagina: avviene su domanda del programma, ossia quando viene generato un indirizzo che genera un page-fault. G. Frosini Memoria virtuale Slide 37

38 RIMPIAZZAMENTO (1) Quando si ha necessità di avere un rimpiazzamento: la routine sceglie la pagina da trasferire da memoria fisica a memoria di massa in base al valore di variabili associate alla rispettive pagine, che contengono una determinata statistica di utilizzo; tipicamente, o la pagina meno frequentemente utilizzata (LFU: Least Frequently Used) o quella non riferita da più tempo (LRU: Least Recently Used); la routine rimpiazza la pagina la cui variabile associata ha il valore minimo; se viene selezionata una pagina che non è stata modificata (D = 0), questa non viene ricopiata nella memoria di massa (la copia esistente è valida). Statistica di utilizzo delle pagine: si basa su un meccanismo che coinvolge il bit A; al verificarsi di certi eventi (per esempio, eventi temporali (ciclicamente) o eventi legati al page-fault) va in esecuzione una routine per le statistiche che esamina il bit A di ogni descrittore, effettua la statistica appropriata e quindi riporta tale bit a zero. G. Frosini Memoria virtuale Slide 38

39 RIMPIAZZAMENTO (2) Frequenza di utilizzo delle pagine: si associa ad ogni pagina una variabile contatore: la routine per le statistiche incrementa la variabile per quelle pagine per le quali il bit A vale 1. Pagina non riferita da più tempo: si associa ad ogni pagina una variabile registro a scorrimento: la routine per le statistiche inserisce nella variabile (nella posizione più significativa) il valore del bit A. Variabile associata a una tabella delle pagine: Nota: non può mai avere un valore inferiore rispetto a quello delle variabili associate alle pagine riferite dalla tabella delle pagine stessa: la routine di page-fault, a parità di condizioni, sceglie una pagina e non una tabella delle pagine. nell intervallo di tempo intercorrente tra un esecuzione della routine per le statistiche e l esecuzione successiva, più accessi a una pagina o a una tabella vengono sempre equiparati ad un unico accesso (la statistica è approssimata). G. Frosini Memoria virtuale Slide 39

40 RIMPIAZZAMENTO DI TABELLE DELLE PAGINE Selezione, per il rimpiazzamento, di una tabella delle pagine: facciamo l ipotesi semplificativa che non venga mai ricopiata in memoria di massa; vengono così perdute eventuali modifiche hardware o software; questo fatto non produce alcun danno: nel momento in cui una tabella delle pagine viene trasferita di nuovo dalla memoria di massa in memoria fisica, non vi sono ancora in memoria fisica pagine da essa riferite; per ogni descrittore presente nella tabella delle pagine: nel byte di accesso, i bit P, A e D valgono 0 (come la copia esistente in memoria di massa); il campo indirizzo contiene l indirizzo della pagina in memoria di massa (come la copia esistente in memoria di massa). G. Frosini Memoria virtuale Slide 40

41 DESCRITTORI DI PAGINA FISICA (1) Memoria fisica: una parte (parte M1) memorizza routine e strutture dati del sistema operativo; una parte (parte M2, costituita da pagine fisiche contenenti 1) direttorio, 2) tabelle delle pagine presenti, e 3) pagine virtuali utente presenti; può essere vista come un array di pagine fisiche, avente un indirizzo iniziale. Parte M1 della memoria fisica : risiede necessariamente in memoria virtuale, per consentire a un programma di eseguire le routine di nucleo. Parte M2 della memoria: potrebbe risiedere o meno in memoria virtuale; se non risiede in memoria virtuale, possiamo avere: il direttorio e le tabelle delle pagine in memoria virtuale; il rimpiazzamento delle pagine utente effettuato in DMA (Bus mastering). Gestione dell'array di pagine fisiche M2: comunemente, mediante un array di descrittori di pagina fisica (incluso nella parte M1). Uguaglianza degli indici dei due array (di pagine fisiche e di descrittori di pagina fisica). G. Frosini Memoria virtuale Slide 41

42 DESCRITTORI DI PAGINA FISICA (2) Descrittore di pagina fisica: struttura dati manipolata unicamente via software; specifica se la pagina fisica è libera, oppure contiene un direttorio, una tabella delle pagine o una pagina utente. Pagina fisica F occupata da una pagina virtuale V: il descrittore contiene anche: un campo residente (specifica se V è rimpiazzabile o meno); un campo contatore (contiene il contatore o il registro a scorrimento per le statistiche relativa a V); un campo ind_virtuale contenente l'indirizzo virtuale di V; un campo ind_massa contenente l'indirizzo di V in memoria di massa; ind_virtuale: serve a trovare il descrittore di V per effettuare lo sgancio ; ind_massa: nello sgancio, sostituisce il campo indirizzo fisico del descrittore di V. G. Frosini Memoria virtuale Slide 42

43 DESCRITTORI DI PAGINA FISICA (3) Pagina fisica F occupata da una tabella delle pagine T: l indirizzo virtuale si riferisce a una pagina indirizzata dalla tabella stessa; di questo vengono considerati solo i 10 bit più significativi, che costituiscono l indice all interno del direttorio. Pagina fisica F occupata da un direttorio: il descrittore di pagina fisica non contiene altre informazioni; tali descrittori vengono esaminati solo dalla routine per le statistiche. Corrispondenza utilizzata (noto l indirizzo iniziale di M2 e la dimensione di una pagina fisica, l indirizzo dell array dei descrittori di pagina fisica e la dimensione di un descrittore di pagina fisica); dato un indirizzo fisico di pagina, si ricava il corrispondente indirizzo del descrittore di pagina fisica; dato un indirizzo di descrittore di pagina fisica, si ricava il corrispondente indirizzo fisico di pagina. G. Frosini Memoria virtuale Slide 43

44 ROUTINE DI PAGE-FAULT (1) Routine di page-fault per rimpiazzamento di pagina: seleziona un descrittore di pagina fisica libera, ovvero il descrittore della pagina fisica contenente la pagina virtuale vittima (DPF); dall indirizzo di DPF, ricava l'indirizzo fisico F della corrispondente pagina fisica; ricopia (eventualmente) in memoria di massa il contenuto di F; azioni di sgancio : il descrittore della pagina (virtuale) vittima, sia desv_vittima, viene individuato utilizzando il campo ind_virtuale di DPF; in desv_vittima vengono modificati il bit P e la componente "indirizzo fisico", sostituendo l'indirizzo fisico F con l'indirizzo in memoria di massa specificato dal campo ind_massa di DPF. G. Frosini Memoria virtuale Slide 44

45 ROUTINE DI PAGE-FAULT (2) azioni di aggiornamento del descrittore di pagina fisica DPF (effettuate alla fine dello sgancio, prima dell aggancio ): modifica del campo ind_virtuale, con il contenuto di CR2; utilizzo del nuovo ind_virtuale per trovare il descrittore di pagina (virtuale) mancante, sia desv_mancante; modifica del campo ind_massa, con il valore prelevato da desv_mancante. ricopia nella pagina fisica F la pagina virtuale mancante; azioni di aggancio : nel descrittore di pagina (virtuale) desv_mancante vengono modificati il bit P e la componente "indirizzo", sostituendo l'indirizzo della pagina in memoria di massa ind_massa con l'indirizzo F. G. Frosini Memoria virtuale Slide 45

46 SCHEMA DELLE OPERAZIONI SUI DESCRITTORI CR2 Descrittore della pagina virtuale vittima (individuato da ind_virtuale presente nel DPF Descrittore della pagina virtuale che ha prodotto page-fault individuato da ind_virtuale nuovo (CR2) 1) ind_fisico F P ind_massa P 3) Descrittore della pagina fisica contenente la pagina vittima ( in corrispondenza con ind_fisico F )... ind_virtuale ind_massa... 2) DPF G. Frosini Memoria virtuale Slide 46

47 ROUTINE PER LE STATISTICHE La routine per le statistiche può operare nel seguente modo: scorre tutti i descrittori di pagina fisica, e per ogni descrittore che specifica che il contenuto è un direttorio o una tabella delle pagine: scorre tutti i 1024 descrittori; per ogni descrittore di pagina o di tabella delle pagine presente, esamina e riporta a 0 il bit A; dal campo indirizzo del descrittore stesso (contenente l'indirizzo fisico della tabella delle pagine o della pagina) risale all indirizzo del descrittore di pagina fisica (quindi, al descrittore di pagina fisica) e in questo aggiorna la statistica. G. Frosini Memoria virtuale Slide 47

48 BUFFER DEI DESCRITTORI DI PAGINA (1) Meccanismo di corrispondenza tra indirizzo virtuale e indirizzo fisico: richiede due accessi in memoria fisica (al direttorio delle pagine e a una tabella delle pagine); comporta un tempo inaccettabilmente lungo. Buffer interno (TLB: Translation Lookaside Buffer); funge da memoria cache dei descrittori di pagina (non dei descrittori di tabella delle pagine) ; memorizza i descrittori di pagina utilizzati più di recente; la MMU, nel tradurre un indirizzo da virtuale a fisico, prima accede al TLB, e, in caso di fallimento, al direttorio e alla tabella delle pagine coinvolta. G. Frosini Memoria virtuale Slide 48

49 BUFFER DEI DESCRITTORI DI PAGINA (2) Translation Lookaside Buffer : associativo a insiemi; costituito da otto insiemi, ciascuno dei quali ha un campo R e quattro gruppi: ogni gruppo ha un campo Ti (Tag) e un campo Di (Dati); composto da tre banchi di memoria, ciascuno di otto righe: MMU: ogni riga contiene per il primo banco il campo R, per il secondo banco i quattro campi Tag e per il terzo banco i quattro campi Dati. considera l indirizzo virtuale di pagina (20 bit) suddiviso in due componenti, un etichetta E (i 17 bit più significativi) e un indice I (i 3 bit meno significativi); l indice seleziona l insieme all interno del TLB; l etichetta E è destinata a essere confrontata con le etichette Ec presenti in ognuno dei 4 campi Tag dell insieme selezionato. G. Frosini Memoria virtuale Slide 49

50 BUFFER DEI DESCRITTORI DI PAGINA (3) Indirizzo virtuale E 3 2 I 0 R T1 T2 T3 T4 D1 D2 D3 D4 Indirizzo fisico G. Frosini Memoria virtuale Slide 50

51 BUFFER DEI DESCRITTORI DI PAGINA (4) Campo Tag di ciascun blocco (T1, T2, T3 e T4): contiene il bit di validità V, l etichetta Ec, il bit D, i bit S/U e R/W; produce successo se: V vale 1; E è uguale a Ec; D vale 0 e l accesso è in lettura, oppure D vale 1 (l accesso può essere qualunque); sono soddisfatte le regole di protezione (bit S/U e R/W di valore opportuno). Campo dati di ciascun blocco (D1, D2, D3 e D4): contiene l indirizzo fisico della pagina e i bit PCD e PWT. Successo per un blocco: prelievo del campo dati di quel blocco. Memoria riferita tramite TLB: 32 pagine, 128 Kbyte di memoria; stime attendibili: nel 98-99% dei casi la MMU trova direttamente nel buffer le informazioni di corrispondenza. Descrittori presenti nel TLB: nelle tabelle delle pagine hanno il bit A uguale a 1. G. Frosini Memoria virtuale Slide 51

52 BUFFER DEI DESCRITTORI DI PAGINA (5) Fallimento di un blocco per cui V vale 1 e si ha coincidenza di etichette: se il fallimento è dovuto a valori non appropriati dei bit S/U e R/W, viene generata una eccezione di protezione; se il fallimento è dovuto a un valore non appropriato del bit D, avviene 1) un accesso in memoria alla tabella delle pagine, 2) la modifica del bit D, e 3) il trasferimento del descrittore modificato nella stessa posizione del TLB: l aggiornamento del bit D non avviene direttamente nel TLB, in quanto la routine di page-fault esamina il bit D solo nella tabella delle pagine coinvolta (non può accedere al TLB perché non esistono istruzioni). Fallimento di tutti i blocchi per V uguale a 0 o per non coincidenza di etichette: se esiste almeno un blocco per cui V vale 0, avviene un accesso in memoria alla tabella delle pagine e il trasferimento del descrittore in quel blocco; se per tutti i blocchi V vale 1 e non si ha uguaglianza tra etichette, avviene un accesso in memoria alla tabella delle pagine e il trasferimento del descrittore nel blocco identificato dal campo R. G. Frosini Memoria virtuale Slide 52

53 BUFFER DEI DESCRITTORI DI PAGINA (6) Modifica (via software), in una tabella delle pagine, di un descrittore di pagina presente anche nel TLB: il gruppo del TLB che contiene il descrittore deve essere invalidato; esempio: pagina trasferita in memoria di massa (modifica dei campi P e indirizzo). istruzione INVLPG (INVaLidate PaGe): richiede la specifica dell indirizzo virtuale della pagina; provoca l invalidazione del blocco, nell insieme selezionato, in cui E è uguale a Ec; ulteriore motivo che giustifica la presenza di ind_virtuale nei descrittori di pagina fisica. Modifica che interessa tutti i descrittori presenti nel TLB: occorre invalidare il contenuto di tutto il TLB; esempio: la routine per le statistiche esamina ogni descrittore di pagina, e se il bit A vale 1 lo riporta a 0; tutti i descrittori di pagina presenti nel TLB hanno (nelle tabelle delle pagine) il bit A uguale a 1; questo si ottiene con una scrittura nel registro CR3 (eventualmente riscrivendoci la stessa quantità già presente nel registro stesso). G. Frosini Memoria virtuale Slide 53

54 RIMPIAZZAMENTO NEL TLB Algoritmo di rimpiazzamento: pseudo LRU (segue la regola LRU in modo non preciso). Campo R di 3 bit, B0, B1 e B2: viene esaminato in caso di fallimento per tutti i 4 blocchi, con V uguale a 1 e non uguaglianza tra etichette; avviene la sostituzione di uno dei blocchi, siano L0, L1, L2 o L3, in base alla seguente regola: B0 uguale a 0 (L0 o L1 non riferiti da più tempo): se B1 vale 0 (L0 non riferito da più tempo), allora sostituire L0; se B1 vale 1 (L1 non riferito da più tempo), allora sostituire L1. B0 uguale a 1 (L2 o L3 non riferiti da più tempo): se B2 vale 0 (L2 non riferito da più tempo), allora sostituire L2; se B2 vale 1 (L3 non riferito da più tempo), allora sostituire L3. G. Frosini Memoria virtuale Slide 54

55 AGGIORNAMENTO DEL CAMPO R Il campo R viene aggiornato ogni volta che un blocco produce successo o subisce rimpiazzamento. Successo (non ha rilevanza quanto valeva R): B0 viene forzato a 1 se l accesso interessa L0 o L1, a 0 se l accesso interessa L2 o L3; B1 viene forzato a 1 se l accesso interessa L0, a 0 se l accesso interessa L1 (altrimenti non viene modificato); B2 viene forzato a 1 se l'accesso interessa L2, a 1 se l'accesso interessa L3 (altrimenti non viene modificato). Rimpiazzamento (ha rilevanza quanto valeva R): B0 cambia valore; B1 cambia valore se B0 valeva 0; B2 cambia valore se B0 valeva 1. L algoritmo non è precisamente un LRU: la sostituzione interessa a turno L0 o L1, oppure L2 o L3. G. Frosini Memoria virtuale Slide 55

56 TRASFERIMENTI IN BUS MASTERING Funzione che opera in Bus Mastering: gestisce descrittori di buffer che contengono indirizzi fisici. Routine che inizializza un descrittore di buffer: deve essere in grado di accedere alle tabelle delle pagine, per poter prelevare indirizzi fisici. Pagine coinvolte nel Bus Mastering: devono risiedere in memoria fisica per tutta l operazione, e quindi non possono essere soggette al meccanismo di rimpiazzamento; i descrittori di pagina fisica in cui risiedono devono avere il campo residente che specifica vero. G. Frosini Memoria virtuale Slide 56

MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice:

MEMORIA VIRTUALE. Programma: Processore: Memoria fisica: Caso più semplice: MEMORIA VIRTUALE Programma: utilizza indirizzi che prendono il nome di indirizzi logici: l insieme degli indirizzi logici costituisce il cosiddetto spazio logico. Processore: utilizza indirizzi che prendono

Dettagli

SOLUZIONI: Memoria virtuale

SOLUZIONI: Memoria virtuale SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi

Dettagli

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati: SRIZIO Segmentazione In un sistema che gestisce la memoria con spazio logico suddiviso in segmento codice e segmento dati (comprensivo della pila) e caricamento in partizioni variabili con rilocazione

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

Sistemi operativi e distribuiti

Sistemi operativi e distribuiti Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento

Dettagli

Fallimenti nella TLB

Fallimenti nella TLB Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La memoria gerarchica La cache: come migliorare le prestazioni Ricapitolando (1) La memoria principale e la cache sono scomposte in blocchi di uguale dimensione L indirizzo del

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 205-6 Pietro Frasca Lezione 3 Martedì 7--205 Paginazione su richiesta Con la tecnica della paginazione

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli

Struttura delle memorie cache

Struttura delle memorie cache Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/24

Dettagli

Memoria Virtuale e I/O

Memoria Virtuale e I/O Memoria Virtuale e I/O Paolo Baldan Baldan@dsi.unive.it Introduzione CPU - progettazione - prestazioni ideali Le prestazioni reali sono influenzate (pesantemente) da memoria e I/O. Memoria - gerarchie

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Informatica B Il modello della memoria 2 E un modello lineare La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M Il numero che identifica ogni cella è detto

Dettagli

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1 Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 06/01/2013 versione 2 1 Obiettivo Sommario Livelli della gerarchia di memoria Memoria cache: concetti

Dettagli

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene

Dettagli

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità Sistema di Memoria Caratteristiche desiderabili Ampia capacità Velocità Economicità 1 Memoria Cache L'idea alla base della memoria cache nasce dalla semplice osservazione che la memoria centrale (dove

Dettagli

La gerarchia delle memorie

La gerarchia delle memorie La gerarchia delle memorie Gestione della memoria Ogni processo, per avanzare necessità che il relativo programma risieda nella memoria centrale, Tale programma è costituito da memoria e dati. Lo spazio

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

Gestione della memoria

Gestione della memoria Gestione della memoria Gestione della memoria In un sistema multiprogrammato il numero di processi è > del numero di processori, ciò implica: unità di elaborazione virtuale memoria virtuale Un gestore

Dettagli

Cache: 1 livello della gerarchia di memoria

Cache: 1 livello della gerarchia di memoria Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (9 punti) Si

Dettagli

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

Gestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica 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

Dettagli

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può

Dettagli

static dynamic random access memory

static dynamic random access memory LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento

Dettagli

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

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

Dettagli

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

Registri della CPU. Memoria Centrale. Memoria di Massa. Memorie di altri sistemi in rete + Veloce + Vicina alla CPU + Costosa Registri della CPU Memoria cache di primo livello sul microprocessore L1 - Capiente Memoria cache di secondo livello sul microprocessore L2 Memoria Centrale - Veloce

Dettagli

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

SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08. SISTEMI OPERATIVI 08.a Gestione della memoria Gestione della memoria Partizionamento Paginazione Segmentazione Memoria virtuale 1 Obiettivi La gestione della memoria (effettuata dal SO usando gli accorgimenti

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.

Dettagli

Esercizio: memoria virtuale

Esercizio: memoria virtuale Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico

Dettagli

Gestione della memoria

Gestione della memoria Gestione della memoria centrale Gestione della memoria Concetti generali. Swapping. Allocazione contigua di memoria. Paginazione. Segmentazione. Segmentazione con paginazione. Esempio: Pentium Intel Background

Dettagli

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide

Dettagli

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1

MULTIPROGRAMMAZIONE E PROTEZIONE. G. Frosini Multiprogrammazione e Protezione Slide 1 MULTIPROGRAMMAZIONE E PROTEZIONE G. Frosini Multiprogrammazione e Protezione Slide 1 SISTEMI MULTIPROGRAMMATI Sistema di elaborazione con un solo processore: può eseguire un solo programma alla volta;

Dettagli

Memoria cache, interrupt e DMA

Memoria cache, interrupt e DMA FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide

Dettagli

Il Sistema Operativo. Informatica Sistema Operativo 1

Il Sistema Operativo. Informatica Sistema Operativo 1 Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto

Dettagli

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3

Dettagli

Matlab/Octave - Esercitazione 13

Matlab/Octave - Esercitazione 13 Facoltà di Ingegneria Industriale Dipartimento di Elettronica e Informazione MATLAB/Octave Laurea in Ingegneria - Esercitazione Energetica, 13 Meccanica e dei Trasporti Matlab/Octave - Esercitazione 13

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Gerarchie di memoria Memorie a componenti dinamici 1

Gerarchie di memoria Memorie a componenti dinamici 1 Gerarchie di memoria Memorie a componenti dinamici 1 Denominate Dynamic RAM Memorizzazione su componenti capacitivi 1 transistor per bit (4-6 per Static RAM), dunque maggiore densità Richiede un ciclo

Dettagli

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1 Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria

Dettagli

Struttura interna del sistema operativo Linux

Struttura interna del sistema operativo Linux Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04

Dettagli

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Sistemi Operativi Il Sistema Operativo Windows (parte 2) Sistemi Operativi Il Sistema Operativo Windows (parte 2) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Gestione della memoria 1 Ogni processo dispone

Dettagli

Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl

Sistemi operativi 2/ed Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari Copyright 2008 The McGraw-Hill Companies srl SOLUZIONI DEI PROBLEMI DEL CAPITOLO 4. Soluzione: Adottando lo schema best-fit la partizione libera utilizzata per allocare un segmento di dimensione pari a 56 byte è quella le cui dimensioni siano le

Dettagli

Sottosistemi ed Architetture Memorie

Sottosistemi ed Architetture Memorie Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di

Dettagli

I formati delle istruzioni

I formati delle istruzioni Appunti di Calcolatori Elettronici Le istruzioni I formati delle istruzioni... 1 Criteri generali di progettazione dei formati delle istruzioni... 2 Cenni all indirizzamento... 4 Indirizzamento immediato...

Dettagli

Calcolo prestazioni cache (1)

Calcolo prestazioni cache (1) Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1

Dettagli

CAP9. Device drivers

CAP9. Device drivers Struttura interna del sistema operativo Linux CAP9. Device drivers Device drivers Gestori di periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Esame di INFORMATICA Lezione 4

Esame di INFORMATICA Lezione 4 Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite

Dettagli

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI ESERCIZIO 1 (10 Punti) Si implementi una rete sequenziale la cui uscita valga Z=1 solo quando viene riconosciuta la sequenza in ingresso

Dettagli

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06. SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a

Dettagli

Gli attori principali di un architettura

Gli attori principali di un architettura Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali

Dettagli

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione Gestione della memoria Introduzione Swapping Allocazione contigua Paginazione Introduzione In un sistema monoprogrammato la memoria centrale è divisa in due parti: una per il sistema operativo, l altra

Dettagli

Architettura degli elaboratori - 2 -

Architettura degli elaboratori - 2 - Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it

Dettagli

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica!

Obiettivi! Memoria Virtuale! Memoria Virtuale > Memoria Fisica! Obiettivi Memoria Virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali Paginazione su richiesta (Demand paging) Algoritmi di sostituzione delle pagine Algoritmi di allocazione

Dettagli

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Dettagli

Sistemi Operativi Gestione della Memoria (parte 2)

Sistemi Operativi Gestione della Memoria (parte 2) Sistemi Operativi Gestione della Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Memoria Virtuale 1 Una singola partizione o anche l intera

Dettagli

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

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente uoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine dierse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è il

Dettagli

Struttura interna del Sistema Operativo. 3. La gestione della memoria virtuale

Struttura interna del Sistema Operativo. 3. La gestione della memoria virtuale Struttura interna del Sistema Operativo 3. La gestione della memoria virtuale Il concetto di memoria virtuale Separare il concetto di spazio di indirizzamento di un programma eseguibile e dimensione effettiva

Dettagli

Descrivere i vantaggi di un sistema a memoria virtuale

Descrivere i vantaggi di un sistema a memoria virtuale Descrivere i vantaggi di un sistema a memoria virtuale Concetti fondamentali! Paginazione su richiesta (Demand paging)! Algoritmi di sostituzione delle pagine! Algoritmi di allocazione dei frame! Il problema

Dettagli

Simuliamo ora il funzionamento di LRU sulla reference string data:

Simuliamo ora il funzionamento di LRU sulla reference string data: 1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

Esercizio: memoria virtuale

Esercizio: memoria virtuale Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Tecnologie per le Memorie Anno Accademico Francesco Tortorella Gerarchia di memoria: vista complessiva Gerarchia di memoria: tecnologie Accesso casuale (random):

Dettagli

Memoria Cache. La memoria cache

Memoria Cache. La memoria cache Testo di rif.to: [Congiu] 6.1 (pg. 193 199) Memoria Cache 06.a Memoria associativa Cache completamente associativa Cache a mappatura diretta Cache set-associativa a n-vien Cache nell Xscale PXA-255 La

Dettagli

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi

Sistemi Operativi Esercizi Ricapitolazione. Docente: Claudio E. Palazzi Sistemi Operativi Esercizi Ricapitolazione Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Problema Numerosi operai in una fabbrica preparano un unico prodotto con l utilizzo di na quantità del componente

Dettagli

Il concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale

Il concetto di memoria virtuale. Struttura interna del Sistema Operativo. Memoria virtuale: indirizzi virtuali. Codifica Esadecimale Il concetto di memoria virtuale Struttura interna del Sistema Operativo 3. La gestione della memoria virtuale 25 marzo 2004 Separare il concetto di spazio di indirizzamento di un programma eseguibile e

Dettagli

Struttura dell elaboratore elettronico

Struttura dell elaboratore elettronico Struttura dell elaboratore elettronico Concetti di base della tecnologia dell Informazione e della Comunicazione Qual è il significato del termine informatica? E' la scienza che si propone di raccogliere,

Dettagli

Modi di esecuzione user / kernel

Modi di esecuzione user / kernel Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

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

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E Spazio di indirizzamento virtuale Riprendiamo lo spazio di indirizzamento virtuale del programma di inversione stringa LO SPAZIO DI INDIRIZZAMENTO VIRTUALE DI UN PROCESSO É Spazio di indirizzamento virtuale

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

Sistemi Operativi Esercizi Gestione Memoria

Sistemi Operativi Esercizi Gestione Memoria Sistemi Operativi Esercizi Gestione Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides ad A. Memo e T. Vardanega Sistemi Operativi - C. Palazzi 64 Esercizio 1 Dato un

Dettagli

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine

Dettagli

Il software: Istruzioni per il computer

Il software: Istruzioni per il computer Il software: Istruzioni per il computer Software applicativo aiuta a svolgere operazioni utili in vari campi programmi di videoscrittura, fogli elettronici, videogiochi Software di sistema permette l utilizzo

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

Memoria virtuale (seconda parte)

Memoria virtuale (seconda parte) Memoria virtuale (seconda parte) G Lettieri 18 Aprile 216 1 MMU 2 : tabella su 4 livelli Proviamo a calcolare quanto è grande la tabella di corrispondenza usata da MMU 1 La memoria virtuale è di 2 48 byte

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 14 Martedì 29-11-2016 Algoritmi di rimpiazzamento delle pagine Un algoritmo

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate. Le Memorie Supporti sui quali le informazioni vengono fisicamente memorizzate. Si distinguono per: Velocità Costo per bit Tipo di accesso Accesso a byte o blocchi di byte Volatilità Parte I 15 Due Tipi

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

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

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems Dove siamo Gestione della Memoria (1) Dove siamo Dove siamo Gestione della memoria (vista utente) exec() shmalloc() sbrk() getrlimit() File Mgr UNIX Device Mgr Mgr Mgr Application Program Hardware Alloc()

Dettagli

Struttura Logica del S.O:

Struttura Logica del S.O: Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi

Dettagli

Riprendiamo l esercizio calcolatrice

Riprendiamo l esercizio calcolatrice Riprendiamo l esercizio calcolatrice Scrivere un programma calcolatrice che legga da tastiera due variabili intere a e b, poi Stampi un menu con un valore numerico associato a quattro operazioni possibili:

Dettagli

Corso di Calcolatori Elettronici I A.A Le memorie Lezione 16

Corso di Calcolatori Elettronici I A.A Le memorie Lezione 16 Corso di Calcolatori Elettronici I A.A. 2010-2011 Le memorie Lezione 16 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Definizione di memoria Sistema organizzato con un insieme di registri

Dettagli

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1

CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 CAPITOLO 17 PROBLEMI DEL PRODUTTORE/CONSUMATORE v1 PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore è uno dei problemi più comuni di concorrenza tra processi. Il problema presenta uno o più

Dettagli

File System ext2. Struttura del filesystem ext2.

File System ext2. Struttura del filesystem ext2. Struttura di base File System ext2 Lo spazio fisico di un disco viene usualmente diviso in partizioni; ogni partizione può contenere un filesystem. Nel filesystem ext2 il blocco (block) definisce la minima

Dettagli

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel microprocessore 8086 abbiamo una gran quantità di registri I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1

Dettagli

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE

CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE CAPITOLO 22 PROBLEMA DEL PRODUTTORE/CONSUMATORE Il problema del produttore/consumatore Il primo approccio alla risoluzione del problema del produttore/consumatore considera un buffer infinito presentato

Dettagli

Lezione n.14. La memoria cache

Lezione n.14. La memoria cache Lezione n. La memoria cache Sommario: Politiche di sostituzione Memoria cache Mapping degli indirizzi (modo in cui i dati sono memorizzati nella cache) Capacità e prestazioni Questa lezione conclude la

Dettagli

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

CPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica CPU,, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Ripassiamo: Struttura di un Computer CPU Regola il funzionamento del computer E' in grado di eseguire

Dettagli

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive) SEMAFORI 1 SEMAFORI Variabile intera non negativa con valore iniziale >= 0 Al semaforo è associata una lista di attesa Qs nella quale sono posti i descrittori dei processi che attono l autorizzazione a

Dettagli

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. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software

Dettagli

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica Ricapitolazione di concetti base Sistemi Operativi - T. Vardanega Pagina 92/113 Gerarchia fisica di memoria 2 La cache è suddivisa in blocchi

Dettagli

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente Architettura dei calcolatori e sistemi operativi M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente 18.01.2015 Architettura Intel x64 Lo spazio di indirizzamento virtuale

Dettagli