浅析linux内存模型
??? 那么既然每个进程都有各自的虚拟内存空间,各自互不相干,那么进程间如何共享内存,内核又是如何向进程空间传递数据???都是通过映射实现的,通过将内核的虚拟内存映射到当前进程用户空间的虚拟内存,当然映射时,要新建一个页表;??
??? 简单的说linux的虚拟内存管理技术:让每个进程看上去可以使用整个用户空间主存。通过 线性地址加上swap机制; swap机制:如果一个正在被cpu执行的进程恰巧和另外一个进程的线性地址指向了同一块物理内存。那么Linux通过swap机制,将这块内存写到磁盘上,叫做唤出。被唤出的数据,在使用时,又被换入;
??? linux还通过cache+buffer机制: 将最近使用过的数据尽量cache,buffer起来,以便稍后会使用到;这就是说我们的可用内存=free + buffer + cache;
?