The big picture. Gestione della Memoria (2) Paging (paginazione) Schema di traduzione degli indirizzi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "The big picture. Gestione della Memoria (2) Paging (paginazione) Schema di traduzione degli indirizzi"

Transcript

1 The big picture Augmenting Swappig Virtual Page request Page replacement Frame Paging Gestione della Memoria () Process organization () Non contiguous Contiguous Dynamic Table based Paging & HW support Limit & relocation Dedicated Page TLB Segment Paging (paginazione) Spazio di indirizzamento logico del processo non contiguo; Si divide la memoria fisica in blocchi di e fissa, chiamati frame o pagine fisiche (la e è una potenza del, compresa fra 5 byte e 6 MB, ma valori tipici negli elaboratori attuali sono 4KB!8KB) Si divide la memoria logica in blocchi della stessa e, chiamati pagine Si tiene traccia di tutti i frame liberi Per eseguire un programma di e n pagine, è necessario trovare n frame liberi prima di caricare il programma y = B t (x) : Si impiega una tabella delle pagine per tradurre gli indirizzi logici negli indirizzi fisici corrispondenti Solo frammentazione interna (relativa all ultimo frame) Schema di traduzione degli indirizzi L indirizzo generato dalla CPU viene suddiviso in: Numero di pagina (p) impiegato come indice in una tabella di pagine che contiene l indirizzo base di ciascun frame nella memoria fisica Offset nella pagina (d) combinato con l indirizzo base per definire l indirizzo fisico di memoria che viene inviato all unità di memoria Numero di pagina p m! n offset Spazio logico di m indirizzi con m-n pagine di e n d n 3

2 Schema di traduzione degli indirizzi: esempio 4 KB (=496 byte) e pagina indirizzi logici a 3 bit (m=3) n = 496 n = g=m-n=3- = bits p bits d indirizzo logico di 3 bit // // // TranslateUserToSystem // //!Translate a user (in the process referenced by pcb) //!into an OS (physical) This works for simple one-level //!page s, but will have to be modified for two-level page //!s // // uint3 TranslateUserToSystem (PCB *pcb, uint3 addr) { } Traduzione dell indirizzo int! page = addr / MEMORY_PAGE_SIZE; int offset = addr % MEMORY_PAGE_SIZE; if (page > pcb->npages) { return (); } return ((pcb->page[page] & MEMORY_PTE_MASK) + offset); numero pagina offset nella pagina 6 Esempi di paginazione Modello di paginazione di memoria logica e memoria fisica Memoria da 3 byte con pagine da 4 byte ESEMPIO: 6 =! #pagina=, offset=! 6"4+ = 6 Tabella dei frame Poiché il SO gestisce la memoria fisica, deve essere informato su: quali frame sono assegnati quali e quanti frame sono liberi Le informazioni sono contenute nella tabella dei frame Una entry per ciascun frame, per definire se la pagina fisica è libera o assegnata e, nel secondo caso, a quale pagina di quale(/i) processo(/i)

3 Riassumendo Se la pagina i è caricata al page frame j, l indirizzo virtuale è rilocato al page frame j se la pagina non è caricata (page fault), il SO interrompe il processo e carica la pagina nel page frame 6 64K 56 6K K 48 5K K K 36 4K 3 36K - 8 3K 3 4 8K 4K - 6 K 6K 8 K - 4 8K 4 4K 7 Virtual 8 3K 4 8K 4K 6 K 6K 8 K 4 8K 4K Physical memory Implementazione delle tabelle (vista software) typedef struct { unsigned int frame:; unsigned int bit : ; /* => frame is valid */ unsigned int dirty: ; /* => frame has been updated; needs writing */ unsigned int ref : ; /* => the page has been referenced */ int cnt; /* how many references */ int first_time; /* swap-in time for page */ int last_time; /* last time referenced */ } page_entry; typedef struct { page_entry entries[maxpages]; } page_; typedef struct { int page; } frame_entry; typedef struct { frame_entry entries[maxframes]; } frame_; page_ *PTBR; frame_ *FTBR; 9 Cosa c è in una page entry? Valid bit: se logical page number ha un corrispondente physical frame in memoria Page frame number: pagina nella memoria fisica Referenced (Used) bit: se la pagina è stata utilizzata Dirty (modified) bit : se la pagina è stata modified Informazione di protezione Protection D R V Page frame number Protezione della memoria! La protezione della memoria è implementata associando uno o più bit di protezione a ciascun frame nella tabella delle pagine I bit determinano se una certa pagina può essere acceduta in lettura, scrittura e/o esecuzione Tutti i riferimenti alla memoria passano attraverso la tabella delle pagine Mentre si effettua il mapping da indirizzi logici ad indirizzi fisici, si verificano le modalità di accesso al dato frame Un tentativo di accesso che viola quanto codificato nei bit di protezione provoca una trap al SO Dirty bit Referenced or Used bit Valid bit Protection D R V Page frame number

