10. Memoria Virtuale. 10. Memoria Virtuale Le basi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "10. Memoria Virtuale. 10. Memoria Virtuale Le basi"

Transcript

1 1 10. Memoria Virtuale Tutti i metodi di gestione della MP tentano di tenere in MP più processi possibile per aumentare la multiprogrammazione Tenere un processo interamente in MP diminuisce il numero dei processi che posso tenere in MP La Memoria Virtuale (MV) è una tecnica che permette la esecuzione di processi non completamente in MP Memoria Virtuale programmi più grandi della MP programmi in esecuzione che assieme sono molto più grandi della MP maggiore separazione fra memoria logica e memoria fisica Arma a doppio taglio perché: aumenta I/O (verso BS) influenza lo scheduling della CPU Le basi Overlay e caricamento dinamico richiedono precauzioni e sforzi del programmatore, e non ottimizzano l uso della memoria I programmi non hanno bisogno di essere sempre interamente in MP; ad es: codice per trattare condizioni di errore non usuali array, liste, tabelle sono spesso dichiarate più ampie di quanto poi usato alcune opzioni di programma sono raramente usate

2 Le basi Le basi Vantaggi: memoria "virtuale" disponibile grandissima e sganciata da quella fisica (ad es. piena di buchi) aumento del grado di multiprogrammazione e quindi aumento di utilizzo della CPU e di throughput meno I/O per caricare un programma o fare swap dei programmi (comunque necessario per aggiustare dinamicamente il grado di multiprogrammazione) Le basi la programmazione è più semplice gli utenti non hanno bisogni di gestire la memoria Normalmente implementata come: demand paging (paginazione su richiesta): spesso demand segmentation: più raramente perché più complessa e meno efficiente

3 Demand Paging Simile a paginazione + swapping, con uno swapper pigro che porta in MP una pagina solo se serve Swap è un termine improprio perché non si scambiano in memoria interi processi, ma solo pagine, cercando di indovinare quali pagine occorrono e si portano in MP solo quelle il tempo di swap diminuisce Demand Paging Necessario supporto hardware per sapere quali pagine sono in memoria e quali su disco valid/invalid bit può essere usato (anche) per questo Demand Paging

4 Demand Paging Accesso alle pagine valid (residenti in memoria) procede normalmente Accesso alle pagine invalid trap: non è necessariamente "colpa" del programma può essere causata da mancata paginazione del SO può essere in programma che sbaglia e esce (tenta!) dal suo spazio La pagina richiesta viene presa da BS e portata in MP Demand Paging Procedura di gestione di page-fault 1. Riferimento (hw) 2. Trap per invalid bit (hw, poi tutto SO) 3. Test se accesso legale o illegale (via la PT stessa in genere) 4. Se illegale terminare il processo; se legale dobbiamo portare in memoria la pagina 5. Troviamo un frame libero in MP (o lo liberiamo) Demand Paging Procedura di gestione di page-fault 7. Quando l I/O è completato, correggiamo la PT: valid bit, indirizzo fisico 8. Rimettiamo Ready il processo, ri-eseguendo la istruzione che ha dato trap

5 Demand Paging Demand Paging Notare: Quando il processo ha dato trap, il suo contesto è stato salvato e viene ripristinato prima di metterlo Running Il processo può anche essere fatto partire senza alcuna pagina in MP! I processi tendono ad avere località di riferimenti =:= accedere ad un insieme limitato di pagine, che cambia lentamente Demand Paging Supporto hardware: lo stesso di paginazione più swapping Le istruzioni devono essere ri-eseguibili dopo un page fault: problema con istruzioni che accedono e modificano molte parole ad es. MVC che sposta fino a 256 Byte, anche sovrapposti, oppure autodecrement (PDP11- like)

