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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del ) In un sistema multiprogrammato il numero dei processori è inferiore rispetto al numero dei processi. Questo significa che tutti i processi non possono avere contemporaneamente la risorsa CPU e che i processi potrebbero richiedere una quantità di memoria superiore rispetto alla memoria fisica. Per questo motivo ad ogni processo vengono associate due risorse virtuali: CPU virtuale e memoria virtuale. La CPU virtuale di un processo è rappresentata dal campo contesto presente nel descrittore di quel processo. Nel momento in cui lo scheduler decide che quel processo debba essere mandato in esecuzione allora a quel processo sarà associata la CPU reale. La CPU virtuale è allocata nella memoria di sistema. Stesso discorso può essere fatto per la memoria. Ad ogni processo che non può essere residente in memoria fisica viene associata una memoria virtuale. La memoria virtuale è quindi un insieme di locazioni di memoria contenenti le informazioni del processo, ovvero il codice, i dati e lo stack. Queste informazioni vengono mantenute in memoria di massa quando il processo non è residente in memoria fisica. Quest area su disco, che contiene la memoria virtuale, prende il nome di swap area. Nel momento in cui il processo deve essere eseguito allora è necessario caricarlo in memoria fisica. Tutti gli indirizzi virtuali del processo devono essere rilocati in memoria fisica. Rilocare un processo significa tradurre tutti gli indirizzi virtuali di quel processo nei corrispondenti indirizzi fisici tramite una funzione di rilocazione. Esistono due tecniche per fare ciò: rilocazione statica e rilocazione dinamica. Nel caso di rilocazione statica è il loader, che prende anche il nome di caricatore rilocante, che prima di caricare il programma in memoria traduce tutti gli indirizzi virtuali in indirizzi fisici. Nel caso di rilocazione dinamica è invece un dispositivo hardware, la MMU, residente nello stesso chip del processore, che effettua la traduzione degli indirizzi logici in indirizzi fisici durante l esecuzione del processo ovvero run time. La memoria virtuale di un processo parte dall indirizzo 0 mentre in memoria fisica in generale il caricamento avviene a partire da un indirizzo I diverso da zero. La memoria virtuale può essere organizzata in due modi differenti: insieme di locazioni contigue oppure insieme di locazioni non contigue a cui si da il nome di segmenti.

3 Pensando ad un processo come l insieme di codice, dati e stack, nel caso di memoria virtuale organizzata in modo contiguo, gli indirizzi di codice,dati e stack sono tutti contigui tra loro. Nel caso di organizzazione a segmenti, il codice costituisce un segmento caratterizzato da un insieme di locazioni contigue, l area dati costituisce un altro segmento di locazioni contigue e lo stack un terzo segmento di locazioni contigue. Questi tre segmenti non sono però contigui tra loro ovvero il primo indirizzo dell area dati non segue l ultimo indirizzo dell area di codice e il primo indirizzo dell area di stack non segue l ultimo indirizzo dell area dati. Per quanto riguarda le dimensioni della memoria virtuale è possibile limitare la dimensione in modo che la memoria virtuale di un processo non superi la dimensione della memoria fisica oppure è possibile avere memoria virtuale di dimensioni superiori rispetto alla memoria fisica. 2. Che cosa s intende con il termine di rilocazione?come si può effettuare? (esame del ) Per rilocazione s intende quella tecnica che consente di tradurre gli indirizzi virtuali di un processo nei corrispondenti indirizzi fisici. Questa traduzione viene eseguita attraverso l uso di una funzione di rilocazione del tipo Y=F(X) dove X è l indirizzo virtuale o logico e Y è il corrispondente indirizzo fisico. In generale questa funzione è una funzione somma. Per determinare l indirizzo fisico Y, associato all indirizzo virtuale X, viene sommato al valore X l indirizzo della prima locazione di memoria dove è stato caricato il processo in memoria fisica. Se il processo viene per esempio caricato a partire dall indirizzo fisico allora ad una istruzione del programma che ha indirizzo virtuale 50 corrisponderà l indirizzo fisico = La rilocazione può essere statica oppure dinamica. Nel caso di rilocazione statica è il loader, una volta che il linker ha creato il file eseguibile a partire dai moduli oggetto, che prima di caricare l eseguibile in memoria tradurrà gli indirizzi virtuali in indirizzi fisici sommando agli indirizzi virtuali l indirizzo iniziale di caricamento. Una volta che il programma è caricato in memoria ogni riferimento è fatto sugli indirizzi fisici e non virtuali. Il PC e lo stack pointer conterranno infatti indirizzi fisici e non indirizzi logici. Lo svantaggio della rilocazione statica è che il processo una volta caricato in memoria, se subisce una operazione di swap out e successivamente deve essere ricaricato in memoria per continuare la sua esecuzione (operazione di swap in) non può essere rilocato

