This shows you the differences between two versions of the page.
|
memoria_paginata [2010/02/11 09:54] finarfin |
memoria_paginata [2010/02/11 10:47] (current) finarfin |
||
|---|---|---|---|
| Line 70: | Line 70: | ||
| Ora cosa dovra' fare il nostro handler del PF, dipendera solo da come abbiamo deciso di implementare il nostro OS. Ovvero: | Ora cosa dovra' fare il nostro handler del PF, dipendera solo da come abbiamo deciso di implementare il nostro OS. Ovvero: | ||
| - | * Se abbiamo deciso di allocare le pagine solo quando necessario, nel momento in cui viene generato un #PF per una non present page, quello che verra' fatto e' creare una nuova entry pdir/ptable, per l'indirizzo | + | * Se abbiamo deciso di allocare le pagine solo quando si verifica un accesso a quell'indirizzo, alliora nel momento in cui viene generato un #PF per una non present page, quello che verra' fatto e' ottenere la suddivisione pdir/ptable dell'indirizzo in CR2, se neccessario creare nuova entry della ptable, viene poi effettuata una chiamata alla funzione di allocazione fisica della memoria, che ci tornera' il primo indirizzo disponibile. E questo verra' assegnato alla entry pdir/ptable ottenuti precedentemente. |
| + | * Se invece abbiamo deciso di inserire l'indirizzo in pdir/ptable in paginazione non appena questo viene allocato, quanto descritto sopra non e' necessario, ma in entrambi i casi e' necessaria la gestione dell'errore (per esempio: violazione di privilegi, violazione dei bit reserved, etc). | ||
| + | |||
| + | ===== Infine ===== | ||
| + | Se il nostro OS usa un unico spazio di indirizzamento per tutti i processi, potremo aver finito qua, al massimo dobbiamo adattare le funzioni di allocazione, che una volta ottenuto un indirizzo fisico si occupano di mapparlo in ambito di paginazione, sempre che questo non lo vogliamo far fare al #PF. | ||
| + | Invece nel caso di spazi di indirizzamento diversi per ogni processo, dobbiamo ora fare un nuovo gestore di memoria, specifico per la gestione degli indirizzi con la paginazione abilitata, che sta quindi sopra il gestore fisico (che continuera' a essere presente). Per questo vi rimando ai numerosi tutorial in rete, fra cui: | ||
| + | [[http://jamesmolloy.co.uk/tutorial_html/7.-The%20Heap.html|The Heap - by james Molloy]] | ||
| [[gestione_della_memoria|Torna Indietro]] | [[gestione_della_memoria|Torna Indietro]] | ||