4 Protezione della memoria! Un ulteriore bit di validità viene associato ad ogni elemento della tabella delle pagine: Un valore valido indica che la pagina è nello spazio degli indirizzi logici del processo, e quindi è una pagina legale Un valore non valido indica che la pagina non si trova nello spazio di indirizzi logici del processo Il bit di validità consente di riconoscere gli indirizzi illegali e di notificare l anomalia con un segnale di eccezione È il sistema operativo che concede o revoca il diritto di accesso ad una data pagina, impostando opportunamente il bit di validità Process Augmenting organization () Schema generale Contiguous Swappig Virtual Non contiguous Page request Page replacement Paging Dynamic Table based Frame Paging & Protection D R V Page frame number HW support Limit & relocation Dedicated Page TLB Segment 4 CPU Supporto hardware alla paginazione page number p page offset (=line) d p- p p+ f page Page frame number f d Page frame number physical memory 5 f- f f+ f+ Implementazione della tabella delle pagine La tabella delle pagine risiede in memoria centrale; si ha una tabella per ogni processo Il registro Page!Table Base Register (PTBR) punta all inizio della tabella Il registro Page!Table Length Register (PTLR) indica la e della tabella Con questo schema, ogni accesso a dati o istruzioni richiede di fatto due accessi alla memoria: uno per la tabella e uno per le istruzioni/dati Il problema dei due accessi alla memoria può essere risolto per mezzo dei registri associativi (altrimenti detti translation look aside buffer, TLB) attraverso i quali si effettua una ricerca parallela veloce su una piccola tabella (64!4 elementi)

5 Augmenting Schema generale Swappig Virtual Page request Page replacement Frame TLB Memoria associativa! ricerca parallela # Pagina # Frame Process organization () HW support Non contiguous Contiguous Limit & relocation Dedicated Paging Dynamic Table based Page TLB Paging & Segment " Traduzione dell indirizzo (p, d) Se p è nel registro associativo, si reperisce il numero del frame Altrimenti, si recupera il numero di frame dalla tabella delle pagine in memoria 7 Supporto hw per la tabella delle pagine Gestione dei TLB misses Se PTE non è in TLB, il SO effettua il lookup nella page hardware o software Hardware TLB replacement CPU fa il page lookup Più veloce che via software meno flessibile e hardware più complesso Software TLB replacement SO riceve TLB exception Exception handler fa page lookup & scrive il risultato in TLB Programma continua dopo il return from exception TLB capaci (basso miss rate) lo rendono possibile 9

6 Memoria condivisa Codice condiviso Una copia di codice di sola lettura viene condivisa fra processi (ad es: text editor, compilatori, sistemi a finestre) Il codice condiviso deve apparire nella stessa locazione nello spazio degli indirizzi logici di tutti i processi Codice e dati privati Ciascun processo mantiene una copia separata dei dati e del codice Le pagine di codice e dati privati possono apparire ovunque nello spazio degli indirizzi Esempio: pagine condivise Condivisione di codice in un ambiente di paginazione: editor contenuto in tre pagine Struttura della tabella delle pagine Paginazione gerarchica Tabella delle pagine hash Tabella delle pagine invertita Struttura della tabella delle pagine: gerarchica Quando lo spazio degli indirizzi logici è grande, la stessa tabella delle pagine viene paginata Esempio: paginazione a due livelli st level page nd level page s main memory

7 Page base Struttura della tabella delle pagine: gerarchica page number page offset p = bits p = 9 bits offset = 3 bits p st level page p nd level page physical 9 3 frame number main memory 5 Struttura della tabella delle pagine: hashing I numeri di pagina virtuale vengono confrontati con tutti gli elementi della catena A fronte di una ricerca positiva, si estrae il corrispondente numero di frame Struttura della tabella delle pagine: inversione page number process ID p = 9 bits offset = 3 bits pid p search k pid pid pid k p p p k inverted page page offset physical 9 k 3 Page frame number main memory Process Augmenting organization () HW support Schema generale Non contiguous Contiguous Swappig Virtual Limit & relocation Page request Page replacement Dedicated Paging Dynamic Table based Page Frame TLB Paging & Segment

8 Segmentazione Schema di gestione della memoria che asseconda la visione utente (l utente generalmente non pensa alla memoria come ad un array lineare di byte) Un programma è una collezione di segmenti; un segmento è un unità logica Ciascun segmento ha lunghezza variabile, definita intrinsecamente dal compito svolto dal segmento Gli elementi, all interno di un segmento, sono identificati mediante il loro offset dall inizio del segmento Ogni indirizzo è rappresentato da una coppia ordinata di valori <numero_di_segmento, offset > K 6K K 8K 4K Symbol Segmentazione 6K K 8K 4K Source text 8K 4K Constants K 8K 4K Call stack K Segment K Segment K Segment K Segment 3 Operating Systems and 3Distributed Systems Segmentazione: Schema logico Modello di traduzione B t : segments x offsets # physical $ {%} B t (i, j) = k S: segments # segment es B t (S(segName), j) = k N: offset names # offset es B t (S(segName), N(offsetName)) = k Spazio utente Spazio fisico di memoria

9 Schema generale Augmenting Swappig Virtual Page request Page replacement Frame Esempi: <,53> = 4353 <3,85> = 45 <,> = TRAP Process organization () Non contiguous Contiguous Paging Dynamic Table based Paging & HW support Limit & relocation Dedicated Page TLB Segment Segmentazione: supporto HW Tabella dei segmenti! mappa gli indirizzi fisici biali; ciascun elemento della tabella contiene: base! indirizzo fisico iniziale della memoria contenente il segmento limite! specifica la lunghezza del segmento Il registro Segment!Table Base Register (STBR) punta alla locazione in memoria della tabella dei segmenti Il registro Segment!Table Length Register (STLR) indica il numero di segmenti utilizzati dal programma; un numero di segmento s è legale se s < STLR Protezione: Si associa a ciascun elemento della tabella dei segmenti: bit di validità = -> segmento illegale privilegi read/write/execute La condivisione di codice viene implementata a livello di segmento Dato che i segmenti variano di e, l allocazione della memoria è un problema di allocazione dinamica Segmentazione: supporto HW