4 in una area di memoria diversa rispetto all area di memoria in cui era precedentemente allocato. Un altro svantaggio nel caso di rilocazione statica con memoria virtuale organizzata in modo contiguo è che non è possibile la condivisione di codice tra due processi diversi. Nel caso di rilocazione dinamica la rilocazione degli indirizzi avviene durante l esecuzione del programma stesso ovvero run time. In questo caso il loader trasferisce il programma in memoria senza rilocare gli indirizzi virtuali. All interno del programma le istruzioni fanno riferimento agli indirizzi virtuali. Esempio nella istruzione LOAD 4112 l indirizzo 4112 è un indirizzo virtuale che nel momento in cui quella istruzione di LOAD deve essere eseguita verrà tradotto nel corrispondente indirizzo fisico. Il PC e lo stack pointer contengono indirizzi virtuali e non fisici. La CPU genera indirizzi virtuali che vengono poi tradotti in indirizzi fisici dall unità hardware MMU (Memory Management Unit). La funzione di rilocazione Y=F(X) viene quindi implementata dalla MMU. La rilocazione può essere fatta semplicemente cambiando il contenuto di del registro base presente nell unità MMU. Il registro base della MMU contiene infatti l indirizzo iniziale di caricamento del processo in memoria fisica. Il vantaggio della rilocazione dinamica è che un programma può essere successivamente rilocato in memoria nel caso subisca una operazione di swap out. Altro vantaggio della rilocazione dinamica è la possibilità di eseguire tecniche di compattamento della memoria. Compattare la memoria significa poter creare una zona di memoria libera più grande a partire da tante zone libere più piccole, ma dislocate in parti diverse della memoria (zone non contigue). Compattare la memoria non è invece possibile nel caso di rilocazione statica perché non si possono spostare i programmi in una diversa area di memoria. 3. Si discuta il problema della rilocazione degli indirizzi mettendo in evidenza pregi e difetti delle varie strategie (esame del ) Vedi domanda precedente

5 4. Si discuta la tecnica di allocazione della memoria mediante partizioni fisse elencandone vantaggi e svantaggi (esame del ) Questa tecnica di allocazione della memoria fisica viene adoperata in quei sistemi che utilizzano la rilocazione statica degli indirizzi quindi sistemi privi della MMU. La memoria virtuale è organizzata in un unico spazio virtuale contiguo (non segmentato) e il caricamento in memoria fisica avviene tutto insieme. Ad indirizzi virtuali contigui corrispondono indirizzi fisici contigui. Quindi anche in memoria principale l allocazione è contigua. Quando lo spazio virtuale di un processo deve essere allocato in memoria fisica si cerca una partizione di memoria in grado di contenerlo. Una volta che il processo è stato allocato questo manterrà la partizione assegnata fino alla sua terminazione. Nel caso il processo subisca uno swap out, quando viene effettuata l operazione di swap in viene ricaricato nella stessa partizione (la rilocazione è statica). Le partizioni possono essere fisse oppure variabili. Nel caso di partizioni fisse la memoria è divisa in N+1 partizioni di dimensioni fisse e di indirizzo iniziale fisso definite all istallazione del sistema operativo. Una partizione è dedicata al sistema operativo e le altre N partizioni sono usate per allocare i processi. Un processo viene solitamente allocato nella più piccola partizione libera in grado di contenerlo. Poiché in generale un processo ha una dimensione non esattamente uguale alla dimensione della partizione resterà per ogni partizione allocata una parte non utilizzata. Sommando tutte le porzioni di partizione che sono rimaste inutilizzate si ottiene una quantità di memoria non trascurabile. Questo fenomeno prende il nome di frammentazione interna è costituisce il principale svantaggio della tecnica di allocazione attraverso partizioni fisse. L uso della memoria non è ottimizzato ed inoltre potendo allocare i processi sono in quelle determinate partizioni si ha anche poca flessibilità di allocazione. Per contro questa tecnica offre l evidente vantaggio di essere molto semplice e di richiedere basso overhead al sistema operativo. Altro svantaggio è che, se lo spazio virtuale del processo è superiore rispetto alle dimensioni di tutte le partizioni presenti sono allora necessarie tecniche di overlay per caricare completamente il processo in memoria.

