基本分页存储管理的基本概念

基本分页存储管理的基本概念

基本分页存储管理的基本概念

基本分页存储管理的思想——把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分

基本分页存储管理的基本概念

基本概念

将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页框” ,或称 “页帧”“内存块”“物理块”。每个页框有一个编号,即 “页框号” (或者“内存块号”、“页帧号”、“物理块号”)页框号从 0 开始。

将用户进程的地址空间也分为与页框大小相等的一个个区域,称为“页”或“页面”。每个页面也有一个编号,即页号。页号也是从0开始(注:进程的最后一个页面可能没有一个页框那么大。因此,页框不能太大,否则可能产生过大的内部碎片)
基本分页存储管理的基本概念
操作系统以页框为单位为各个进程分配内存空间。进程的每个页面分别放入一个页框中。也就是说,进程的页面与内存的页框有一一对应的关系。
各个页面不必连续存放,也不必按先后顺序来,可以放到不相邻的各个页框中。

如何实现地址转换

将进程地址空间分页之后,操作系统该如何实现逻辑地址到物理地址的转换?
基本分页存储管理的基本概念
如何计算:
页号=逻辑地址/页面长度(取除法的整数部分)
页内偏移量=逻辑地址%页面长度(取除法的余数部分)

页面在内存中的起始位置: 操作系统需要用某种数据结构记录进程各个页面的起始位置。

比如上面的例子中:
基本分页存储管理的基本概念

如果每个页面大小为2的K次方(B),用二进制数表示逻辑地址,则末尾K位即为页内偏移量,其余部分就是页号
因此,如果让每个页面的大小为2的整数幂,计算机就可以很方便地得出一个逻辑地址对应的页号和页内偏移量。

基本分页存储管理的基本概念


总结:分页存储管理中,如何实现地址换?
1.要算出逻辑地址对应的页号
2.要知道该页对应页面在内存中的起始地址
3.要算逻辑地址在页面内的“偏移量”
4.物理地址=页面始址+页内偏移量

逻辑地址结构

分页存储管理的逻辑地址结构如下所示:
基本分页存储管理的基本概念
地址结构包含两个部分:前一部分为页号,后一部分为页内偏移量W。在上图所示的例子中,地址长度为32位,其中0-11位为“页内偏移量”,或称“页内址”;12~31位为“页号”。
基本分页存储管理的基本概念

页表

为了能知道进程的每个页面在内存中存放的位置,操作系统要为每个进程建立一张页表

基本分页存储管理的基本概念

为什么每个页表项的长度是相同的,页号是“隐含”的?
基本分页存储管理的基本概念

基本分页存储管理的基本概念

各页表项会按顺序连续地存放在内存中,如果该页表在内存中存放的起始地址为X,则M号页对应的页表项一定是存放在内存地址为X+3M
因此,页表中的“页号”可以是“隐含”的。
只需要知道页表存放的起始地址和页表项长度,即可找到各个页号对应
的页表项存放的位置
在本例中,一个页表项占3B,如果进程由n个页面,则该进程的页表总
共会占3
n个字节

总结

基本分页存储管理的基本概念