10 Segmentazione & paginazione: l esempio Pentium Intel Pentium Unit Supporta sia la segmentazione pura che la segmentazione mista a paginazione Segment selector per identificare il descriptor Segmento puntato dal segment descriptor Segment descriptor descrive il segmento Segment descriptor: Base virtual Size Protection Code / data Pentium Paging Architecture Schema generale Pentium has 6 segment CS, SS, DS, ES, FS, GS Also has 6 microprogram to hold the associated segment descriptor to avoid memory refs on each translation A segment register holds a segment "selector" A selector is 6 bits and uses 3 to hold the segment index (s), bit for the gdt/ldt switch (g), and bits for the privilege level (p) The gdt/ldt switch is used to select between the GDT (one for the entire system and shared between all processes) and the LDT (private to the process) Given the, use (s) to index into the Process Augmenting organization () HW support Contiguous Swappig Virtual Non contiguous Limit & relocation Page request Page replacement Dedicated Paging Dynamic Table based Page Frame TLB Paging & Segment

11 Swapping Supportata da dynamic memory La cambia quando: swap-out C B B B B A A A A D D D OS OS OS OS OS OS OS Processi entrano in memoria Processi lasciano la memoria Swapped to disk Esecuzione completata C C Operating Systems and 4Distributed Systems swap-in C C Limiti dello swapping puro Problemi Processi devono poter essere allocati nella memoria fisica Frammentazione External fragmentation Necessario il compattamento Processi: o memoria o disco Operating Systems and 4Distributed Systems Process Augmenting organization () The big picture Contiguous Swappig Virtual Non contiguous Page request Page replacement Paging Dynamic Table based Frame Paging & Memoria virtuale Separazione della memoria logica dell utente dalla memoria fisica Solo parte del programma deve trovarsi in memoria per l esecuzione Lo spazio logico degli indirizzi può essere molto più grande dello spazio fisico Porzioni di spazio fisico possono essere condivise da più processi Creazione di nuovi processi più efficiente La memoria virtuale può essere implementata per mezzo di: Paginazione su richiesta Segmentazione su richiesta HW support Limit & relocation Dedicated Page TLB Segment

12 Memoria virtuale: località Ogni processo ha code e data locality Codice eseguito in poche porzioni per volta Riferimento allo stesso set di strutture dati Da un esame dei programmi reali risulta che non è sempre necessaria la presenza in memoria dell intero programma; per esempio Porzioni di codice relative a gestione di condizioni di errore insolite o percorsi nel flusso raramente seguiti Array, liste e tabelle sovraati rispetto all utilizzo reale Anche nei casi in cui tutto il programma deve risiedere completamente in memoria è possibile che non serva tutto in una volta Memoria virtuale Vantaggi della presenza di porzioni di programmi in memoria: I programmi non sono più vincolati alla quantità di memoria fisica disponibile Poiché ogni programma impiega meno memoria fisica, aumenta il grado di multiprogrammazione e la produttività della CPU, senza aumentare il tempo di risposta o di turnaround Per caricare/scaricare ogni programma in memoria è necessario un minor numero di operazioni di I/O Aumentano le prestazioni del sistema Memoria virtuale Separazione memoria virtuale/memoria fisica Memoria virtuale molto più ampia della memoria fisica Memoria virtuale Separazione memoria virtuale/memoria fisica Memoria virtuale molto più ampia della memoria fisica Memoria x Programma A- Programma B- Programma D Swap Programma A- Programma A-3 Programma B-

13 Separazione memoria virtuale/memoria fisica Memoria virtuale molto più ampia della memoria fisica Memoria Memoria virtuale x Programma A- Programma B- Programma D Swap Memoria virtuale: condivisione Il buco che separa lo heap dalla pila è parte dello spazio degli indirizzi virtuali del processo, ma si richiede l allocazione di pagine fisiche solo se viene progressivamente riempito Uno spazio virtuale contenente buchi si definisce sparso Utile non solo per le possibili espansioni di heap e stack ma anche per il collegamento dinamico di librerie (o codice condiviso) durante l esecuzione del programma Programma A- Programma A-3 Programma B- Memoria virtuale: condivisione La memoria virtuale facilita la condivisione di file e memoria, mediante condivisione delle pagine fisiche Le librerie di sistema sono condivisibili mediante mappatura Ogni processo vede le librerie come parte del proprio spazio di indirizzi virtuali, ma le pagine che le ospitano effettivamente nella memoria fisica! accessibili in sola lettura! sono in condivisione fra tutti i processi che utilizzano le librerie Mediante la condivisione delle pagine in fase di creazione, i nuovi processi possono essere generati più rapidamente Process Augmenting organization () HW support Schema generale Non contiguous Contiguous Swappig Virtual Limit & relocation Page request Page replacement Dedicated Paging Dynamic Table based Page Frame TLB Paging & Segment

14 Paginazione su richiesta (Demand Paging) Swapper pigro! Si sposta una pagina in memoria solo quando è necessaria: Occorrono meno operazioni di I/O Viene impiegata meno memoria Si ha una risposta più veloce Si possono gestire più utenti Richiesta di una pagina -> si fa un riferimento alla pagina Riferimento non valido -> abort Pagina non in memoria -> trasferimento in memoria Il modulo del SO che si occupa della paginazione su richiesta è il pager Paginazione su richiesta (Demand Paging) Swapper tradizionale in un sistema paginato con avvicendamento: trasferimento di una memoria paginata nello spazio contiguo di un disco il pager ipotizza quali pagine saranno utilizzate prima che il processo venga nuovamente scaricato dalla memoria trasferisce in memoria solo le pagine necessarie meccanismo per distinguere le pagine presenti in memoria da quelle su disco bit di validità presente nella tabella delle pagine Paginazione su richiesta (Demand Paging) Bit di validità: v -> pagina in memoria i -> pagina non valida o non residente in memoria Inizialmente il bit di validità viene posto ad i per tutte le pagine In fase di traduzione degli indirizzi, se il bit di validità vale i si verifica un page fault #Frame v v v v i i i tabella delle pagine bit di validità Paginazione su richiesta (Demand Paging) Istantanea di una tabella delle pagine con pagine non allocate in memoria principale