6 5. Si illustri la tecnica delle partizioni variabili per la gestione della memoria (esame del ) La tecnica delle partizioni variabili consente di risolvere il problema della frammentazione interna ad ogni partizione che è il principale svantaggio delle partizioni fisse. Le partizioni vengono create dinamicamente durante il caricamento dei processi. All inizio la memoria è divisa in due partizioni principali: una partizione dedicata al sistema operativo ed un'altra grande partizione che verrà usata per allocare i processi. Quando un processo di dimensione D1 viene creato ad esso viene assegnata un area di memoria (partizione) di dimensione esattamente pari a D1. Il successivo processo occuperà un area D2 e cosi via. Quando un processo termina esso libera lo spazio (partizione che occupava). Questo nuovo spazio può costituire una nuova partizione oppure può essere compattato con una partizione libera adiacente creando una partizione più grande e quindi più facilmente allocabile. Questo schema di allocazione delle partizioni è molto più flessibile dello schema a partizioni fisse poiché non vi è il vincolo di allocare un processo in quelle date partizioni. Non c è il problema della frammentazione interna perché a ciascun processo viene allocata esattamente la quantità di memoria richiesta. Lo svantaggio è costituito dalla possibilità di avere frammentazione esterna. La frammentazione esterna si ha quando le aree libere (partizioni) non sono di dimensione sufficiente a contenere un processo anche se la somma delle loro dimensioni è più grande della memoria richiesta dal processo. Allora si potrebbe pensare di compattare la memoria, ma questo non è possibile in quanto la rilocazione è statica e quindi non si possono spostare i processi. Quindi con questa tecnica si ha un utilizzo della memoria migliore rispetto al caso delle partizioni fisse anche se c è un overhead di gestione delle partizioni superiore rispetto alle partizioni fisse. Per quanto riguarda la protezione delle informazioni questa viene realizzata in hardware attraverso l uso di due registri, chiamati registri frontiera o registri limite che contengono rispettivamente l indirizzo iniziale della partizione e l indirizzo finale della partizione assegnata al processo. Se l indirizzo generato non rientra nei due limiti, che rappresentano lo spazio d indirizzamento del processo, allora si verifica una eccezione (trap). Bisogna poi considerare la possibilità o meno con questa tecnica di poter condividere codice o meno.

7 Con la tecnica delle partizioni non è possibile condividere codice in quanto essendo lo spazio virtuale unico (contiguo) anche quello fisico è contiguo. Ciò significa che dati e stack di un processo devono essere necessariamente allocati in partizioni contigue alla partizione di codice. Allora i dati e lo stack di un processo dovrebbero essere sovrapposti ai dati e allo stack dell altro processo (impossibile). Per concludere l argomento occorre descrivere quali sono i metodi usati per allocare i processi nelle partizioni libere. Esistono essenzialmente tre possibilità: a. Allocazione first fit Il processo viene allocato nella prima partizione libera in grado di contenerlo. Il sistema operativo mantiene in memoria una lista delle partizioni libere e nel momento in cui deve allocare un processo scorre la lista finché non trova una partizione di dimensione maggiore o uguale alla dimensione del processo. E il metodo più veloce ma ha lo svantaggio che la parte della partizione non utilizzata è sicuramente quella di dimensioni più piccole. b. Allocazione best fit Il processo viene allocato nella partizione libera più piccola in grado di contenerlo. In questo caso il gestore della memoria deve scorre tutta la lista per determinare la partizione da allocare. c. Allocazione worst fit Il processo viene allocato nella partizione libera più grande che è disponibile. Di seguito è rappresentato un esempio di allocazione con tecnica delle partizioni variabili.

8 6. Si discuta la tecnica di gestione della memoria mediante partizioni variabili (esame del ) Vedi risposta alla domanda 5 7. Si discuta la gestione della memoria mediante segmentazione (esame del ) La tecnica della segmentazione si può dividere in segmentazione semplice oppure in segmentazione su domanda. La tecnica di segmentazione a cui si da anche il nome di tecnica delle partizioni rilocabili fa riferimento al caso di: rilocazione dinamica, spazio virtuale segmentato, allocazione contigua della memoria fisica per ciascun segmento di memoria virtuale e caricamento dello spazio virtuale tutto insieme. Essendo una tecnica nella quale la rilocazione è dinamica allora è possibile compattare la memoria e ridurre cosi il fenomeno della frammentazione tipica della tecnica partizionata. La tecnica è essenzialmente la seguente: lo spazio virtuale di un processo viene diviso in segmenti: per esempio segmento di codice, segmento di dati e segmento di stack. In memoria principale tali

9 segmenti sono caricati in altrettante partizioni. La rilocazione dello spazio virtuale nello spazio fisico viene fatto dalla MMU attraverso l uso di tre coppie di registri (base e limite), una coppia per ogni segmento. Il registro base di una coppia di registri contiene l indirizzo iniziale di caricamento in memoria mentre il registro limite contiene la dimensione del segmento. Quando la CPU genera l indirizzo virtuale, per esempio del segmento di codice, allora si accede alla coppia dei registri della MMU associata a quel segmento. Si confronta l indirizzo virtuale con il contenuto del registro limite e se è superiore allora si verifica una eccezione, altrimenti si preleva il contenuto del registro base e si somma all indirizzo virtuale generato per ricavare l indirizzo fisico. In generale la tecnica di segmentazione consente di suddividere lo spazio virtuale in N segmenti dove ogni segmento viene associato ad un modulo del programma (main, funzione 1, funzione 2, dati, stack etc). Non è quindi possibile avere una MMU con un numero di coppie di registri pari al numero di segmenti. Per questo motivo nei sistemi segmentati viene usata una tabella in memoria chiamata tabella dei segmenti che contiene per ogni segmento la dimensione del segmento e l indirizzo di base ovvero l indirizzo iniziale di caricamento in memoria del segmento. Questa coppia di informazioni costituisce il descrittore di segmento. L indirizzo generato dalla CPU viene scomposto in due parti (segmento, offset) dove segmento è un intero che rappresenta il numero di segmento a cui l indirizzo virtuale x fa riferimento e offset è lo scostamento di x all interno del segmento. Poiché per effettuare la traduzione

