On Tue, Apr 22, 2008 at 12:25 AM, Mrunal Gawade <[EMAIL PROTECTED]> wrote:
> This is in continuation of above query. > > Virtual address is = 32 bit - 10 + 10 + 12 bits > 10 bits -> Page directory entry offfset > 10 bits -> Page table entry offset > 12 bits- > Offset of data within page > > --------------- > I read somewhere that PAGE_SHIFT macro gives the page number of the page. > Now if we consider this 32 bit address, and shift of 12 bits to the left how > is that justified. I feel confused. Size of (page) = 4kb ( 2^12 ) (on X86 arch) 32 bit address space available == 2^32 therefore number of pages (virtually) available == 2^32/2^12 == 2^20 so we have 2^20 pages or page numbers or page addresses available. now consider we have a 32 bit address XXXX..... right shift it by 12 bits, voila! i have the page number. got it :) cheers, Nikhil