15 Page fault Il primo riferimento ad una pagina causa una trap al sistema operativo -> page fault Il SO consulta una tabella interna delle pagine (conservata con il PCB) per decidere se si tratta di riferimento non valido abort pagina non in memoria Seleziona un frame vuoto Sposta la pagina nel frame Aggiorna le tabelle delle pagine (bit di validità = v) Riavvia l istruzione che era stata interrotta Page fault Fasi di gestione di un eccezione di pagina mancante Creazione di processi e memoria virtuale! Due vantaggi: " - Copy-on-Write " - -Mapped Files (più avanti) Copy-on-Write (COW) permette alla coppia di processi padre!figlio di condividere, inizialmente, le stesse pagine di memoria Se uno dei due processi modifica una pagina condivisa, e solo in quel caso, viene creata una copia della pagina COW garantisce una modalità di creazione dei processi più efficiente, grazie alla copia delle sole pagine (condivise) modificate L allocazione delle nuove pagine per effetto di un operazione di copia avviene mediante una tecnica nota come azzeramento su richiesta Prima dell allocazione, il contenuto delle pagine viene azzerato

16 Copy-on-Write (COW) Copy-on-Write (COW) Dopo la modifica della pagina C da parte del processo page Copy_C Prima della modifica della pagina C da parte del processo Dopo la modifica della pagina C da parte del processo Process Augmenting organization () HW support Schema generale Non contiguous Contiguous Swappig Virtual Limit & relocation Page request Page replacement Dedicated Paging Dynamic Table based Page Frame TLB Paging & Segment Cosa accade quando non ci sono frame liberi? Sostituzione di pagina! si trova una pagina in memoria che non risulti attualmente utilizzata e si sposta sul disco Scelta di un algoritmo di selezione Prestazioni: è richiesto un metodo che produca il minimo numero di page fault La stessa pagina può essere riportata in memoria più volte

17 Sostituzione delle pagine Individuazione della pagina richiesta su disco Individuazione di un frame libero: A Se esiste un frame libero, viene utilizzato B Altrimenti viene utilizzato un algoritmo di sostituzione per selezionare un frame vittima C La pagina vittima viene scritta sul disco; le tabelle delle pagine e dei frame vengono modificate conformemente 3 Lettura della pagina richiesta nel frame appena liberato; modifica delle tabelle delle pagine e dei frame 4 Riavvio del processo utente Sostituzione delle pagine Algoritmi di sostituzione delle pagine minimizzare la frequenza di page faul Random Replacement y scelta fra m frame con probabilità /m Si valutano gli algoritmi eseguendoli su una particolare stringa di riferimenti a memoria (reference string ) e contando il numero di page fault su tale stringa Nessuna conoscenza di R & scarsa performance Facile da implementare 3 page faults

18 First In First Out (FIFO) First In First Out (FIFO) Sostituisci pagina da più tempo in memoria y t = max x"st-(m) AGE(x) 3 AGE 4 () = 3 AGE 4 () = AGE 4 (3) = Sostituisci pagina da più tempo in memoria y t = max x"st-(m) AGE(x) 3 3 AGE 4 () = 3 AGE 4 () = AGE 4 (3) = First In First Out (FIFO) Sostituisci pagina da più tempo in memoria y t = max x"st-(m) AGE(x) 3 3 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) 3 AGE 5 () =? AGE 5 () =? AGE 5 (3) =?

19 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) 3 FWD 4 () = FWD 4 () = FWD 4 (3) = 3 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) 3 FWD 4 () = FWD 4 () = FWD 4 (3) = 3 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) 3 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) 3 3 FWD 7 () = FWD 7 () = 3 FWD 7 () =

20 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) FWD () = ' FWD (3) = FWD () = 3 Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) FWD 3 () = ' FWD 3 (3) = ' FWD 3 () = ' Algoritmo ottimo di Belady Sostituire la pagina che non verrà usata per il periodo di tempo più lungo (forward distance): y t = max x"st-(m) FWD t (x) page faults Conoscenza di R & performance ottima Impossibile da implementare: si approssima Least Recently Used (LRU) Pagina che non è stata usata da più tempo (max backward distance): y t = max x"st-(m) BKWD t (x) 3 BKWD 4 () = 3 BKWD 4 () = BKWD 4 (3) =

21 Least Recently Used (LRU) Least Recently Used (LRU) Pagina che non è stata usata da più tempo (max backward distance): y t = max x"st-(m) BKWD t (x) 3 3 BKWD 4 () = 3 BKWD 4 () = BKWD 4 (3) = Pagina che non è stata usata da più tempo (max backward distance): y t = max x"st-(m) BKWD t (x) BKWD 5 () = BKWD 5 () = 3 BKWD 5 (3) = Least Recently Used (LRU) Least Recently Used (LRU) Pagina che non è stata usata da più tempo (max backward distance): y t = max x"st-(m) BKWD t (x) BKWD 6 () = BKWD 6 () = BKWD 6 (3) = 3 Pagina che non è stata usata da più tempo (max backward distance): y t = max x"st-(m) BKWD t (x) Buon predittore della forward distance -- principio di località