10 occorrono due accessi in memoria, uno per accedere alla tabella dei segmenti e una per accedere alla informazione richiesta, allora si risolve il problema mediante l utilizzo di una cache associativa a cui si da il nome di TLB (Table Lookaside buffer) che contiene da 4 a 16 righe in cui si memorizzano le corrispondenze segmento virtuale-segmento fisico. Ogni riga contiene il numero di segmento e la coppia base limite degli ultimi segmenti a cui si è fatto riferimento. Quando la CPU genera l indirizzo virtuale x= (seg, off) allora viene ricercata la corrispondenza prima nella TLB e solo se non si trova si accede alla tabella dei segmenti e si aggiorna il TLB con il nuovo riferimento. Di seguito è rappresentato un esempio di traduzione di indirizzo virtuale in indirizzo fisico nel caso di segmentazione. STLR e STBR sono due registri di macchina dove sono caricati rispettivamente il numero di segmenti del processo e l indirizzo iniziale della tabella dei segmenti. Di seguito è rappresentato l elemento generico (descrittore di segmento) della tabella dei segmenti.

11 8. Si descriva il meccanismo di gestione della memoria mediante paginazione (esame del ) La tecnica della paginazione consente di risolvere il problema della frammentazione tipica della memoria partizionata. Nella paginazione la rilocazione è dinamica e lo spazio virtuale è suddiviso in blocchi di indirizzi virtuali di dimensioni fisse a cui si da il nome di pagine virtuali. Le pagine virtuali costituiscono uno spazio virtuale unico. Lo spazio fisico è a sua volta diviso in blocchi d indirizzi fisici delle stesse dimensioni delle pagine virtuali. A questi blocchi fisici si da il nome di frame o di pagine fisiche. L allocazione delle pagine virtuali nelle frame è non contigua ovvero due pagine virtuali contigue possono essere caricate ovunque in memoria fisica e quindi essere non contigue in memoria fisica. Si veda il seguente esempio.

12 Per ogni processo viene mantenuta aggiornata, in memoria fisica, una tabella di corrispondenza tra pagine virtuali e pagine fisiche. Questa tabella prende il nome di tabella delle pagine. Ogni volta che la CPU genera un indirizzo virtuale questo viene diviso in due parti. I bit meno significativi costituiscono il campo offset o scostamento all interno della pagina virtuale e quindi anche della pagina fisica. I bit più significativi costituiscono invece il numero di pagina virtuale. Il numero di bit che compongono l indirizzo virtuale dipende dalla dimensione della memoria virtuale. Il numero di bit che compongono lo scostamento dipende dalla dimensione della pagina virtuale. Nell esempio le pagine virtuali sono di dimensione 1024 Byte e quindi servono i 10 bit meno significativi per poter indirizzare tutte le 1024 locazioni. I restanti bit compongono il numero di pagina virtuale. Quando un processo viene schedulato, l indirizzo iniziale della sua tabella delle pagine viene caricato in un registro di macchina chiamato RPRT (Registro Puntatore alla Tabella delle Pagine). Il campo pg dell indirizzo virtuale viene utilizzato come indice nella tabella delle pagine, dalla quale si preleva l indice della pagina fisica corrispondente. L indirizzo fisico viene ora composto unendo l indice di pagina fisica con l offset.

13 Il gestore della memoria mantiene aggiornata un'altra tabella chiamata tabella delle pagine fisiche in cui viene riportato per ogni pagina fisica se la pagina è occupata o meno e se è occupata da chi è occupata (processo e indice della pagina virtuale del processo che è caricata in quella pagina fisica). Le pagine virtuali hanno dimensioni che variano da 512 byte a 4k byte. Il campo del descrittore di processo (PCB) relativo alla memoria virtuale contiene due informazioni: il numero di pagine virtuali del processo e l indirizzo iniziale in memoria della tabella delle pagine. vantaggi della paginazione: maggiore flessibilità di allocazione in memoria, e nessuna frammentazione. Svantaggio: nessuna corrispondenza tra moduli di un programma e pagine virtuali: questo significa protezione e condivisione solo a livello di pagina e non di singolo modulo di programma come nella segmentazione. 9. Si descriva il meccanismo attuato dal sistema operativo in caso di page fault (esame del ) Quando viene richiesta una pagina che non è ancora caricata in memoria allora si verifica un page fault o mancanza di pagina. Il page fault viene gestito dal sistema operativo che provvede a caricare da disco in memoria la pagina richiesta. Il processo che ha provocato il page fault viene sospeso e il suo contesto salvato nel suo descrittore. Il sistema operativo prima di caricare la

