请教下,操作系统里分页存储的页框和页号有什么区别啊?

如题所述

假设你要运行一个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个程序,现在靠着这个假的存储器就可以了,这个所谓假的存储器就叫虚拟存储器

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
物理内存被划分成相同大小的块,这些块被称为页框。每个页框可以包含很多页,可以说页框是页的容器。本回答被提问者采纳
第2个回答  2022-02-26
页框号是物理地址的一部分,页号逻辑地址的一部分
相似回答