非连续分配-可为用户进程分配分散的内存空间
一、存储过程
1.将内存空间分成大小相等的分区,每个分区为一个页框/页帧(内存块/物理块/物理页面),每个页框有一个编号(页框号/内存块号/物理块号),从0开始
2.将进程的逻辑地址空间也分为与页框大小相等的部分,每个部分称为一个页/页面,每个页面也有一个编号(页号),从0开始
3.OS以页框为单位为各个进程分配内存空间,进程的每个页面分别放入一个页框中,进程的页面与内存的页框一一对应。
二、具体实现
1.通过页表实现,OS为每个进程建立一张页表,存放进程的每个页面在内存中存放的位置;页表存放在PCB(进程控制块)中
2.存储:块号由内存块数量求得,以字节为单位存放;
但页号不占存储空间(页表项是连续存放的,页号是隐含的)
三、地址转换
1.逻辑实现过程:逻辑地址——>物理地址
定逻辑地址对应的页号,找页号页面在内存中的起始地址(查页表),确定逻辑地址的页内偏移量
逻辑地址对应物理地址=页面在内存中的起始地址+页内偏移量
2.地址转换的硬件机构
基本地址变换机构、具有快表的地址变换机构、两级页表