页和页框的区别是什么?

页和页框的区别是什么?,第1张

页(page)\r\n一页指一系列的线性地址和包含于其中的数据\r\n\r\n页框(pageframe)\r\n分页单元认为所有的RAM被分成了固定长度的页框\r\n每个页框可以包含一页,也就是说一个页框的长度和一个页的长度是一样的\r\n页框是内存的一部分,是一个实际的存储区域。\r\n页只是一组数据块,可以存放在任何页框中\r\n\r\n也就是说页对应的是线性地址的东西而页框对应的是物理地址是实际的存储区域

假设你要运行一个4MB的游戏,为了方便易懂,不妨把这个游戏叫做扫雷

现在是2021年,早已是大内存时代,16GB的内存已经司空见惯。

但是现在我们假设我们的内存并不大,只有16MB。

你的游戏本来存储在硬盘中, *** 作系统划分了一部分硬盘中的区域,假设是16MB,和内存构成了一个看起来比较大的存储器,总共32MB。

但其实你没这么大的空间。

*** 作系统按照事先定好的页面大小(这里假设是1MB)把你的游戏分割成了4MB/1MB=4页。

未调入内存中运行,在虚拟存储系统中,你总共有4页,这4页,就叫页号。

*** 作系统把真正的内存空间,16MB,也按页划分,总共有16页,现在可以分给你的扫雷用的,有2页。

你的扫雷运行时,并不是时时刻刻都需要4MB的完整数据,假如你正在玩第一关,你就只需要前面的数据。

按照这样的思想,就可以先调入你刚刚分好的4页中的前2页,进入内存,这样你的扫雷就可以跑了,也不需要占据太多空间,导致别的程序用不了。

而被调入的2页,占了真正内存中的2页,内存中的页,就叫页框。

当你需要用到本来4页中的第2页中的某个数据时,他已经在内存中了,你可以随时用。

但如果你要用第3页的里的某个数据,他不在内存,只能先从硬盘中调入第3页到内存中分配给你的2个页框中的某一个,再访问这个数据。

这个就叫缺页

为了区分说的页是内存中的页,还是虚拟存储系统中的页,就有了两个叫法。

那为什么要这么干呢?因为你需要同时做很多事情。

你需要玩扫雷,还要挂着迅雷,同时上着QQ聊天,可能还用着网易云听歌。

如果扫雷、迅雷、QQ、网易云全部调入主存,很多数据是用不着的。

比如你在玩扫雷第三关,你并不需要第一关的数据。

那全都调入,就很浪费内存。需要调入,不需要调出,这样,你的程序能跑,而且还能跑很多个。

你的存储器看起来比原来大了,因为你本来的内存是无法同时跑这4个程序,现在靠着这个假的存储器就可以了,这个所谓假的存储器就叫虚拟存储器

常看见中文介绍内存页和页框的概念:

页: page , 是虚拟地址的概念

页框: page frame, 是物理地址的概念


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8955372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存