分页存储概念清晰梳理(页面、页表、页表项、页面大小、页内地址等概念)

当我在学习操作系统的存储器管理这一章中的分页存储时发现我总是将许多概念混为一谈,当我求助于CSDN等众多网站的资源时发现其中的概念作者写的十分清晰但篇幅较长难以理解,因此我想用自己的理解用更加简洁明了的话语帮助更多困扰于分页存储系统概念的人员。

本文相关概念如下:

(1)(逻辑)地址空间

(2)页面、页

(3)页面大小

(4)页号

(5)位移量、偏移量、页内地址

(6)页表

(7)页表项

(8)页表项大小

(9)页表长度

(10)物理块、页框

(11)页内碎片

(12)页表(基址)寄存器


下面开始分别介绍:

1.(逻辑)地址空间:简单的理解为程序进程在运行时系统为其分配的运行内存空间。

2.页面(页):将用户进程的(逻辑)地址空间划分为固定且大小相等的一个个区域。

注:页面和页是同一概念!!!划分出来的一个区域为一个页(页面)!!!

3.页面大小:页面的一个划分区域的大小。

4.页号:表明页面在划分区域过后的次序。

5.位移量、偏移量、页内地址:页内地址即位移量或称偏移量,三者大小都等同于页面大小!!!不要着急问为什么,下面进行分析:

书上有类似下面这个图

注意这是分页地址中的地址结构!!!并不是页面!!!而是系统存储方式的一种结构!!!其中的页号在上面已经提及,而其中的页内地址即页面大小(用于之后将其中的内容放在内存物理地址中),可以通过下面这图来更好理解:

最左边的一整个为一个进程(逻辑)地址空间,每一项才是一个页面!!!

6.页表:系统为每个进程建立的页面映像表,即下图或上图的中间一整块部分。

7.页表项:页表的其中一项,即下图的中间一整块部分的其中一行(如:页号为2且物理块号为6的整体为一个页表项。

8.页表项大小:下图的中间一整块部分的其中一行所占大小。

9.页表长度:指页表项的个数,即下图中间部分一共有几行,有几行页表长度就为多少。

根据这张图可以分析以上所提的概念:

在这个图当中最左边的整个叫用户程序(逻辑地址空间),通过划分区域形成若干项,其中的每一项叫做页面,大小叫做页面大小,页面通过页表(页面映像表)对应物理块号,物理块号再对应与内存中的每一个实际(物理)地址,此时才将页面的内容(即页内地址)放在该实际(物理)地址中。

10.物理块、页框:物理块即页框!!!是将内存空间划分为与先前页面的大小相等的若干块(此时才能将页面大小(页内地址)完全放入划分的内存中,在上图表示的区域为最右边内存实际(物理)地址的每一行,一个物理块或页框就是其中的一行。

11.页内碎片:再讲页内碎片的概念时可以先看下图的例子

可以看到在(逻辑)地址空间被划分为6个区域,每个区域为一个页面,前五个区域(上图红色部分)或称前五页的地址空间大小都为100且都已存满,而第六页的区域同样可以填充100空间大小的内容,但由于用户程序的大小为512,故最后一页的内容实际空间就只填充了12空间大小,即还差100-12=88的内容是空闲的,这空闲的内容就称为页内碎片。

第六页(上图红色部分)未填充(空闲)的内容为页内碎片。

12.页表(基址)寄存器:系统中只设置一个页表寄存器,进程执行时,将页表始地址和页表长度放入页表寄存器,将页表寄存器的开始地址和相应页号相加(并非简单相加,简单这样理解就足够)得到页表中映像的物理块的具体位置,然后通过该物理块对应于内存中的实际(物理)地址,将页内地址放入其中。

相关推荐
anyup_前端梦工厂2 小时前
了解几个 HTML 标签属性,实现优化页面加载性能
前端·html
前端御书房2 小时前
前端PDF转图片技术调研实战指南:从踩坑到高可用方案的深度解析
前端·javascript
2301_789169542 小时前
angular中使用animation.css实现翻转展示卡片正反两面效果
前端·css·angular.js
风口上的猪20153 小时前
thingboard告警信息格式美化
java·服务器·前端
程序员黄同学3 小时前
请谈谈 Vue 中的响应式原理,如何实现?
前端·javascript·vue.js
爱编程的小庄4 小时前
web网络安全:SQL 注入攻击
前端·sql·web安全
宁波阿成4 小时前
vue3里组件的v-model:value与v-model的区别
前端·javascript·vue.js
柯腾啊5 小时前
VSCode 中使用 Snippets 设置常用代码块
开发语言·前端·javascript·ide·vscode·编辑器·代码片段
weixin_535854225 小时前
oppo,汤臣倍健,康冠科技,高途教育25届春招内推
c语言·前端·嵌入式硬件·硬件工程·求职招聘
扣丁梦想家5 小时前
设计模式教程:装饰器模式(Decorator Pattern)
java·前端·装饰器模式