Paging: Introduction
在解决大多数空间管理问题时,操作系统会采用两种方法中的一种。一种是前面我们所提及到的segmentation,很不幸的是这种方法实现起来很困难。另一种方法就是接下来要介绍的paging。
1. A Simple Example And Overview
下图就是一个64KB的虚拟地址空间被分成了4个paging。
下图是将上图的虚拟page转换为实际物理frame。
从上两幅图可以看出虚拟page到物理frame的转换:Virtual Page 0 → Physical Frame 3
VP 1 → PF 7
VP 2 → PF 5
VP 3 → PF 2
--------------------------------------------------------------------------------------------------------(分割线)
movl <virtual address>, %eax
为了转换上述代码过程生成的虚拟地址,我们必须将其分成两个部分,virtual page number(VPN)和page的offset。
上述进程的虚拟地址为64字节,因此我们的虚拟地址总共需要6位(26 = 64)。如下图所示:
由于page的大小为16字节。如下图所示: