下文用 b 表示 bit, B 表示 Byte = 8b, K 表示 210 = 1024, M 表示 220 = K2, G 表示 230 = K3.
分页存储方案中, 内存空间被分为许多大小相等的物理块, 称为页面. 每个进程配有一页表, 它是进程所用页面的索引. 页表采用连续存储的数组形式, 每个页表项指向内存中的一个页面.
在 32 位操作系统中, 逻辑地址和物理地址长度均为 32bit = 4B (称为一个字, Word), 而内存中可寻址的最小单位是 Byte. 如下所示, 页表最大长度 220 由页号的位数决定. 每个页面的大小 212B = 4KB 由页内偏移的位数决定. 页表本身也要占据内存空间, 若每个页表项占 4B = 1Word, 则每个页面最多容纳 4KB/4B = 1K 个页表项.
逻辑地址A: 20b 页号P # 页表项在页表中的下标 12b 页内偏移W # 相对于物理块始址的偏移 物理地址E: 20b 物理块号b 12b 页内偏移W 页表项: 20b 物理块号b 12b 标志位 页表寄存器PTR: 页表始址F 页表长度M
地址映射: 将逻辑地址转换为物理地址.
if A.P >= PTR.M: 越界中断 E = {F[P].b, A.W}