参看链接: 浅谈Linux的内存管理机制
为什么内存运行速度比硬盘运行速度快?
存储原理完全不同:
内存(随机存储器)依靠电脉冲 配合CPU的直接寻址寄存器 ,所以断电后不能持久化。
机械硬盘需要机械指针寻找需要的盘面和扇区,即使断电,数据已经物理写入。
虚拟内存:
利用磁盘空间虚拟出的一块逻辑内存
交互空间(Swap Space):
用作虚拟内存的磁盘空间
页帧的分配:
一页是一组连续线性的物理内存(页帧)或虚拟内存。Linux内核以页为单位管理内存。一页的大小通常为4K字节。
linux内存运行机制
首先,Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。
其次,linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,linux内核根据”最近最经常使用“算法。
最后,交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页面,它们又会被马上交换出去,如此以来,虚拟内存中可能没有足够空间来存储这些交换页面,最终会导致linux出现假死机、服务异常等问题。
buffers和cached机制
都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息。buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。
网友评论