Linux内存管理简介
发布时间
阅读量:
阅读量
一、Linux的内存管理概述
Linux内存管理的设计充分利用了计算机系统所具备的虚拟存储技术,从而实现了对虚拟存储器的有效管理。在关于内存管理的问题中,可能会存在一些疑问:
1)一个源程序在经过编译和链接后所形成的地址空间,究竟是虚拟地址空间还是物理地址空间?其管理模式是怎样的?
2)在程序被加载到内存的过程中,虚拟地址是如何转换为物理地址的?
1、虚拟内存、内核空间和用户空间
Linux简化了分段机制,使得虚拟地址与线性地址始终保持一致。在线性空间方面,32位平台上的容量固定为4GB,因此Linux的虚拟地址空间也相应地设定为4GB。Linux内核将这4GB的空间划分为两个部分:其中最高的1GB用于内核运行,称为内核空间;而较低的3GB则分配给每个进程使用,称为用户空间。由于每个进程可以通过系统调用进入内核,因此内核空间由系统内的所有进程共同共享。从具体进程的角度来看,每个进程可以拥有4GB的虚拟地址空间(也被称为虚拟内存)。
每个进程都拥有独立的私有用户空间(0~3GB),这一区域对其他进程来说是不可见的。而最高处的1GB内核空间则被所有进程及内核共享。从进程角度来看,其用户空间也被称为地址空间。
用户空间并不被各个进程共享,而是相互隔离的。每个进程最多可以拥有3GB的用户空间。对于某一特定地址而言,一个进程对该位置进行访问时,并不会影响到其他进程中相同位置的数
全部评论 (0)
还没有任何评论哟~