14 pagina richiesta controlla se in memoria fisica c è un frame libero. Se non c è alcun frame libero allora viene cercata una pagina da rimpiazzare. Il rimpiazzamento avviene usando un opportuno algoritmo (FIFO, LRU, Second Chanche). Se la pagina vittima è stata modificata durante la permanenza in memoria allora bisogna salvarla su disco altrimenti no. A questo punto viene caricata la nuova pagina e la tabella delle pagine viene aggiornata. 10. Si descriva il meccanismo di gestione della memoria mediante segmentazione paginata (esame del ) E una tecnica di rilocazione dinamica che unisce i vantaggi della segmentazione e della paginazione. Lo spazio virtuale è diviso in segmenti e ogni segmento viene poi paginato in memoria fisica. Il caricamento in memoria fisica avviene su domanda. Ci possono essere due tipi di interruzioni: interruzione di segment fault nel caso in cui venga richiesto un indirizzo di un segmento la cui tabella delle pagine non è in memoria oppure interruzione di page fault nel caso in cui la tabella delle pagine sia caricata in memoria ma la pagina virtuale richiesta non è stata caricata in memoria.

15 11. Si discuta la tecnica di gestione della memoria mediante la tecnica della paginazione su domanda (esame del ) Le pagine virtuali di un processo non sono caricate tutte insieme ma vengono caricate solo quando richieste. Se la pagina virtuale richiesta non è presente in memoria viene generato un page fault che viene gestito dal sistema operativo allo stesso modo descritto precedentemente nella domanda 9 e qui di seguito rappresentato graficamente.

16 RIMPIAZZAMENTO DI PAGINA 12. Nell ambito della tecnica di paginazione on demand si illustri l algoritmo di rimpiazzamento delle pagine LRU (esame del ) Prima di descrivere l algoritmo è meglio descrivere brevemente la paginazione su domanda (vedi domanda 11). L algoritmo LRU (Least Recently Used) è un algoritmo usato per rimpiazzare una pagina fisica quando si verifica un page fault e non vi è più spazio in memoria per caricare la pagina virtuale richiesta, dalla swap area alla memoria principale. In questo caso, per far posto alla nuova pagina, il sistema operativo deve scegliere una delle pagine presenti in memoria fisica. Con l algoritmo LRU viene scelta la pagina che da più tempo è inutilizzata, ovvero quella che da più tempo non viene riferita indipendentemente da quando è stata caricata. E l algoritmo che si avvicina maggiormente all algoritmo ottimo, ma in pratica non viene mai utilizzato in quanto è molto complesso da implementare richiedendo molte risorse hardware e software. Una sua approssimazione è l algoritmo second-chanche o clock algorithm.

17 13. Nell ambito della tecnica di paginazione on demand si illustri l algoritmo di rimpiazzamento delle pagine second chanche Questo algoritmo utilizza per la sostituzione di una pagina i bit di uso. Il bit di uso è uno dei bit del campo di controllo dell elemento della tabella delle pagina associata a ciascun processo. Gli altri bit sono il bit di modifica M e i bit di protezione R (read) e W(write). Il bit di uso U identifica se una pagina è stata recentemente riferita. Ogni volta che la pagina virtuale viene riferita viene posto a 1 via hardware il bit di uso associato a quella pagina. Il bit di uso viene azzerato via software quando quella pagina non è stata più riferita da un pò di tempo. L algoritmo sostituisce la pagina fisica che ha il bit di uso uguale a zero. Se ci sono più pagine con il bit di uso a zero allora viene scelto la prima pagina che è stata caricata in memoria (FIFO) ovvero la pagina meno recentemente usata. Se tutte le pagine hanno il bit di uso a 1 allora viene scelta la pagina con il bit di uso a 1 che è stata caricata per prima. Di seguito è rappresentato graficamente un esempio di utilizzo dell algoritmo di rimpiazzamento second chanche. Le pagine fisiche sono organizzate in una coda circolare. Viene tenuto aggiornato un puntatore che chiamiamo vittima. Il puntatore vittima punta alla pagina successiva all ultima pagina che è stata rimpiazzata. Si controlla la pagina 1. Essa ha il bit di uso a 1. Al momento non è la vittima. Potrebbe però diventarlo se nessuna pagina successiva ha il bit di uso a 0. Per cui il bit di uso della pagina 1, prima di controllare la pagina 2, viene posto a 0. Ora si controlla la pagina 2. Il bit di uso è a 1, lo si azzera e si va avanti. La prima pagina che ha il bit di uso a 0 è la pagina 4 che sarà quindi la vittima da sostituire. Nel caso in cui tutte le pagine avessero avuto il bit di uso a 1 allora la pagina sostituita sarebbe stata la pagina 1. La sostituzione sarebbe avvenuta al secondo tentativo da cui il nome dell algoritmo (second chanche)

18 14. Si consideri un processo attualmente in esecuzione, il cui contenuto della memoria associativa nella MMU e la tabella delle pagine siano rispettivamente: Memoria Associativa: Bit di PARTIZIONE MODIFICATA PROTEZIONE RIFERITA PAGINA validità LOGICA FISICA 1 7 SI RW SI NO R SI NO RW SI 5 Tabella delle pagine: PAGINA PAGINA MODIFICATA PROTEZIONE RIFERITA PRESENTE/ASSENTE LOGICA FISICA 4 5 NO RW NO SI 5 8 NO R SI SI 6 6 SI RW NO SI 7 7 SI RW NO SI 8 - NO RW NO NO

