页表,页框的一些概念:
操作系统管理内存并不是以字节位单位,而是以4内存块为单位进行管理的,一个内存块大小为4kb。
- 内存块(页帧)加载到物理内存中,物理内存有很多页框,当内存块中的数据加载到内存时就是页帧加载到页框中
- 页表是以结构体的形式被管理起来的,每一个页表中都存在该页表的一些数据,例如:flag记录这该页表是否为脏页、是否被锁定等等数据
- 物理内存中存在多个页框,这些页框在操作系统中是以数组的形式被管理起来的,每一个页框对应着该数组的下标,对页框的管理进而转换为了对数组的管理
页表和虚拟地址如何转换为物理内存
- 以32位的机器为例
- 虚拟地址是32个比特位构成,从最高位的前十位代表的是页目录
- 往后十位代表页表
- 前二十个比特位索引找到的页表中指向者指定的页框的起始位置
- 起始位置虚拟地址的最低的12位(页内偏移量)就能找到物理内存
在同一个函数中,每一行代码都有自己的虚拟地址,他们的虚拟地址都是连续的
虚拟地址本身就是一种资源