Linux物理内存与虚拟内存的概念是怎样的?-八维教育

我们知道直接从物理内存读写数据比从硬盘读写数据要快得多。因此,我们希望所有的数据读写都在内存中完成,而内存是有限的,这就引出了物理内存和虚拟内存的概念。

物理内存是系统硬件提供的内存大小。这是真实的记忆。与物理内存相比,Linux 下有个虚拟内存的概念。虚拟内存是为解决物理内存不足而提出的一种策略。它使用磁盘空间。一块逻辑内存被虚拟化,用作虚拟内存的磁盘空间称为交换空间。

作为物理内存的扩展,Linux 会在物理内存不足时使用交换分区的虚拟内存。更详细地说,内核会将暂时未使用的内存块信息写入交换空间。这样,物理内存就被释放了。该内存可用于其他目的。当需要原始内容时,信息会从交换空间重新读取到物理内存中。

网络高手黑客怎么联系_黑客网络 内存不足_网络密码中国第一代黑客攻伐实录

Linux 的内存管理采用分页访问机制。为了保证物理内存能够得到充分利用,内核会在适当的时候自动将物理内存中不经常使用的数据块交换到虚拟内存中,并且会频繁使用数据块。信息保留在物理内存中。

网络高手黑客怎么联系_网络密码中国第一代黑客攻伐实录_黑客网络 内存不足

要深入了解Linux内存的运行机制,需要了解以下几个方面:

网络高手黑客怎么联系_网络密码中国第一代黑客攻伐实录_黑客网络 内存不足

首先,Linux 系统会不时交换页面,以保留尽可能多的空闲物理内存。即使没有什么需要内存,Linux 也会换出暂时不用的内存页。这样可以避免等待交换所需的时间。

黑客网络 内存不足_网络高手黑客怎么联系_网络密码中国第一代黑客攻伐实录

其次,Linux 以页面交换为条件。并非所有页面在不使用时都交换到虚拟内存。Linux 内核仅根据“最常用”算法将一些不常用的页面文件交换到虚拟内存中。有时候我们你会看到这样的现象:Linux 有很多物理内存,但是交换空间也用的很多。事实上,这并不奇怪。例如,当一个占用大量内存的进程正在运行时黑客网络 内存不足,它需要消耗大量的内存资源。这时候,一些不常用的页面文件被交换到虚拟内存中,但是后面这会占用大量的内存资源。当进程结束并释放大量内存时,刚换出的分页文件不会自动换入物理内存。除非有必要,那么此时系统物理内存会空闲很多,交换空间也在使用中。刚才提到的现象已经出现了。关于这一点,不要担心任何事情,只要你知道发生了什么。

黑客网络 内存不足_网络密码中国第一代黑客攻伐实录_网络高手黑客怎么联系

最后,交换空间中的页面在使用时首先交换到物理内存。如果此时没有足够的物理内存来容纳这些页面,它们将被立即换出。从那时起,虚拟内存中可能没有足够的空间用于存储。这些交换页最终会导致Linux出现假死机、服务异常等问题。虽然Linux可以在一段时间内自行恢复黑客网络 内存不足,但恢复后的系统基本无法使用。

因此,合理规划和设计Linux 内存的使用非常重要。

推荐阅读:Linux内存管理高端内存 Linux内存管理分割机制 Linux内存管理伙伴算法