Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- domanda compitino (http://www.dsy.it/forum/showthread.php?threadid=43772)
domanda compitino
Ciao ragazzi, questa era una domanda del secondo compitino di sisop (che non ho passato, porca miseria se lo odio sto esame):
che cosa ritorna questa funzione:
return (pp - pages) << pgshift
sono andata a vedere nel file kern/pmaps.h ma non riesco a capire cosa fa!
Aiuti?
Restituisce l'indirizzo fisico corrispondente al frame pp!
pp - pages : aritmetica dei puntatori, ottieni il NUMERO del frame a cui corrisponde pp
<< pgshift : moltiplica il numero precedentemente trovato per la dimensione di una pagina, così da avere un indirizzo fisico!
In conclusione era la funzione page2pa(struct PageInfo *pp).
È chiaro o ci sono dei dubbi?
Gia è più chiaro, ma il frame di cosa? Perchè ricordo vagamente alcune delle risposte e riguardavano se non sbaglio la page directory e la page table o qualcosa del genere!
La memoria è suddivisa in frame (o pagine) da 4K ciascuna: l'array pages rappresenta tali pagine (infatti è di dimensione npages, ovvero il numero totale di pagine fisiche presenti nel sistema).
Quindi facendo pp - pages hai il numero (progressivo) di pagina fisica a cui corrisponde pp.
Devi entrare nell'ottica che la struttura pages rappresenta i frame fisici e che questa è una funzione che ti permette di passare dalla struttura che rappresenta il frame fisico, al frame fisico reale!
P.s qui le page directory e le page table non c'entrano nulla!!
All times are GMT. The time now is 14:51. | Show all 4 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.