6 16 Esempio C = A+B 1 Caricamento dell istruzione 2 Caricamento di A 3 Caricamento di B 4 Somma A e B 5 Memorizzazione in C 5C = A Demand Paging microcodice deve testare che gli operandi siano tutti in memoria, oppure si tengono in CPU le locazioni modificate e si ripristinano in caso si trap Questi sono problemi solo per il demand paging 10.3 Prestazioni della paginazione su richiesta Calcoliamo l effective access time memory access time, ma, da 10 a 200nsec p = probabilità di page fault eat = (1-p) * ma + p * page_fault_service_time Vedere sul libro i dettagli delle 12 cose da fare per servire il page-fault. Tre componenti: 1. Servire la trap di page-fault 2. Portare in memoria la pagina 3. Fare ripartire il processo 18

7 10.3 Prestazioni della paginazione su richiesta 19 Con attenta codifica, 1 e 3 richiedono solo alcune centinaia di istruzioni, da 1 a 100 microsec Il tempo di 2 dipende dalla latenza del disco (8msec), il tempo di seek (15 msec), il tempo di trasferimento (1msec), esecuzione di istruzioni (1msec) 25msec+tempo di accodamento! 10.3 Prestazioni della paginazione su richiesta 20 1 e 3 sono trascurabili di fronte a 2; Se ma=100nsec eat=(1-p)*100+p*25*10 6 = *p proporzionale a p (tasso di page fault) p=1/1000 eat=25microsec 250 volte più lento di ma 10.3 Prestazioni della paginazione su richiesta 21 Se vogliamo un degrado < 10%, allora p deve essere tale che 110 > *10 6 *p 10 > 25*10 6 *p p < 0.4* page fault ogni accessi in memoria, cioè 1 page fault ogni 10 6 istruzioni circa

8 10.3 Prestazioni della paginazione su richiesta 22 il page fault ratio deve essere molto molto basso altrimenti il throughput della macchina si abbassa troppo Memoria di swap: Occorre rendere velocissimo l'i/o verso BS. Si può ottenere mediante: pagine grandi strutture di accesso al disco molti più semplici di quelle del file system 10.3 Prestazioni della paginazione su richiesta Può convenire copiare l'eseguibile interamente in area di swap prima di iniziare l'esecuzione tempo di start lungo maggiore velocità nella paginazione maggiore area di swap Alternativa per limitare l'area di swap: le pagine eseguibili sono richieste direttamente dal file system se devono essere rimpiazzate, sono sovrascritte direttamente, perché non sono state modificate Prestazioni della paginazione su richiesta 24 avvio molto più veloce del programma esecuzione più lenta che nel caso della copiatura completa in area di swap Terza via: le pagine di eseguibile si caricano direttamente da file system si copiano in area di swap quando si devono rimpiazzare

9 10.3 Prestazioni della paginazione su richiesta 25 avvio veloce esecuzione più veloce quando il programma riusa la sua località usato in BSDUnix 10.4 Rimpiazzamento delle pagine 26 Se ci fosse sempre una pagina libera, una pagina sarebbe caricata in memoria una sola volta nell'esecuzione del programma La richiesta di pagine di un programma cambia (anche se lentamente) e può aumentare nel tempo se non abbiamo più pagine libere scopriamo che abbiamo sovrallocato la memoria 10.4 Rimpiazzamento delle pagine 27 La situazione non è improbabile, se vogliamo usare il più possibile la memoria fisica La situazione deve essere gestita! Il SO si accorge del problema perché non trova nessun frame su cui caricare la pagina richiesta dalla trap.

10 10.4 Rimpiazzamento delle pagine Rimpiazzamento delle pagine 29 Cosa può fare? uccidere il processo che ha dato page fault: pessima soluzione! fare swap-out del processo che ha dato page fault, liberare tutte le sue pagine e ridurre così il livello di multiprogrammazione: non male a volte (vedremo poi) rimpiazzare (togliere) una pagina a qualcuno 10.4 Rimpiazzamento delle pagine 30 Cerchiamo una pagina "non in uso" e la portiamo su BS, liberando così il frame Carichiamo in questo frame la pagina richiesta Sistemiamo la PT del processo Rimettiamo Running il processo

11 10.4 Rimpiazzamento delle pagine Rimpiazzamento delle pagine 32 Il tempo di servizio del page fault raddoppia (due copiature di pagina)! Se la pagina vittima è "pulita" (non modificata), abbiamo già una copia in BS evitare di copiare in BS Hardware deve dirmi se la pagina è pulita o meno, con un dirty bit nella PT Salviamo su BS solo se il dirty bit è a Rimpiazzamento delle pagine Notare: Il rimpiazzamento è essenziale per permettere l'esecuzione di programmi più grandi della MP! 2 problemi: 1. Allocazione dei frame: quanti ne diamo a ciascun processo? 2. Rimpiazzamento delle pagine: quale frame deve essere riutilizzato? Quale la pagina vittima? Sono due algoritmi importantissimi! 33

12 10.5 Algoritmi di rimpiazzamento Vorremmo quello che provoca il tasso di page fault minore Vanno valutati su sequenze (stringhe) di riferimenti in MP stringhe generate artificialmente stringhe generate dall'esecuzione di programmi reali stringhe molto lunghe interessa solo l'accesso alla pagina, non il dettaglio del suo interno Algoritmi di rimpiazzamento 35 accessi immediatamente successivi nella stessa pagina "valgono" come 1 solo (non possono dare ulteriori page fault, circa!) Sapere quanti frame sono disponibili per il processo: tale limite non è deciso dall'algoritmo di rimpiazzamento. Rimpiazzamento all'interno delle pagine del processo Algoritmo FIFO Rimpiazzare la pagina più vecchia in MP tenere una coda dell'arrivo delle pagine in memoria Semplicissimo ma non sempre buono, perché la pagina più vecchia può essere: una pagina del codice di inizializzazione (OK!) una pagina con variabile inizializzata all'inizio ma molto usata (KO!)

13 Algoritmo FIFO Anche il cattivo rimpiazzamento è comunque corretto: aumenta solo il tasso di page fault 38 Anomalia di Belady Aumentando i frame possono aumentare i fault! Stringa di riferimenti: Variamo il numero di frame concessi al processo # page faults # frames Algoritmo ottimo Che non soffra dell'anomalia di Belady Che produce il numero minimo di page fault (a parità di frame disponibili) OPT(o MIN): Sostituire la pagina che non verrà usata per più tempo Problema: chi conosce il futuro? Problema indecidibile

14 Algoritmo ottimo Esempio di applicazione dell algoritmo ottimo alla sequenza precedente Algoritmo LRU Sostituire la pagina che non è stata usata da più tempo LRU =:= Least Recently Used Uguale a OPT, ma guardando all'indietro invece che in avanti: il passato è conosciuto! Molto buono, ma ha problemi di implementazione efficiente Algoritmo LRU Esempio di applicazione dell algoritmo LRU alla sequenza precedente

15 Implementazione LRU Stack: tenere uno stack dei numeri di pagina acceduti; dimensione = numero di frame per processo ad ogni accesso il numero di pagina viene portato (messo) in cima allo stack la pagina in fondo allo stack è la LRU, da usare per rimpiazzamento non viene mosso come uno stack; occorre una lista linkata doppia Implementazione LRU Contatori: ad ogni pagina associato il clock al momento dell'uso rimpiazzare la pagina con clock minore molte scritture in memoria Ambedue hanno bisogno di supporto hardware perché clock e stack vanno modificati ad ogni accesso in memoria! Algoritmi di rimpiazzamento a stack 45 Le pagine in memoria con n frame sono un sottoinsieme di quelle con n+1 frame LRU è uno stack algorithm LRU, OPT e stack algorithms non soffrono dell'anomalia di Belady

