domanda compitino Clicca QUI per vedere il messaggio nel forum |
susy |
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? |
Cronovirus |
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? :) |
susy |
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! |
Cronovirus |
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!! |
|
|
|