大家好,我的朋友们!

CPU、IO、磁盘、内存可以说是影响计算机性能关键因素,今天就聊探究下内存的那些事儿。

内存为进程的运行提供物理空间,同时作为快速CPU和慢速磁盘之间的适配器,可以说是个非常重要的角色。

通过本文你将了解到以下内容:

本文均围绕Linux操作系统展开,话不多说,我们开始吧!

虚拟内存机制

当要学习一个新知识点时,比较好的过程是先理解出现这个技术点的背景原因,同期其他解决方案,新技术点解决了什么问题以及它存在哪些不足和改进之处,这样整个学习过程是闭环的。

内存为什么需要管理

老子的著名观点是无为而治,简单说就是不过多干预而充分依靠自觉就可以有条不紊地运作,理想是美好的,现实是残酷的。

Linux系统如果以一种原始简单的方式管理内存是存在一些问题:

进程空间隔离问题

假如现在有ABC三个进程运行在Linux的内存空间,设定OS给进程A分配的地址空间是0-20M,进程B地址空间30-80M,进程C地址空间90-120M。

虽然分配给每个进程的空间是无交集的,但是仍然无法避免进程在某些情况下出现访问异常的情况,如图:

比如进程A访问了属于进程B的空间,进程B访问了属于进程C的空间,甚至修改了空间的值,这样就会造成混乱和错误,实际中是不允许发生的。

所以我们需要的是每个进程有独立且隔离的安全空间。

内存效率低下问题