22 Least Recently Used (LRU) Confronto fra metodi Varie implementazioni: a stack seconda chance seconda chance migliorato If graph omits faults that occur before all the page frames have been filled,that is, it ignores the first f faults when there are f page frames we are measuring the warm-start behavior of the replacement policy instead of the cold-start behavior Anomalia di Belady Anomalia di Belady R = 3434 Frame Frame FIFO con m = 3 ha 9 faults FIFO con m = 4 ha faults

23 Process Augmenting organization () Schema generale Non contiguous Contiguous Swappig Virtual Page request Page replacement Paging Dynamic Table based Frame Paging & Allocazione dei frame Ciascun processo richiede un numero minimo di pagine fisiche Il numero minimo di frame necessari per ogni processo è definito dall architettura, il massimo dalla disponibilità di memoria HW support Limit & relocation Dedicated Page TLB Segment Allocazione statica Allocazione con priorità Allocazione uniforme ( Per esempio, se si hanno a disposizione frame per 5 processi, si assegnano pagine a ciascun processo Allocazione proporzionale ( Si allocano frame sulla base della e del processo s i = e del processo p i (in frame) S = ) s i m = numero complessivo dei frame a i = allocazione per il processo p i = (s i /S)"m m = 64 s = s =7 ESEMPIO a =(/37)"64*5 a =(7/37)"64*59 Si impiega uno schema di allocazione proporzionale in base alla priorità piuttosto che alla e Se il processo Pi genera un page fault Si seleziona per la sostituzione uno dei suoi frame (local) Si seleziona per la sostituzione un frame di un processo con valore di priorità più basso (global)

24 Local vs global Sostituzione globale! il processo seleziona il frame da sostituire dall insieme di tutti i frame; il processo può selezionare un frame di un altro processo Un processo non può controllare la propria frequenza di page fault Sostituzione locale! ciascun processo seleziona i frame solo dal proprio insieme di frame allocati Non rende disponibili a processi che ne facciano richiesta pagine di altri processi scarsamente utilizzate La sostituzione globale garantisce maggior throughput Più utilizzata nei SO più diffusi Thrashing Se un processo non ha abbastanza pagine fisiche a disposizione, la frequenza di page fault è molto alta Basso impiego della CPU Il SO crede di dover aumentare il grado di multiprogrammazione si aggiunge un altro processo al sistema! Thrashing # un processo è costantemente occupato a spostare pagine dal disco alla memoria e viceversa Thrashing Paginazione su richiesta e thrashing La paginazione degenera! trashing Perché la paginazione su richiesta funziona? Principio di località: Una località è un insieme di pagine che vengono accedute insieme! che sono contemporaneamente in uso attivo Il processo passa da una località ad un altra Le località possono essere sovrapposte Perché avviene il thrashing? "!(dim località) > dim memoria totale

25 File mappati in memoria L I/O su file mappati in memoria fa sì che si tratti l I/ O su file come un normale accesso alla memoria Si realizza associando un blocco del disco ad una o più pagine residenti in memoria L accesso iniziale al file avviene tramite una normale richiesta di paginazione Una porzione del file, pari ad una pagina, viene caricata dal sistema in una pagina fisica Ogni successiva lettura e scrittura del file viene gestita come un accesso ordinario alla memoria File mappati in memoria Semplifica l accesso a file perché ne permette la manipolazione attraverso la memoria invece di appesantire il sistema con system call read() e write() File mappati in memoria Permette a più processi di mappare contemporaneamente lo stesso file, garantendo la condivisione di pagine di memoria Allocazione di memoria del kernel Il kernel, per allocare la propria memoria, attinge ad una riserva di memoria libera diversa dalla lista usata per soddisfare i processi utente Il kernel richiede memoria per strutture dati dalle i variabili Parti della memoria del kernel devono essere contigue

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

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

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi memory management 1 Memory management Le attività di memory management del SO per la condivisione da parte di più processi Ricordare quali parti della memoria sono attualmente in uso e quali no Allocare/disallocare

Dettagli

Gestione Memoria. Gestione della memoria

Gestione Memoria. Gestione della memoria Gestione Memoria Gestione della memoria Il sistema operativo ha il compito di: Assegnare ad ogni processo la memoria di cui ha bisogno per la sua esecuzione Isolare i processi facendo in modo che i processi

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

Memoria Virtuale. Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing

Memoria Virtuale. Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing Memoria Virtuale Background Paginazionesu richiesta Sostituzione delle pagine Algoritmi di sostituzione delle pagine Allocazione dei frame Thrashing Background Memoria virtuale separazione della memoria

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

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

Capitolo 10: Memoria virtuale

Capitolo 10: Memoria virtuale Capitolo 10: Memoria virtuale Ambiente. Richiesta di paginazione. Creazione del processo. Sostituzione della pagina. Allocazione dei frame. Thrashing. Altre considerazioni. 10.1 Ambiente Memoria virtuale

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

Sistemi operativi e distribuiti

Sistemi operativi e distribuiti Sistemi operativi e distribuiti La memoria Indirizzi fisici e indirizzi logici Importante separazione di concetti Ci permette di separare la parte software da la parte hardware Indirizzo logico (o virtuale):

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

Memoria virtuale. Capitolo 9 - Silberschatz

Memoria virtuale. Capitolo 9 - Silberschatz Memoria virtuale Capitolo 9 - Silberschatz Processo in memoria Istruzioni in memoria prima di essere eseguite. Condizione necessaria e ragionevole ma le dimensioni del programma devono essere correlate

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

Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame

Memoria Virtuale. Sommario. Introduzione Paginazione su domanda. Rimpiazzamento delle pagine Allocazione dei frame Memoria Virtuale Sommario Introduzione Paginazione su domanda Rimpiazzamento delle pagine Allocazione dei frame 1 Introduzione Caratteristica degli schemi precedenti per la gestione della memoria: l intero

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

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

Dettagli

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

Memoria Virtuale. Lezione 6-7 Sistemi Operativi Memoria Virtuale Lezione 6-7 Sistemi Operativi Problemi implementativi Dal punto di vista del SO la realizzazione di un sistema di VM richiede la soluzione di una serie di problemi: Individuazione di strutture

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

Gestione della memoria

Gestione della memoria Gestione della memoria Gestione della Memoria Introduzione Spazi di indirizzamento Allocazione contigua Paginazione Segmentazione Segmentazione con paginazione 2 1 Introduzione La condivisione della memoria

Dettagli

Sistemi operativi - Concetti ed esempi -Settima edizione

Sistemi operativi - Concetti ed esempi -Settima edizione Capitolo 9: Memoria virtuale Capitolo 9: Memoria virtuale Introduzione Paginazione su richiesta Copiatura su scrittura Sostituzione delle pagine Allocazione di frame Paginazione degenere (thrashing) File

Dettagli

Memoria Virtuale. Considerazioni sulla paginazione e segmentazione

Memoria Virtuale. Considerazioni sulla paginazione e segmentazione Memoria Virtuale Generalità Hardware di supporto Scelte di progetto 1 Considerazioni sulla paginazione e segmentazione I riferimenti di Memoria sono tradotti dinamicamente in indirizzi fisici a run time

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Multiprogrammazione e gestione della memoria L obiettivo primario della multiprogrammazione e` l uso efficiente delle risorse computazionali: Efficienza nell uso della CPU Velocita`

Dettagli

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Tecniche impiegate. Memoria cache, struttura. Metodo:

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Tecniche impiegate. Memoria cache, struttura. Metodo: Connessioni tra livelli di memoria Tape Registers Cache Main memory Magnetic disk Optical disk (Architettura degli Elaboratori) Gerarchie di memorie 1 / 58 Metodo: Desiderata: memoria capiente e veloce

Dettagli

La memoria cache. Lab di Calcolatori

La memoria cache. Lab di Calcolatori La memoria cache 1 Gap delle prestazioni DRAM - CPU 1000 CPU- DRAM Gap CPU Proc 60%/yr. (2X/1.5yr) 100 10 ProcessorMemory Performance Gap: (grows 50% / year) D R A M DRAM9%/yr.(2X/10 yrs) 1 1980 1981 1982

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 12 Martedì 22-11-2016 Partizioni variabili Un miglioramento dell uso

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

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria!

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria! Il contesto Gestione della Memoria Per essere eseguiti, i programmi devono essere trasferiti (dal disco) in memoria e tradotti in processi. Obiettivi: accesso rapido e protezione. Accesso rapido La CPU

Dettagli

Gestione della Memoria. Sistemi Operativi T AA

Gestione della Memoria. Sistemi Operativi T AA Gestione della Memoria Sistemi Operativi T AA 2009-2010 1 Multiprogrammazione e gestione memoria Obiettivo primario della multiprogrammazione è l uso efficiente delle risorse computazionali: Efficienza

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

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T4 3-Gestione della memoria 1 Prerequisiti Rilocazione dinamica Spazio degli indirizzi Descrittore di processo Descrittore della memoria 2 1 Introduzione Una volta conosciute

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

Sistemi Operativi (modulo di Informatica II) La memoria virtuale

Sistemi Operativi (modulo di Informatica II) La memoria virtuale Sistemi Operativi (modulo di Informatica II) La memoria virtuale Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Ambiente virtuale Richiesta di paginazione Creazione di un processo

Dettagli

Gestione della memoria

Gestione della memoria Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi Gestione della memoria Memoria principale (1/2) Generalmente, i linguaggi assembly permettono di accedere

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

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Memoria cache, struttura. Tecniche impiegate. Ad ogni accesso alla memoria

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Memoria cache, struttura. Tecniche impiegate. Ad ogni accesso alla memoria Connessioni tra livelli di memoria Tape Registers Cache Main memory Magnetic disk Optical disk (Architettura degli Elaboratori) Gerarchie di memorie / 58 Metodo: Desiderata: memoria capiente e veloce i

Dettagli

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale Di cosa parliamo in questa lezione? Lezione 7 La gestione della Sistemi operativi 1 Schemi di indirizzamento della 2 La segmentazione 3 La paginazione 9 maggio 2017 4 System Programming Research Group

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

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2010-11 Architettura di un sistema operativo Progr 1 Progr 2 Progr

Dettagli

Memoria Virtuale. Sistemi operativi- AA 2015/16 1 1

Memoria Virtuale. Sistemi operativi- AA 2015/16 1 1 Memoria Virtuale Sistemi operativi- AA 2015/16 1 1 2 Sommario Virtualizzazione della memoria Algoritmi di sostituzione delle pagine Allocazione dei frame Trashing Segmentazione su richiesta Conclusioni

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

La gestione della memoria. Lezione 16 Sistemi Operativi

La gestione della memoria. Lezione 16 Sistemi Operativi La gestione della memoria Lezione 16 Sistemi Operativi La memoria come risorsa La memoria centrale è una risorsa fondamentale di un sistema di calcolo L accesso a memoria centrale è una delle operazioni

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

Sistemi Operativi Gestione della Memoria (parte 3)

Sistemi Operativi Gestione della Memoria (parte 3) Sistemi Operativi Gestione della Memoria Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Paginazione: l anomalia di Belady - 1 Nel 1969 Lazlo Belady

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

La memoria virtuale. Operating System Concepts 9 th Edition

La memoria virtuale. Operating System Concepts 9 th Edition La memoria virtuale La memoria virtuale Background Paginazione su richiesta Copy on Write Sostituzione delle pagine Allocazione dei frame Thrashing File mappati in memoria Allocazione di memoria del kernel

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

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Cache Anno Accademico 24/25 Francesco Tortorella Cache livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale

Dettagli

Spazio di indirizzamento virtuale

Spazio di indirizzamento virtuale Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - pietro.dilena@unibo.it // The function name says it all int stack_overflow (){

Dettagli

Gestione della memoria principale

Gestione della memoria principale Gestione della memoria principale Gestione della memoria principale Background Swapping Allocazione contigua della memoria Segmentazione Paginazione Struttura della tabella delle pagine Esempi Le architetture

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

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. 2013-14 Pietro Frasca Lezione 10 Giovedì 7-11-2013 1 Gestione della memoria La memoria principale è

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

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

Sistemi Operativi. C.d.L. in Informatica (laurea triennale) Anno Accademico Dipartimento di Matematica e Informatica Catania

Sistemi Operativi. C.d.L. in Informatica (laurea triennale) Anno Accademico Dipartimento di Matematica e Informatica Catania Sistemi Operativi C.d.L. in Informatica (laurea triennale) Anno Accademico 2012-2013 Dipartimento di Matematica e Informatica Catania Gestione della Memoria Prof. Mario Di Raimondo Memoria centrale e processi

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

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

esercizi memoria virtuale...

esercizi memoria virtuale... esercizi memoria virtuale 1..... tabella delle pagine (8.1) data la tabella delle pagine (pagina di 1024 bytes) di un processo tradurre i seguenti riferimenti in indirzzi fisici: 1052, 5499, 2221 2 1052,

Dettagli

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix. I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Informatica Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2008-09 Architettura di un sistema operativo Progr 1 Progr 2 Progr 3 Progr

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

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. 2015-16 Pietro Frasca Lezione 11 Martedì 10-11-2015 1 Memoria partizionata Le tecniche di memoria partizionata

Dettagli

Veloce e cara. Lenta e economica. I livelli di memoria. E il supporto del calcolatore per conservare dati e istruzioni (programmi) La memoria centrale

Veloce e cara. Lenta e economica. I livelli di memoria. E il supporto del calcolatore per conservare dati e istruzioni (programmi) La memoria centrale I livelli di memoria LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica Veloce e cara E il supporto del calcolatore per conservare dati e istruzioni (programmi) Sistemi Operativi : La gestione

Dettagli

USO DELLA GERARCHIA. FONDAMENTI DI INFORMATICA Lezione n. 14 POLITICHE DI SOSTITUZIONE DIMENSIONE DEL BLOCCO THRASHING POLITICA DI ALLOCAZIONE

USO DELLA GERARCHIA. FONDAMENTI DI INFORMATICA Lezione n. 14 POLITICHE DI SOSTITUZIONE DIMENSIONE DEL BLOCCO THRASHING POLITICA DI ALLOCAZIONE FONDAMENTI DI INFORMATICA Lezione n. 14 GESTIONE DELLA GERARCHIA CONCETTO DI MEMORIA VIRTUALE RAGIONI PER L'USO DELLA MEMORIA VIRTUALE MECCANISMO DI GENERAZIONE DEGLI INDIRIZZI FISICI SEGMENTI, PAGINE

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

Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia

Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia Gestione della memoria 1. Binding degli indirizzi. Partizionamento statico e dinamico 3. Allocazione

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

Gestione della memoria

Gestione della memoria Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in TWM A.A. 2015-2016 Copyright c 2000 04 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione nella

Dettagli

La Gestione della Memoria

La Gestione della Memoria La Gestione della Memoria Gestione della Memoria Centrale A livello hardware: ogni sistema di elaborazione è equipaggiato con un unico spazio di memoria. Compiti del Sistema Operativo: allocare memoria

Dettagli

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione

Gestione della memoria. Algoritmi di rimpiazzamento Segmentazione Gestione della memoria Algoritmi di rimpiazzamento Segmentazione Algoritmi di rimpiazzamento Per ogni page fault il SO deve: scegliere una pagina da rimuovere dalla memoria per creare spazio per la nuova

Dettagli

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005!

! 11.2! Silberschatz, Galvin and Gagne 2005! Operating System Concepts 7 th Edition, Jan 1, 2005! Struttura dei File! Unitaʼ logica di memorizzazione! Collezione di informazioni correlate! File control block (inode) struttura dati per le informazioni principali riguardanti un file! Fle system! risiede

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 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

La memoria virtuale 9.2. Sistemi Operativi a.a. A.A. 2009-10 2013-2014

La memoria virtuale 9.2. Sistemi Operativi a.a. A.A. 2009-10 2013-2014 La Memoria Virtuale La memoria virtuale Background Paginazione su richiesta Copy on Write Sostituzione delle pagine Allocazione dei frame Thrashing File mappati in memoria Allocazione di memoria del kernel

Dettagli

Cognome e nome: Matricola: Posto:

Cognome e nome: Matricola: Posto: Quesito 1: (+0,5 punti per ogni risposta esatta; -0,25 punti per ogni risposta sbagliata; 0 punti se lasciata in bianco) DOMANDA ero/also La tecnica di allocazione contigua è soggetta al problema della

Dettagli

Schemi di paginazione nell architettura 86 (32 e 64 bit)

Schemi di paginazione nell architettura 86 (32 e 64 bit) Paginazione X86 1 Schemi di paginazione nell architettura 86 (32 e 64 bit) Questo documento mette insieme figure dai manuali Intel che illustrano gli aspetti salienti della gestione della memoria nell

Dettagli

La gerarchia di Memoria

La gerarchia di Memoria La gerarchia di Memoria Calcolatori Elettronici 1 Gap delle prestazioni DRAM - CPU 1000 CPU 100 10 DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998

Dettagli

Gestione della Memoria Principale

Gestione della Memoria Principale Gestione della Memoria Principale Fondamenti Binding, Loading, Linking Spazio indirizzi logico vs fisico Allocazione contigua Paginazione Segmentazione Fondamenti La gestione della memoria mira a soddisfare

Dettagli

Miglioramento delle prestazioni

Miglioramento delle prestazioni Miglioramento delle prestazioni Migliorare sia larghezza di banda sia latenza: uso di cache multiple Introdurre una cache separata per istruzioni e dati (split cache) Beneficio: Le operazioni di lettura/scrittura

Dettagli

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta

YYY02 Esercizi per Teoria. Esercizi per preparazione alla prova scritta YYY02 Esercizi per Teoria Esercizi per preparazione alla prova scritta Esercizio YYY02_02 - Busy Waiting In linguaggio ANSI C, siano dichiarate le seguenti variabili, e siano queste variabili debitamente

Dettagli

Memory management 49

Memory management 49 Memory management 49 Immagine di un processo L immagine di memoria di un processo è organizzata in tre regioni: E rientrante, e può essere condiviso fra più processi Stack Dati Testo Ogni regione è uno

Dettagli

Gestione della memoria

Gestione della memoria Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in Informatica A.A. 2017-2018 Copyright c 2000 04 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione

Dettagli

Memoria Virtuale. Lezione 29 Sistemi Operativi

Memoria Virtuale. Lezione 29 Sistemi Operativi Memoria Virtuale Lezione 29 Sistemi Operativi I Principi Abbiamo sinora assunto che durante l esecuzione di un programma, lo stesso debba risiedere completamente in MC Intorno alla metà degli anni 70 viene

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

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

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 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 Principale

Gestione della Memoria Principale Gestione della Memoria Principale Fondamenti Binding, Loading, Linking Spazio indirizzi logico vs. fisico Allocazione contigua Paginazione Segmentazione 1 Fondamenti La memoria di un elaboratore e organizzata

Dettagli

Gestione della memoria

Gestione della memoria Testo di rif.to: [Congiu] 6.2, 6.3 (pg. 2-28) 6.b Gestione della memoria Mapping and Management Unit (MMU) Paginazione della memoria Segmentazione della memoria Memoria virtuale La gestione della memoria

Dettagli

Parte 3: Meccanismi di Gestione della Memoria. Parte 3: Meccanismi di Gestione della Memoria. Gerarchia di Memorie

Parte 3: Meccanismi di Gestione della Memoria. Parte 3: Meccanismi di Gestione della Memoria. Gerarchia di Memorie Parte 3: Meccanismi di Gestione della Memoria Gestione della memoria principale richiami su: binding degli indirizzi, caricamento dinamico, collegamento dinamico, overlay, indirizzi logici e fisici Swapping

Dettagli

Nei sistemi moderni si usano sistemi di avvicendamento sofisticati al fine di garantire ad ogni processo quanti di esecuzione considerevoli.

Nei sistemi moderni si usano sistemi di avvicendamento sofisticati al fine di garantire ad ogni processo quanti di esecuzione considerevoli. C1. MEMORIA CENTRALE Al fine di migliorare lo scheduling della CPU è necessario tenere in memoria parecchi processi, rendendo condivisa la memoria. Vi sono diversi metodi per gestire la memoria, tra cui

Dettagli

Gestione della memoria in UNIX - storia. Gestione della memoria in UNIX - fondamenti. Unix: Gestione della Memoria. Modello della memoria in Unix

Gestione della memoria in UNIX - storia. Gestione della memoria in UNIX - fondamenti. Unix: Gestione della Memoria. Modello della memoria in Unix Unix: Gestione della Memoria Gestione della memoria in UNIX - storia Fino a 3BSD (1978): solo segmentazione con swapping; Da 3BSD: segmentazione e paginazione; Da 4BSD (1983): segmentazione e paginazione

Dettagli

Unix: Gestione della Memoria

Unix: Gestione della Memoria Unix: Gestione della Memoria 1 Modello della memoria in Unix I processi Unix lavorano su uno spazio di indirizzamento virtuale Es. 0,...,2 32 1 su indirizzi a 32bit Ogni processo ha uno spazio indirizzi

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

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

Capitolo 9: Memoria centrale

Capitolo 9: Memoria centrale Capitolo 9: Memoria centrale Concetti generali. Swapping Allocazione contigua di memoria. Paginazione. Segmentazione. Segmentazione con paginazione. 9.1 Concetti generali Per essere eseguito un programma

Dettagli

Le virtual machine e la memoria virtuale

Le virtual machine e la memoria virtuale Le virtual machine e la memoria virtuale Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson 5: 5.6, 5.7. 1/29

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

Si avrà quindi Logical Address e Physical Address

Si avrà quindi Logical Address e Physical Address C1 APPENDICE. SIMULATORE DEGLI INDIRIZZI Permette di svolgere esercizi di traduzione da indirizzi logici a indirizzi fisici. Esempio con tabella delle pagine a 1 livello Tabella delle pagine a 1 livello

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Multiprogrammazione e gestione memoria Obiettivo primario della multiprogrammazione è l uso efficiente delle risorse computazionali: Efficienza nell uso della CPU Velocità di risposta

Dettagli

Sistemi Operativi. Modulo 7: Gestione della memoria

Sistemi Operativi. Modulo 7: Gestione della memoria Sistemi Operativi Modulo 7: Gestione della memoria Renzo Davoli Alberto Montresor Copyright Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation

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