操作系统【8】 Linux虚拟内存和物理内存

根据电脑位数不同,我们可以大概计算出电脑的物理内存。比如说现在流行的电脑位数为32位和64位的,32位的的系统可用地址空间是2的32次方,即4G,但是现在电脑的内存都在4G以上,以前的电脑有内存是2G的,所以,我么想要运行一个程序而这个程序需要的内存大于2G的时候,我们将要考虑怎么处理这个问题?

直接使用电脑物理内存,这样的结果是内存会出现没有连续可用的空间,也不能最大的利用内存的缺点。还有,就是直接使用物理内存,可能会出现不同程序使用相同内存地址的情况,这样会导致两个程序的崩溃。

我们都知道,直接从内存读写数据要比从硬盘读写数据快得多,因此更希望所有数据的读取和写入都在内存中完成。但是,从上文可看出电脑物理内存有限会限制程序使用并且直接使用会有弊端(程序崩溃)。

所以,这就会引出一个问题物理内存和虚拟内存的概念。物理内存就是系统硬件提供的内存大小,是系统真正的内存。相对于物理内存,在 Linux 下还有一个虚拟内存的概念,虚拟内存是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存。用作虚拟内存的磁盘空间被称为交换空间(又称 swap 空间)。在linux物理内存不足的时候使用虚拟分区,详细地说,就是内核会将暂时不用的内存块信息写到交换空间,这样一来,物理内存得到了释放,这块内存就可以用于其他目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。

在我们使用虚拟分区时不应该随意的设置,合理规划和设计 Linux 内存的使用是非常重要的。

posted @ 2020-05-13 17:29  蓝博科技  阅读(438)  评论(0编辑  收藏  举报