16 Approssimazioni di LRU Il supporto hw per LRU è costosissimo; senza supporto si può solo implementare FIFO Reference Bit: settato da hw in PT quando la pagina è riferita: non fornisce un ordinamento sull'uso delle pagine ma permette di approssimare Additional-Reference-Bits Algorithms 47 Registriamo il bit di riferimento a intervalli regolari (es. 100msec), azzeriamo e teniamo la storia degli ultimi (ad es.) 8 bit per ogni pagina Considerati come unsigned int sono una approssimazione del clock: la pagina che ha il numero minore è la LRU Additional-Reference-Bits Algorithms 48 La minima può non essere unica: ordinamento parziale si rimpiazzano tutte; oppure si usa una politica FIFO fra di loro Se il numero di bit addizionali è zero (solo il reference bit), abbiamo l'algoritmo della Seconda Opportunità

17 Algoritmo della Seconda Opportunità 49 Si parte da un algoritmo FIFO, ma si usa un reference bit Si considera la prima pagina in coda: se il reference bit della pagina è (ancora) 0, allora si rimpiazza Se il bit della prima è a 1, allora si azzera il reference bit e le si da una Seconda Opportunità e si passa alla "seconda della FIFO; e così via Algoritmo della Seconda Opportunità 50 Se tutte hanno il reference bit a 1 allora si rimpiazza la più vecchia Detto anche algoritmo dell'orologio, perché si può anche implementare scandendo circolarmente i frame del processo (senza tenere una coda FIFO esplicita) Algoritmo della Seconda Opportunità Migliorato Sel'hwforniscereferenceedirtybit, usiamo tutti e due (resettando il reference); abbiamo quattro classi di pagine: (0,0) né usata né scritta: ottima da rimpiazzare (0,1) non usata recentemente, ma modificata: meno buona (1,0) usata recentemente, ma pulita: meglio non rimpiazzare (1,1) usata recentemente e sporca: la peggiore da rimpiazzare 51

18 Algoritmo della Seconda Opportunità Migliorato 52 Scandiamo i frame con lo schema del clock, e sostituiamo la prima pagina della classe più bassa non vuota (può occorrere più di un giro!) A differenza dell'algoritmo del clock semplice, preferiamo quelle pagine che non sono state modificate (meno I/O!) Usato in MAC/OS (Macintosh) Algoritmi basati su contatori LFU: Least Frequently Used Problema: una grande quantità di riferimenti non si "dimentica" mai Soluzione: shift a destra ogni tanto media a decadenza esponenziale MFU: Most Frequently Used Se ha pochi usi, è probabilmente stata portata in memoria da poco e quindi deve ancora essere usata Ambedue costosi, poco usati, approssimano male OPT Algoritmo basato su Buffer di Pagine (Libere) 54 Usato in ausilio ad un algoritmo di rimpiazzamento, che sceglie la pagina vittima da rimpiazzare Mentre la pagina vittima viene scritta su BS, la pagina richiesta viene letta su una pagina del pool di frame liberi tenuto a parte, in modo che sia resa disponibile al più presto

19 Algoritmo basato su Buffer di Pagine (Libere) Quando la pagina vittima è stata scritta su BS, il suo frame viene aggiunto al pool dei frame liberi Estensione 1: Teniamo una lista di pagine sporche Quando BS non ha da fare I/O, salviamo su BS una pagina sporca, che così ritorna pulita (reset del dirty bit) aumenta la probabilità di trovare pagine pulite da rimpiazzare Algoritmo basato su Buffer di Pagine (Libere) Estensione 2: Tenere un pool di frame liberi, ma ricordare da quale pagina provengono Se il fault riguarda una delle pagine che è nel pool delle libere si ri-usa subito; altrimenti si usa una delle libere VMS/VAX usa FIFO per creare il pool di frame liberi quando FIFO "sbaglia" si recupera facilmente la pagina dal pool importante quando il reference bit non c'è oppure non è corretto (prime versioni del VAX) Allocazione dei Frame In un sistema monoprogrammato si alloca tutti quelli restanti Ma con multiprogrammazione? Come si suddividono i frame liberi tra i vari processi che vogliono eseguire? Si devono/possono tenere un numero minimo di frame liberi?

