Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Memoria Centrale

  • View
    223

  • Download
    0

Embed Size (px)

Text of Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Memoria...

  • Slide 1
  • Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Memoria Centrale
  • Slide 2
  • 8.2 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Introduzione Swapping Allocazione contigua Paginazione Struttura della tabella delle pagine Segmentazione
  • Slide 3
  • 8.3 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Introduzione Swapping Allocazione contigua Paginazione Struttura della tabella delle pagine Segmentazione
  • Slide 4
  • 8.4 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Introduzione Nei moderni Sistemi Operativi la gestione della memoria un aspetto fondamentale per la realizzazione della multiprogrammazione poich pi processi attivi devono essere presenti in memoria Un programma per essere eseguito deve trovarsi nella memoria primaria Lo scopo del Sistema Operativo di allocare la memoria per i processi da mandare in esecuzione in modo che siano pronti quando la CPU gli viene assegnata Lallocazione della memoria ai processi quindi uno dei compiti di un Sistema Operativo
  • Slide 5
  • 8.5 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Associazione degli indirizzi - 1 I programmi utente passano attraverso stadi diversi, con diverse rappresentazioni degli indirizzi, prima di essere eseguiti Indirizzi simbolici Gli indirizzi nel programma sorgente Esempio: count Indirizzi rilocabili Indirizzi calcolati rispetto ad un valore di riferimento Esempio: calcolati a partire dalla prima istruzione del programma che ha indirizzo 0 Indirizzi assoluti Indirizzi propri della memoria centrale Esempio 74014
  • Slide 6
  • 8.6 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Associazione degli indirizzi - 2 Lassociazione di istruzioni e dati a indirizzi di memoria si pu compiere in diverse fasi Compilazione - se la posizione in memoria del processo nota a priori, pu essere generato codice assoluto se la locazione iniziale cambia, necessario ricompilare il codice Caricamento - se la posizione in memoria non nota in fase di compilazione, necessario generare codice rilocabile il compilatore genera indirizzi relativi che vengono convertiti in indirizzi assoluti dal loader se lindirizzo iniziale cambia, il codice deve essere ricaricato in memoria Esecuzione Se il programma durante la sua esecuzione pu essere spostato da una parte allaltra della memoria allora lassociazione deve essere fatta a tempo di esecuzione necessario un opportuno supporto hardware per il mapping degli indirizzi I vantaggi principali sono: Assoluta indipendenza da una locazione di memoria Possibilit di cambiare il blocco di memoria occupato immediatamente I Sistemi Operativi moderni supportano questa modalit di associazione
  • Slide 7
  • 8.7 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Spazi di indirizzi logici e fisici Gli indirizzi utilizzati da una applicazione sono diversi dagli indirizzi realmente utilizzati dallapplicazione in memoria Indirizzo logico (o indirizzo virtuale): generato dalla CPU nel momento della compilazione Indirizzo fisico: lindirizzo effettivamente utilizzato dallapplicazione in memoria Il binding mappa indirizzi logici in indirizzi fisici Binding statico : a tempo di compilazione o di caricamento Indirizzi logici = indirizzi fisici Binding dinamico: a run-time indirizzi logici (o virtuali) indirizzi fisici Possibilit di spostare processi in memoria allatto dellesecuzione Supporto fondamentale a memoria virtuale e swapping
  • Slide 8
  • 8.8 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Memory-Management Unit ( MMU ) Lassociazione in fase di esecuzione tra lo spazio degli indirizzi logici e lo spazio di indirizzi virtuali svolta da unit di gestione della memoria (memory-management unit, MMU) La MMU possiede un registro di rilocazione che permette immediatamente di convertire un indirizzo logico in indirizzo fisico Il programma utente tratta sempre indirizzi logici mentre larchitettura di sistema tratta indirizzi fisici Esempio: se lapplicazione utilizza un range di indirizzi logici da 0 a max ed il registro di locazione contiene il valore r allora il range di indirizzi fisici sar da 0+r a r+max n Supponiamo che il registro di rilocazione contenga il valore 14000 n Qualunque tentativo da parte dellapplicazione di accedere alle locazioni di memoria 0 e 346 si traduce in l 0 + 14000 = 14000 l 346 + 14000 = 14346
  • Slide 9
  • 8.9 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Caricamento dinamico Un applicazione durante il suo ciclo di esecuzione utilizza delle procedure esterne (librerie di procedure) Il caricamento dinamico permette di caricare una procedura in memoria solo quando viene richiamata La memoria viene utilizzata meglio poich la procedura caricata solo se effettivamente utilizzata Anche se lapplicazione enorme, la memoria occupata effettivamente solo quella necessaria Il programmatore deve prestare attenzione progettando lapplicazione in modo da trarre vantaggio dal caricamento dinamico
  • Slide 10
  • 8.10 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Librerie di procedure Le librerie di procedure possono essere fondamentalmente di due tipi Librerie statiche - contengono procedure che vengono collegate al codice del programma principale dal compilatore o dal loader e diventano parte delleseguibile Lo svantaggio principale che se n programmi utilizzano la stessa libreria statica questa sar incorporata da ogni eseguibile e quindi lo stesso codice sar caricato pi volte in memoria Oltretutto se lapplicazione una volta mandata in esecuzione non utilizzer nessuna procedura della libreria occuper inutilmente spazio in memoria Librerie dinamiche non sono collegate al codice e vengono caricate in memoria solo quando lapplicazione chiama una delle sue procedure. La librerie quindi caricata in memoria a run-time utilizzando un caricamento dinamico Lapplicazione che utilizza una libreria dinamica conterr allinterno del suo codice il nome della procedura che vuole chiamare Il vantaggio principale che il codice di una libreria dinamica pu essere condivisa tra pi processi evitando inutili duplicazioni in memoria di codice identico Sotto linux le librerie dinamiche hanno estensione.so Sotto Windows le librerie dinamiche hanno la ben nota estensione.dll
  • Slide 11
  • 8.11 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Introduzione Swapping Allocazione contigua Paginazione Struttura della tabella delle pagine Segmentazione
  • Slide 12
  • 8.12 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Swapping Lidea dellavvicendamento dei processi (o swapping) salvare nella memoria secondaria un processo non in esecuzione (swap out) e ricaricarlo (swap in) appena prima di dargli la CPU Lo swapping permette di avere pi processi attivi di quanti effettivamente possa contenere la RAM I processi attivi sono mantenuti temporaneamente su unarea del disco fisso ad uso esclusivo del Sistema Operativo chiamata area di swap (o backing store) Poich un processo pu essere ricaricato in una diversa aria di memoria principale necessario utilizzare codice dinamicamente rilocabile in fase di esecuzione
  • Slide 13
  • 8.13 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Il cambio di contesto nello swapping La fase di contex switch utilizzando lo swapping pu aumentare significativamente Ad esempio supponiamo di avere in memoria un processo di 10MB e supponiamo che il disco fisso abbia una velocit di trasferimento di 40MB/sec Il tempo di trasferimento pari a: 10.000KB / 40.000KB/sec = sec = 250 millisecondi A questo tempo va aggiunto il tempo per posizionare le testine (circa 8 millisecondi) quindi passiamo a: 258 millisecondi Infine va considerato che lavvicendamento include una fase di scrittura (swap out) ed una di lettura (swap in) quindi in totale avremo: 516 millisecondi Quindi un quanto di tempo dovrebbe essere maggiore di 0,516 secondi
  • Slide 14
  • 8.14 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Introduzione Swapping Allocazione contigua Paginazione Struttura della tabella delle pagine Segmentazione
  • Slide 15
  • 8.15 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Allocazione contigua della memoria La memoria principale normalmente suddivisa in due parti: Il Sistema Operativo caricato nella parte bassa della memoria (a partire dallindirizzo 0) I processi utente sono memorizzati nella memoria alta Ogni processo contenuto in una singola, contigua sezione di memoria La memoria pu essere allocata utilizzando diverse strategie tra le quali le pi note sono: Partizioni multiple fisse Partizioni multiple variabili
  • Slide 16
  • 8.16 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Partizioni multiple fisse Nello schema a partizioni multiple fisse (Multiprogramming with a Fixed number of Tasks, MFT) la memoria suddivisa in blocchi (non necessariamente tutti uguali) di dimensione fissata a priori e non modificabile Ogni partizione pu contenere un processo Il numero di partizioni decide il grado di multiprogrammazione Al termine di un processo, la partizione libera per contenere un altro processo Quando un processo viene schedulato, il SO cerca una partizione libera di dimensioni sufficienti ad acco