虚拟地址到物理地址映射时如何对齐?

先看这张图:

也就是说 在映射时,只要va或者va+size不是PGSIZE的整数倍,那就要多算一个。

小的要左对齐,大的要右对齐。

VA=ROUNDDOWN(va,PGSIZE)

ROUNDUP(va+size,PGSIZE)

那么映射页的个数为:

n=(ROUNDUP(va+size,PGSIZE)-ROUNDDOWN(va,PGSIZE))/PGSIZE

映射:

PA=ROUNDDOWN(pa,PGSIZE)

for(i=0;i<n;i++)

{

VA+i*PGSIZE -->   PA+i*PGSIZE

}

posted @ 2014-07-27 08:29  乾卦  阅读(49)  评论(0)    收藏  举报