20 Numero Minimo di Frame Definito dal set di istruzioni della macchina: una pagina (o più) per l'istruzione, più una per ogni operando, considerando le forme di indirizzamento possibili (ad es. indirette) PDP11: 2 per istruzione, 2 per op1, 2 per op2 6 pagine IBM370: MVC: 2 per istruzione, 2 per op1, 2 per op2 6 pagine EXEC MVC 8 pagine Numero Minimo di Frame Riferimenti indiretti multipli: occorre mettere un limite al numero di indirettezze ammesse Ma quale è il numero giusto fra il mio e tutta la memoria? Algoritmi di Allocazione Parti uguali: m frame disponibili, n processi m/n pagine per processo. E qualcuna tenuta sempre libera come buffer Alternativa: ad ogni processo secondo le sue "necessità" allocazione proporzionale alla dimensione massima del processo. Sia s i la dimensione della memoria virtuale del processo p i Sia m il numero totale di frame disponibili

21 Algoritmi di Allocazione Se S=Σ s i, allochiamo a i = s i /S*m frames, arrotondato all'intero e non meno del minimo per l'architettura In ambedue i casi l'allocazione cambia con il livello di multiprogrammazione Non tiene conto della priorità di un processo! usare una combinazione di dimensione e priorità Allocazione Locale o Globale 62 Dove va a prendere i frame l'algoritmo di rimpiazzamento? Globale: sceglie la vittima fra tutti i frame della MP (escluso in genere il SO) può portare via il frame ad un processo diverso da quello che ha generato il page fault Locale: sceglie la vittima fra i frame del processo che ha generato page fault numero di frame per processo costante Allocazione Locale o Globale 63 Problema con il globale: comportamento diverso a seconda dei processi con cui si convive in MP aumentando la priorità ad un processo gli si assegnano anche più pagine Problema con il Locale: se si danno troppe (relativamente) pagine ad un processo, si ha un throughput basso perché gli altri paginano molto

22 Allocazione Locale o Globale 64 Il rimpiazzamento globale da in genere un throughput maggiore e ammette livelli molto variabili di multiprogrammazione Viene in genere preferito per sistemi time sharing Thrashing Se il numero di pagine per un processo scende al di sotto del minimo architetturale swapout del processo swap-out/in è necessario come scheduling intermedio della CPU (regolatore della multiprogrammazione) Se le pagine per un processo sono comunque poche, si dovrà sostituire una pagina che userà fra poco, facendo subito fault, e così via Thrashing Se il rimpiazzamento è globale, il processo gira poco e gli verranno "prese" delle pagine da altri che hanno più pagine Alla fine tutti i processi sono attivissimi a rubarsi pagine l'un l'altro, per fare page-fault subito dopo! Questo fenomeno si chiama THRASHING

23 Thrashing Cause del thrashing Esempio concreto dei primi SO: Utilizzo di CPU troppo basso? Aumentare il livello di multiprogrammazione, aggiungendo un nuovo processo Si tolgono pagine ai processi già in memoria i processi aumentano il page fault, la coda del device di swap aumenta, la RQ si accorcia o si svuota Cause del thrashing utilizzazione della CPU diminuisce scheduler carica in memoria un altro processo! Nei sistemi time-sharing, il ciclo perverso è costituito dagli utenti, che lanciano altri programmi senza attendere la fine di quelli già lanciati

24 70 Come combattere il thrashing Diminuire il livello di multiprogrammazione! Usare una politica di rimpiazzamento locale Dare ad ogni processo le pagine necessarie perché lui non vada in thrashing Modello della località dell'esecuzione di un processo: nell'esecuzione un processo si muove da una località ad un'altra Una località è un insieme di pagine che vengono usate attivamente assieme 71 Come combattere il thrashing Un programma è in genere costituito da numerose località, che possono essere sovrapposte L'esecuzione di un processo cambia località lentamente Le località sono legate alle chiamate di funzioni, alla struttura in moduli di un programma, e alle strutture dati usate dal programma 72 Come combattere il thrashing Notare: Le cache funzionano per lo stesso motivo! Strategia: assegnare ad ogni processo un numero di pagine tale da poter contenere la località del programma

