分页是一种内存管理方案,无需连续分配物理内存。该方案允许进程的物理地址空间是非连续的。
null
- 逻辑地址或虚拟地址(以位表示):由CPU生成的地址
- 逻辑地址空间或虚拟地址空间(以字或字节表示):程序生成的所有逻辑地址的集合
- 物理地址(以位表示):内存单元上实际可用的地址
- 物理地址空间(以字或字节表示):与逻辑地址对应的所有物理地址的集合
例子:
- 如果逻辑地址=31位,那么逻辑地址空间=2 31 单词=2克单词(1克=2 30 )
- 如果逻辑地址空间=128M字=2 7. * 2 20 单词,然后逻辑地址=log 2. 2. 27 =27位
- 如果物理地址=22位,那么物理地址空间=2 22 单词=400万个单词(1米=2 20 )
- 如果物理地址空间=16M字=2 4. * 2 20 单词,然后物理地址=log 2. 2. 24 =24位
从虚拟地址到物理地址的映射由内存管理单元(MMU)完成,MMU是一个硬件设备,这种映射称为分页技术。
- 物理地址空间在概念上划分为若干固定大小的块,称为 框架 .
- 逻辑地址空间也被分割成固定大小的块,称为 页 .
- 页面大小=框架大小
让我们考虑一个例子:
- 物理地址=12位,然后物理地址空间=4K字
- 逻辑地址=13位,然后逻辑地址空间=8K字
- 页面大小=框架大小=1K字(假设)
CPU生成的地址分为
- 页码(p): 在逻辑地址空间或页码中表示页所需的位数
- 页偏移量(d): 表示页中特定字所需的位数,或逻辑地址空间的页大小,或页或页偏移量的字数。
物理地址分为
- 帧号(f): 表示物理地址空间或帧号的帧所需的位数。
- 帧偏移(d): 表示帧中特定字或物理地址空间的帧大小或帧或帧偏移量的字数所需的位数。
页表的硬件实现可以通过使用专用寄存器来完成。但是,只有当页表很小时,页表寄存器的使用才令人满意。如果页表包含大量条目,那么我们可以使用TLB(translation Look aside buffer,翻译查找缓冲区),这是一种特殊的小型快速查找硬件缓存。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END