19 analizzando ognuno dei seguenti casi in modo INDIPENDENTE DAGLI ALTRI, dire quali eccezioni vengono sollevate, come si comporta il sistema, e come variano le due tabelle: 1- il processo effettua uno accesso in scrittura alla pagina logica 5 2- il processo effettua uno accesso in scrittura alla pagina logica 4 3- il processo effettua uno accesso in lettura alla pagina logica 8 Soluzione 1) il descrittore della pagina 5 è caricato nella memoria associativa, quindi si traduce l indirizzo. Alla pagina virtuale 5 corrisponde la pagina fisica 8. Siccome l accesso è in scrittura ma l accesso alla pagina è consentito in sola lettura viene generata un eccezione che provocherà il fallimento del processo. 2) il descrittore della pagina 4 non è caricato nella memoria associativa (il bit di validità è posto a 0), quindi viene generata un eccezione di indirizzo, si accede alla tabella delle pagine, si scopre che la pagina 4 è caricata in memoria nella pagina fisica 5, quindi si carica il descrittore della pagina 4 in memoria associativa e si marca la pagina 4 come modificata e riferita nella memoria associativa che quindi diventa: valido pag. logica modificata protezione riferita pag. fisica 1 7 SI RW SI NO R SI SI RW SI 5 La tabella delle pagine resta invariata. 3) il descrittore della pagina 8 non è caricato nella memoria associativa, quindi viene generata un eccezione di indirizzo, si accede alla tabella delle pagine, si scopre che la pagina 8 NON è caricata in memoria, quindi si genera un page fault. Al termine del page fault verrà aggiornato il descrittore della pagina 8 nella tabella delle pagine e verrà caricato il descrittore nella memoria associativa.

20 15. Usando la tabella delle pagine: Pagine virtuali Pagine fisiche si diano gli indirizzi fisici corrispondenti ad ognuno dei seguenti indirizzi virtuali, sapendo che ogni pagina ha dimensione di 2KB: a) 20 b) 2500 c) 3750 d) 4560 e) 6375 Soluzione a) P = 20 DIV 2048 = 0 Of = 20 MOD 2048 = 20 Y= 3* = 6164 b) P = 2500 DIV 2048 = 1 Of = 2500 MOD 2048 = 452 Y= 5* = c) P = 3750 DIV 2048 = 1 Of = 3750 MOD 2048 =1702 Y= 5* = d) P = 4560 DIV 2048 = 2 Of = 4560 MOD 2048 = 464 Y= 0* = 464 e) P = 6375 DIV 2048 = 3 Of = 6375 MOD 2048 = 231 Y=4* = Si consideri un sistema con buchi di memoria liberi di: 10kb, 4kb, 20kb, 18kb, 7kb, 9kb, 12kb, 15kb, nell ordine. Quali buchi e in che ordine vengono presi per soddisfare le seguenti successive richieste: 12kb, 10kb, 9kb con le seguenti strategie? a) first fit b) best fit c) worst fit Soluzione a) 20kb, 10kb, 18k b) 12kb, 10kb, 9kb c) 20kb, 18kb, 15kb

21 17. Supponendo di dover rimpiazzare una pagina di memoria tra quelle indicate in tabella, quale sceglierebbero le seguenti strategie?: a) clock algorithm b) FIFO c) LRU Pagina Tempo Caricamento Ultimo riferimento bit di uso Soluzione a) la pagina 0 perché ha bit di uso a 0 b) la pagina 2 perché è stata la prima ad essere caricata nel sistema c) la pagina 1 perché è quella che da più tempo non viene riferita. 18. Un computer assegna ad ogni processo byte di spazio indirizzabile diviso in pagine di 4096 byte. Un programma particolare ha un testo di dimensione byte, dati di dimensione di byte e lo stack di dimensione di byte. Questo programma riuscirà ad essere contenuto nello spazio di indirizzamento? Se la dimensione delle pagine fosse di 512 byte, rientrerebbe nello spazio di indirizzamento? Si ricordi che una pagina non può contenere parti di due segmenti diversi, ad esempio non può contenere stack e codice. Soluzione Se la dimensione delle pagine è di 4K, il codice richiederà 8 pagine, la parte dati 5 pagine e lo stack 4 pagine, quindi il programma non può essere interamente contenuto nello spazio di indirizzamento di 16 pagine. Con pagine di 512 byte invece il programma rientra nello spazio di indirizzamento perché delle 128 pagine disponibili, il codice ne occupa 64, i dati 33 e lo stack 31.