25 Modello del Working-Set (WS) Basato sull'ipotesi di località Usiamo un parametro = working-set window = i più recenti riferimenti a pagine WS è l'insieme delle pagine in WS è una approssimazione della località del programma Modello del Working-Set (WS) 74 Come scegliamo? Troppo piccolo non si vede la località Troppo grande prende più località Se WS = dimensione del programma Se WSS i è il WS di ogni processo, D=Σ WSS i è la richiesta totale di pagine se D > m si ha thrashing Modello del Working-Set (WS) 75 Il SO misura WSS i se D>m sospende un processo (swap-out) liberando le sue pagine se D<m fa swap-in di un processo sospeso, o ne avvia un altro Problema: misurare WSS i Approssimazione con timer interrupt e reference bit Poco preciso e costoso

26 Frequenza di page fault Thrashing è troppi page fault Se la frequenza è alta vuol dire che il processo ha bisogno di pagine; Se è bassa che ha troppe pagine Metodo adattativo Sospendere un processo se tutti mostrano di avere bisogno di pagine Frequenza di page fault Pre-paginazione Problema: alto tasso di fault quando il processo parte oppure ritorna dopo swapout (ancora più importante, perché succede più volte) Soluzione per swap-in: ricordare il workingset e riportarle tutte in MP prima di mettere Running il processo

27 Pre-paginazione Non tutte saranno ri-usate. Se 0 α 1 sono ri-usate risparmiamo α page fault pre-paginiamo (1-α) inutili se α è vicino a zero perdiamo se α è vicino a 1 vinciamo Dimensioni della pagina Sempre potenze di 2; ma quanto grandi? Pagine piccole implicano: PT grandi meno frammentazione interna peggiore throughput di BS perché seek e latenza sono fissi e grandi rispetto al tempo di trasferimento si individua la località più precisamente meno I/O Dimensioni della pagina si aumentano i page fault (per prendere la località) ogni page fault ha un costo fisso non buono La diminuzione del costo della MP spinge a pagine grandi

28 Struttura del programma Il modo di accedere ai dati (deciso dal programma) può aumentare enormemente i page fault Es: accesso agli array in modo contrario alla disposizione in memoria Stack ha una buona località Hash table pessima Separare codice (read-only) dai dati (ci pensa il compilatore) aiuta Struttura del programma Non mettere una routine attraverso il confine di pagina; mettere nella stessa pagina routine che si chiamano a vicenda Il programmatore mette tali routine nello stesso modulo e il linker-loader evita i confini di pagina e le impacca in modo da ridurre i riferimenti inter-pagina Il linguaggio di programmazione influenza i page-fault: C e Pascal sono meglio di Lisp o Prolog I/O Interlock I/O è più efficiente se direttamente sulla memoria dell'utente (DMA) le pagine interessate devono essere bloccate (locked) in MP durante la permanenza del comando in cosa e I/O Lock bit per evitare rimpiazzamento.

29 I/O Interlock Utile anche per evitare rimpiazzamento di una pagina appena portata in memoria pagine condivise da tanti processi "aumentare" le prestazioni di un processo Locking deciso dall'utente è un problema nei sistemi multi-user solo "suggerimenti" per il SO Elaborazioni Real-Time La memoria virtuale è l'antitesi del real-time Hard real-time mai con memoria virtuale Soft real-time deve permettere "suggerimenti" di lock o lock stretti per processi privilegiati se abusato, questo meccanismo degrada la prestazione degli altri processi Segmentazione su Richiesta Richiede meno supporto hardware È un'approssimazione della paginazione Se i segmenti venissero riempiti "oculatamente" dagli utenti (non lo fanno mai!) potrebbe anche essere meglio della paginazione

