五一假期前落下了几节操作系统的课,现在艰难的恶补中。。
以下是分页存储管理相关的一些知识点梳理。
首先我们应该知道的概念:
逻辑地址:是程序编译后,生成的目标模块进行编址时都是从0号开始编址,称之为目标模块的相对地址,即逻辑地址。
虚拟地址:计算机处理器的地址有32位和64位的两种,对应的虚拟地址的空间大小分别是2^32字节和2^64字节,字节用B表示。
页:分页存储管理将进程的逻辑地址空间划分为若干页(面),并且对其编号,号数从0开始,每个页(面)的大小称为页面大小,且大小应为2的幂。
物理块:将内存的物理地址空间划分为若干块,称为物理块,物理块与页(面)一一对应。
页表:又称页面映像表,存储在内存中,通过页表建立页(面)与物理块的索引。
下面通过举例子梳理一下:
假设我们已经知道了逻辑地址是32位,页面大小是4KB=2^12B,页表项是4B(32位)。
1.因为逻辑地址我们假设为32位,可知虚拟地址的空间大小是2^32B。
逻辑地址:在分页地址中划为两部分,一个是页号P(页面数目),另一个是位移量W(物理块号)。
2.由已知条件求得页面数目P=2^32B/2^12B=2^20页,同时得出页号地址是20位。
A表示逻辑地址空间中的地址,L表示页面大小。
3.页表项:在页表中,一个页号与其对应的物理块号称之为一个页表项
红框即为一个页表项,以此类推。
以上是我个人的理解,欢迎交流指正。