22 19. Sia data la tabella delle pagine di un processo di figura. Si supponga che in memoria siano presenti solo le pagine del processo considerato, che però non possono essere interamente contenute in memoria. Dire quanti page fault provoca la stringa di riferimenti alle pagine se la strategia di rimpiazzamento delle pagine è FIFO, nell ipotesi che ad ogni page fault sia necessario scaricare una pagina del processo dalla memoria per caricarne una nuova. Pagine virtuali Pagine fisiche bit di presenza Tempo di arrivo Soluzione Il primo riferimento alla pagina 0 non provoca page fault, il secondo riferimento alla pagina 1 provoca un page fault e la pagina rimpiazzata è la pagina virtuale 2. Il riferimento alla pagina 7 provoca un altro page fault e la pagina scaricata è la 0. Il riferimento alla pagina 3 non provoca page fault mentre il riferimento alla pagina 4 ne provoca uno con il rimpiazzamento della pagina 6. Il riferimento alla pagina 5 non provoca page fault, mentre la pagina 0 deve nuovamente essere caricata in memoria, scaricando la pagina 5. L ultimo riferimento a 1 non provoca page fault. In totale i page fault sono 4.

Sistemi Operativi. 5 Gestione della memoria

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

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale AXO Architettura dei Calcolatori e Sistemi Operativi memoria virtuale concetto di memoria virtuale Separare il concetto di: spazio di indirizzamento di un programma eseguibile e dimensione effettiva della

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

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

Varie tipologie di memoria

Varie tipologie di memoria Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti

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

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

La Memoria Virtuale Ottimizzazione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale La Memoria Virtuale Ottimizzazione della memoria centrale 1) Introduzione- Gerarchia della memoria Da un punto di vista funzionale, ogni dispositivo di memorizzazione elettronica di informazioni presenta

Dettagli

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: 1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere

Dettagli

HEX Bin HEX Bin HEX Bin HEX Bin 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111

HEX Bin HEX Bin HEX Bin HEX Bin 0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111 Struttura interna del Sistema Operativo CAP. 7. La gestione della memoria virtuale Il concetto di memoria virtuale Il concetto di memoria virtuale nasce dalla necessità di separare il concetto di spazio

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

memoria virtuale protezione

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

Dettagli

Memoria. Sistemi Operativi Giuseppe Prencipe. Tipica Gerarchia di Memoria. Gestione della Memoria. Modelli di gestione della memoria

Memoria. Sistemi Operativi Giuseppe Prencipe. Tipica Gerarchia di Memoria. Gestione della Memoria. Modelli di gestione della memoria Sistemi Operativi Giuseppe Prencipe Gestione della Memoria Memoria La memoria è un ampio vettore di parole, ciascuna con il suo indirizzo La CPU preleva le istruzioni dalla memoria (basandosi sul PC) Una

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale 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

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Principi di base La gestione della memoria si occupa di allocare la memoria fisica ai processi che ne fanno richiesta. Nessun processo può diventare attivo prima di avere

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

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

Sistemi Operativi Gestione della Memoria (parte 2)

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

Dettagli

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente :

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente : 32. Il Sistema Operativo : definizione e struttura Il SO è un insieme di programmi le cui funzioni principali sono costituire un interfaccia tra la macchina e l utente e gestire in modo ottimale le risorse

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

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

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

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

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

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale Funzioni principali del sistema operativo Il software la parte contro cui si può solo imprecare Avvio dell elaboratore Gestione del processore e dei processi in Gestione della memoria principale Gestione

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

Dettagli

Esercitazione E2 Memoria virtuale

Esercitazione E2 Memoria virtuale Esercitazione E2 Memoria virtuale Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E2-1 Memoria virtuale 1 Si consideri un sistema a memoria virtuale con indirizzi virtuali a 32 bit, indirizzi fisici

Dettagli

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

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

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 8 LEZIONE MEMORIA CENTRALE 1 PARTE CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

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

Dettagli

LA GESTIONE DELLA MEMORIA

LA GESTIONE DELLA MEMORIA LA GESTIONE DELLA MEMORIA Ambiente Monoprogrammato (monoprogrammazione) In ambiente monoprogrammato é possibile far girare un solo programma per volta. Tutte le risorse sono dedicate all unico programma

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Gestione della memoria: 1. Binding degli indirizzi. Partizionamento

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

Dettagli

= 0, 098 ms. Da cui si ricava t 2 medio

= 0, 098 ms. Da cui si ricava t 2 medio 1. Una macchina ha uno spazio degli indirizzi a 32 bit e una pagina di 8 KB. La tabella delle pagine è completamente nell hardware, con una parola a 32 bit per voce. Quando parte un processo, la tabella

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

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

Esercitazione E6 Esercizi d esame

Esercitazione E6 Esercizi d esame Esercitazione E6 Esercizi d esame Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E6-1 Memoria virtuale Si consideri un sistema a memoria virtuale con indirizzi a 32 bit, indirizzi fisici a 20

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

Sistemi Operativi. Principi di ges tione della memoria S wapping Memoria virtuale

Sistemi Operativi. Principi di ges tione della memoria S wapping Memoria virtuale Sistemi Operativi Principi di ges tione della memoria S wapping Memoria virtuale Necessità di gestire la memoria La memoria è una risorsa importante e deve essere gestita attentamente Un programmatore

Dettagli

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati.

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati. SISTEMI OPERATIVI SOFTWARE DI BASE Il software di base comprende tutti quei programmi indispensabili ai fini del funzionamento dell elaboratore, per questo viene detto di base. I S.O. rientrano nella categoria