30 Segmentazione su Richiesta Es. OS/2 per Intel con supporto per segmentazione soltanto come per la paginazione, ma a livello segmento ha accessed bit syscall per dire al SO quali segmenti no sono più utili o devono restare in memoria compattazione della memoria contro la frammentazione esterna

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

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

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

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

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

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

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

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

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

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

Il supporto al sistema operativo

Il supporto al sistema operativo Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare

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

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

Lezione T17 Algoritmi di sostituzione delle pagine

Lezione T17 Algoritmi di sostituzione delle pagine Lezione T17 Algoritmi di sostituzione delle pagine Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio

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 Gestione della memoria centrale Gestione della memoria Concetti generali. Swapping. Allocazione contigua di memoria. Paginazione. Segmentazione. Segmentazione con paginazione. Esempio: Pentium Intel Background

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

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

Page replacement. Al page fault (PF) causato da un indirizzo virtuale nella pagina P, non presente in memoria, la pagina P va copiata su una frame.

Page replacement. Al page fault (PF) causato da un indirizzo virtuale nella pagina P, non presente in memoria, la pagina P va copiata su una frame. Page replacement Al page fault (PF) causato da un indirizzo virtuale nella pagina P, non presente in memoria, la pagina P va copiata su una frame. Quale? Idealmente: una ospitante una pagina poco usata

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

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

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

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

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

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

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

Memoria virtuale. Ivan Scagnetto. Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2007-2008

Memoria virtuale. Ivan Scagnetto. Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2007-2008 Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 007-008 Copyright c 000 0 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione nella sua integrità

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. è la tecnica chge permette l esecuzione di processi che non sono completamente caricati in memoria principale

Memoria Virtuale. è la tecnica chge permette l esecuzione di processi che non sono completamente caricati in memoria principale Memoria Virtuale Memoria Virtuale Definizione è la tecnica chge permette l esecuzione di processi che non sono completamente caricati in memoria principale Considerazioni permette di eseguire in concorrenza

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

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

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

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

9. Memoria Virtuale. 9.1 Memoria Virtuale: introduzione

9. Memoria Virtuale. 9.1 Memoria Virtuale: introduzione 1 9. Memoria Virtuale Concetti di base Demand Paging (Paginazione su richiesta) Prestazioni del Demand Paging Rimpiazzamento delle pagine Algoritmi di rimpiazzamento Allocazione dello spazio in Memoria

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

ISA Input / Output (I/O) Data register Controller

ISA Input / Output (I/O) Data register Controller ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),

Dettagli

La gestione della memoria

La gestione della memoria La gestione della memoria Nella gestione della memoria il sistema operativo deve perseguire l'obiettivo di allocare il maggior numero di processi in memoria centrale per aumentare la probabilità che ci

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

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

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

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

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 vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è

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

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 DIPARTIMENTO DI INFORMATICA Alberto Ceselli (alberto.ceselli@unimi.it) Informatica II Sistemi Operativi DIGIP - a.a. 2015/16 Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università

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

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

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

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

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

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

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi. La gestione delle risorse Sistemi Operativi La gestione delle risorse Introduzione Il sistema operativo ha il compito di fornire la gestione dell hardware ai programmi dell utente. Utente utilizza i programmi applicativi Programmi

Dettagli

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria virtuale

Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria virtuale Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009 Esercitazione Università di Salerno Memoria virtuale 1. Si assuma che un processo abbia m frames (inizialmente tutti vuoti) a disposizione e

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

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione 1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Reti e problematiche di Rete

Reti e problematiche di Rete Reti e problematiche di Rete I sistemi operativi Enrico Cavalli Anno Accademico 28-29 Appendice : La rilocazione dei programmi e la catena di programmazione La rilocazione() Nel corso della sua esistenza

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

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 Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

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

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

Von Neumann Bottleneck

Von Neumann Bottleneck Von Neumann Bottleneck Gerarchia di memoria Struttura della Gerarchia Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Scopo

Dettagli

