非连续分配:为用户进程分配的可以是一些分散的内存空间
一、基本分页存储管理的思想
把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分
二、基本概念
将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页框”,或“页帧”、“内存块”、“物理块”。每个页框有一个编号,即“页框号”,或“页帧号”、“内存块号”、“物理块号”。页框号从0开始。
将用户进程的地址空间也分为与页框大小相等的一个个区域,称为“页”或“页面”。每个页面也有一个编号,即”页号“,页号从0开始。(注:进程的最后一个页面可能没有一个页框那么大。因此,页框不能太大,否则可能产生过大的内部碎片)
操作系统以页框为单位为各个进程分配内存空间。进程的每个页面分别放入一个页框中。也就是说,进程的页面与内存的页框有一一对应的关系。各个页面不必连续存放,也不必按先后顺序来,可以放到不相邻的各个页框中。
三、如何实现地址转换
1.算出逻辑地址对应的页号
页号 = 逻辑地址 / 页面长度
2.要知道该页号对应页面在内存中的起始地址:某种数据结构记录各个页面的起始位置
3.要算出逻辑地址在页面内的“偏移量”
业内偏移量 = 逻辑地址 % 页面长度
4.物理地址= 页面始址 + 业内偏移量
四、逻辑地址结构
五、页表
。。。