Dettagli

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi. Problemi di riepilogo sulla prima parte del corso

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi. Problemi di riepilogo sulla prima parte del corso Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi Problemi di riepilogo sulla prima parte del corso Prof. Augusto Celentano, anno accademico 2009-2010 Questa raccolta è

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Gestione della memoria Gestione della memoria: 1. Binding degli indirizzi 2. Partizionamento

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

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Memoria virtuale. Strutture hardware e di controllo

Memoria virtuale. Strutture hardware e di controllo Memoria virtuale Strutture hardware e di controllo Le caratteristiche chiave delle tecniche di segmentazione e paginazione sono: Tutti i riferimenti di memoria all'interno di un processo sono indirizzi

Dettagli

Memoria virtuale e ottimizzazione

Memoria virtuale e ottimizzazione SISTEMI OPERATIVI 08.b Memoria virtuale e ottimizzazione Memoria virtuale e ottimizzazione Supporto fornito dall hardware MV con Paginazione (page table) MV con Segmentazione MV con Segmentazione e Paginazione

Dettagli

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

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

Dettagli

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione. C6. REALIZZAZIONE DEL FILE SYSTEM Struttura del file system Un file è analizzabile da diversi punti di vista. Dal punto di vista del sistema è un contenitore di dati collegati tra di loro, mentre dal punto

Dettagli

SCHEDULING DEI PROCESSI

SCHEDULING DEI PROCESSI SCHEDULING DEI PROCESSI FIFO o FCFS (First-In-First-Out) Primo arrivato primo servito. Si utilizza nei processi non-preemptive. RR (Round-Robin) I processi sono attivati in modalità FIFO ma viene loro

Dettagli

Cosa è un Sistema Operativo (S.O.)

Cosa è un Sistema Operativo (S.O.) Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all

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

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

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

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Memoria. Sistemi Operativi Giuseppe Prencipe. Memoria virtuale. Gestione della memoria. Paginazione su richiesta. Paginazione su richiesta

Memoria. Sistemi Operativi Giuseppe Prencipe. Memoria virtuale. Gestione della memoria. Paginazione su richiesta. Paginazione su richiesta Sistemi Operativi Giuseppe Prencipe Memoria Virtuale Memoria Abbiamo visto varie tecniche per gestire la memoria Permettono la presenza contemporanea di più processi in memoria La memoria virtuale è una

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

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

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Gestione della Memoria Principale

Gestione della Memoria Principale Fondamenti Gestione della Memoria Principale La memoria di un elaboratore e organizzata nella seguente gerarchia Typical access time Typical capacity Fondamenti Binding, Loading, Linking Spazio indirizzi

Dettagli

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale Memorie Caratteristiche principali Tecnologie di memoria Locazione: processore, interna (principale), esterna (secondaria) Capacità: dimensione parola, numero di parole Unità di trasferimento: parola,

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Lezione n.9. Introduzione al linguaggio macchina

Lezione n.9. Introduzione al linguaggio macchina Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

I processi Unix. Entry della tabella dei processi

I processi Unix. Entry della tabella dei processi I processi Unix Ciascun processo Unix può evolvere in stato utente o in stato kernel. Il passaggio dall uno all altro stato avviene mediante SVC. Poiché il processo può andare in attesa di un evento nell

Dettagli

Memoria virtuale. Introduzione Paginazione Fault

Memoria virtuale. Introduzione Paginazione Fault Memoria virtuale Introduzione Paginazione Fault Introduzione La memoria di un calcolatore sottende un modello lineare La memoria è un insieme ordinato di celle contigue Dimensione delle celle La dimensione

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

Esempi di domande della seconda provetta

Esempi di domande della seconda provetta Esempi di domande della seconda provetta Data la seguente stringa di riferimenti a pagine virtuali: S = 1, 7, 5, 1, 2, 1, 7, 1, 5, 7, 2, 1, 5 valutare la percentuale di Page Fault se il rimpiazzamento

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

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

Gestione della memoria

Gestione della memoria Prof. Diomede Mazzone Gestione della memoria Memoria Virtuale Cosa accade usualmente Alcuni processi possono rimanere in stato di ready per molto tempo, occupando memoria! Le pagine fisiche di memoria

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

MEMORIA GERARCHIE DI MEMORIA

MEMORIA GERARCHIE DI MEMORIA MEMORIA GERARCHIE DI MEMORIA La memoria è divisa in più livelli che sono dal più vicino al più distante al CPU, per tempi di accesso: memoria cache, SRAM, capienza (MB), più veloce (decimi di ns), costosa

Dettagli

Memoria secondaria. Sistemi Operativi mod. B 14.1

Memoria secondaria. Sistemi Operativi mod. B 14.1 Memoria secondaria Struttura del disco Scheduling del disco Gestione dell unità a disco Gestione dello spazio di swap La struttura RAID Affidabilità dei dischi Connessione dei dischi 14.1 Memoria secondaria

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

Struttura dei dischi

Struttura dei dischi Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2007-2008 Copyright c 2000 04 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione nella sua integrità

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Dettagli