1 / 16

Gestione della Memoria

Gestione della Memoria. 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione 4.6 Criteri di progetto per la paginazione 4.7 Case study: Unix 4.8 Case study: Windows 2000. Capitolo 4.

kasi
Download Presentation

Gestione della Memoria

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gestione della Memoria 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione 4.6 Criteri di progetto per la paginazione 4.7 Case study: Unix 4.8 Case study: Windows 2000 Capitolo 4

  2. Memoria Virtuale Paginazione (1) Posizione e funzione della MMU

  3. Paginazione (2) Pagina fisica 6 (110) • La tabella delle pagine mostra la relazione tra indirizzi logici e indirizzi fisici • Una copia completa dello spazio di indirizzamento virtuale è presente su disco Pagina logica 2 (0010)

  4. Tabella delle Pagine (1) Operazioni di una MMU con 16 pagine di 4 KB

  5. Tabella delle Pagine (2) • La tabella delle pagine può essere estremamente estesa • con indirizzi a 32 bit e pagine di 4K, la tabella delle pagine ha un milione di record • La traduzione degli indirizzi deve essere veloce • più accessi alla page table per istruzione • il tempo di accesso alla page table deve essere comparabile al tempo di esecuzione medio di una istruzione (es. se il tempo di esecuzione medio è di 4ns, l’accesso alla tabella delle pagine deve essere dell’ordine di 1ns)

  6. Tabella delle Pagine (3) Record in una tabella delle pagine

  7. TLB - Translation Lookaside Buffer o Memoria Associativa Esempio di TLB

  8. Tabella delle Pagine a due livelli Second-level page tables (a) Indirizzi a 32 bit con due campi per la tabella delle pagine (b) Tabella delle pagine a due livelli Top-level page table (b)

  9. Tabella delle Pagine Inversa Confronto tra tabella delle pagine tradizionale e tabella delle pagine inversa

  10. Implementazione della Paginazione Il Sistema operativo invoca i meccanismi di paginazione in quattro circostanze: • Creazione di un Processo • Determina la dimensione del programma • Crea la tabella delle pagine • Esecuzione di un Processo (context switch) • Reset della MMU per il nuovo processo • Aggiornamento del TLB (flush) • Page fault • Determina l’indirizzo logico che ha causato il page fault • Sposta una pagina su disco (se necessario) e carica la pagina richiesta • Terminazione di un Processo • Dealloca la tabella delle pagine e le pagine del processo

  11. Gestione del Page Fault (1) 1. Una eccezione provoca l’invocazione del nucleo, salvando almeno il PC sullo stack (hw) 2. Salvataggio registri generali e altri reg. interni (assembler) 3. Il sistema determina la pagina logica richiesta 4. Il sistema verifica la validità dell’indirizzo, e ricerca una pagina libera o, in alternativa, una pagina vittima 5. Se la pagina vittima selezionata è stata modificata (dirty), viene scritta su disco

  12. Gestione del Page Fault (2) 6. Il sistema legge la pagina logica dal disco 7. Quando la lettura è completata, aggiorna la tabella delle pagine 8. Viene ripristinata l’istruzione che ha causato il page fault 9. Il processo che ha causato il page fault viene schedulato 10. Ripristino dei registri, ritorno in modo utente (assembler) • Il processo riprende l’elaborazione come se il page fault non fosse avvenuto

  13. Ripristino dell’Istruzione # • Un’istruzione che ha causato un page fault • Alcune macchine hanno dei registri interni che mantengono infomazioni di ripristino (backup)

  14. Vincolare le pagine in Memoria • Memoria virtuale e I/O interagiscono occasionalmente • Un processo richiede una lettura da un dispositivo su un buffer • Mentre attende per l’I/O passa in esecuzione un altro processo • Il processo in esecuzione causa un page fault • La pagina contenente il buffer del primo processo può essere selezionata per essere scaricata dalla memoria • Necessità di vincolare alcune pagine • Le pagine vincolate non possono essere scaricate dalla memoria (pinning)

  15. Backing Store (a) Paginazione con un’area di swap statica (b) Paginazione con area di swap dinamica Process address space

  16. Separazione tra Politiche e Meccanismi Gestione di un page fault con un pager esterno (ispirata al sistema Mach)

More Related