五一前掉了几节操作系统课,现在正在进行困难的挣扎。
以下是与分页存储管理相关的知识点组织。
首先我们应该知道的概念:
逻辑地址:在编译程序后,当生成的目标模块进行寻址时,所有的地址都从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表示页面大小。
http://www.Sina.com/pagetable条目:在页表中,页号及其对应的物理块被称为页表条目。 从已知条件可以看出大小为32位。 因此,页面条目的数量为,页面(面)的数量为2 ) 20个,所有页面条目(从页面表的上往下计算)所需的地址为20位。
红框是页面的表项目,如下所示。
3.物理块号码的地址=逻辑地址-页号码地址=32-20=12位。 物理块号的大小(2^12 )小于页号的大小(2^20 ),因为并非所有进程页都被读取到内存中,只有部分页具有与内存对应的物理块号。
以上是我个人的理解。 欢迎交流指正。
最近开发了在空闲的时候不用云就能刷Java问题的小程序,感兴趣的人可以看看。 ——2019.09.20