Cognome: Nome: Matricola:

Cognome: Nome: Matricola: Cognome: Nome: Matricola: Sistemi Operativi A.A. 2006-2007, prova scritta del 23 aprile 2007 Libri e appunti chiusi. Vietato comunicare con chiunque. Vietato l'uso di cellulari, calcolatrici, palmari e

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

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

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

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

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Informatica 3 LEZIONE 20: Ordinamento esterno Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Informatica 3 Lezione 20 - Modulo 1 Organizzazione della memoria Introduzione Dati in

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

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

Introduzione Definizioni

Introduzione Definizioni Informatica 3 Informatica 3 LEZIONE 20: Ordinamento esterno Lezione 20 - Modulo 1 Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno Organizzazione della memoria Politecnico di Milano

Dettagli

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 25 settembre 2008.

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 25 settembre 2008. ognome: Nome: Matricola: Sistemi Operativi A.A. 2007-2008, prova scritta del 25 settembre 2008. Usa questa pagina per la brutta, staccala, non consegnarla. Sistemi Operativi A.A. 2007-2008, prova scritta

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 26 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (8 punti)

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

SISTEMI OPERATIVI. La memoria virtuale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. La memoria virtuale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) La memoria virtuale Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario La memoria virtuale

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/30

Dettagli

Processi e memoria. Ges&one della memoria. Rilocazione. Indirizzi. Rilocazione e protezione. Memory Management Unit (MMU)

Processi e memoria. Ges&one della memoria. Rilocazione. Indirizzi. Rilocazione e protezione. Memory Management Unit (MMU) Processi e memoria Ges&one della memoria Tu6 i processi in esecuzione necessitano della memoria centrale per memorizzare: le istruzioni che fanno parte del codice i da& su cui operano A. Ferrari Indirizzi

Dettagli

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di Lezione 3 Sistemi Operativi e misure di performance Parleremo di Ambienti di Elaborazione e Natura della computazione Classi di Sistemi Operativi Efficienza, Performance del Sistema, e Servizi Utente Sistemi

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 10 LEZIONE MEMORIA VIRTUALE CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Opertivi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 10 LEZIONE MEMORIA VIRTUALE CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Opertivi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 10 LEZIONE MEMORIA VIRTUALE CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione

Dettagli

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

14 Struttura della memoria secondaria Struttura del disco Struttura del disco 14 Struttura della memoria secondaria 1 Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Affidabilità 2 14.1 Struttura del disco 3 14.1 Struttura del disco I dischi

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

Sistema operativo. Utente. Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). S.O.

Sistema operativo. Utente. Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). S.O. Sistema operativo Il S.O. (sistema operativo) è un insieme di programmi che: gestisce le risorse hardware (CPU, RAM, memoria di massa, periferiche) e software (programmi applicativi) in modo ottimizzato

Dettagli

Fondamenti di informatica I. Sistemi operativi II

Fondamenti di informatica I. Sistemi operativi II Fondamenti di informatica I Sistemi operativi II Multitasking In un dato istante possono essere presenti nel sistema centinaia o migliaia di task Un task può essere in uno di tre possibili stati: In attesa

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

La gestione della memoria. Lezione 30 Sistemi Operativi

La gestione della memoria. Lezione 30 Sistemi Operativi La gestione della memoria Lezione 30 Sistemi Operativi Background Un programma per poter essere eseguito deve essere caricato in memoria Per questioni prestazionali devono essere caricati in memoria contemporaneamente

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

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

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

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults

Lezione 16. Esercizio 2 (paginazione( di windows) di Linux) 1: soluzione. Esercitazione finale. 10 page faults 5 soft faults Lezione Esercizio (paginazione( di windows) Esercitazione finale Sistema operativo con paginazione windows-like con: frame per le pagine attive unita di tempo per la permanenza nelle pagine in attesa Sequenza

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

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

Criteri di caratterizzazione di una memoria

Criteri di caratterizzazione di una memoria La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità

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