Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAlbina Carli Modificato 9 anni fa
1
1 Gestione della Memoria Capitolo 4 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
2
2 Organizzazione della Memoria Spazio logico dei processi A e B e memoria fisica Condivisione dell’area testo Unix supporta spazi separati per istruzioni e dati Process A Process B
3
3 Condivisione di File Two processes can share a mapped file. Un file mappato simultaneamente in due processi
4
4 System Call per la Gestione della Memoria s è un codice di errore a e addr sono indirizzi di memoria len è una lunghezza prot controlla la protezione flags bit vari fd è un descrittore di file offset è un offset all’interno di un file
5
5 Esempio di file mappato in memoria #include int main (void) { int fd; char *mem; int bytes_in_page; bytes_in_page = getpagesize(); /* numero di byte nella pagina */ fd = open(”nomeFile",O_RDWR); mem = mmap (0,bytes_in_page,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0); strcpy(mem,”una stringa"); printf("%s\n", mem); ….. …... return 0; }
6
6 Paginazione in UNIX The core map in 4BSD. Si usa paginazione su domanda La tabella principale (core map) ha un elemento per ogni pagina fisica
7
7 Algoritmo di Sostituzione in UNIX (BSD) Eseguito dal page daemon Cerca di mantenere almeno lotsfree pagine libere Usa l’algoritmo Two-handed clock Una variante dell’algoritmo Clock Con allocazione globale Se non è possibile mantenere lotsfree pagine libere si fa lo swapping di qualche processo Si fa lo swap-out di processi idle da più tempo e in alternativa di processi grossi Swap-in se ci sono pagine libere a sufficienza Il processo viene scelto in base a vari parametri
8
8 Paginazione in Linux (1) Linux usa tabelle delle pagine a tre livelli
9
9 Paginazione in Linux (2) Operation of the buddy algorithm. Algoritmo Buddy
10
10 Gestione della Memoria Capitolo 4 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
11
11 Concetti Fondamentali (1) Layout di spazi di indirizzamento logici per 3 processi Le aree bianche sono private Le aree scure sono condivise
12
12 Concetti Fondamentali(2) Aree mappate con le rispettive pagine su disco Il file lib.dll è mappato in due spazi di indirizzamento contemporaneamente
13
13 Concetti Fondamentali(3) Ogni pagina logica può essere : free : se non è assegnata a nessuna regione –un accesso a una pagina free da sempre un page fault committed : se appartiene alle pagine in uso di una regione già mappata –un accesso a una pagina committed risulta in un page fault solo se la pagina corrispondente non si trova in memoria centrale reserved : è una pagina non ancora in uso ma che è stata riservata per espandere una regione –un accesso a una pagina reserved da sempre un page fault –le pagine reserved non possono essere utilizzate per mappare nuove regioni –es: si possono riservare pagine per la crescita dello stack
14
14 System Calls per la Gestione della Memoria Le principali funzioni delle API Win32 per la gestione della memoria in Windows 2000
15
15 Implementazione della Gestione della Memoria Una entry della tabella delle pagine sul Pentium
16
16 Diversi tipi di Page Fault I page fault in Windows sono di 5 diversi tipi : 1. Pagina non committed fatal error 2. Violazione di protezione fatal error 3. Scrittura di una pagina condivisa viene creata una copia locale 4. Lo stack ha bisogno di nuovo spazio alloca una nuova pagina per lo stack 5. Pagina committed ma non in memoria normale gestione del page fault
17
17 Algoritmo di Sostituzione Basato sull’algoritmo working set Con parametri min e max dimensione del working set Allocazione (fondamentalmente) locale Se la dimensione del working set corrente è x, in caso di page fault: Se x<min una pagina è caricata nel working set Se x>max si elimina una pagina dal working set (ma non dalla memoria) Utilizza il demone balance set manager per mantenere un certo numero di pagine libere viene svegliato una volta al secondo
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.