Linux内核结构组成之内存管理

Linux内存管理支持虚拟内存,操作系统只把当前使用的程序块保留在内存中,其余的程序块保留在磁盘中,必要时会进行磁盘和内存间交换程序块。程序在运行之前,没必要全部装入内存,而是仅将当前运行的部分页面装入内存运行,其余暂时保留在磁盘上。程序运行时,如果它需要访问的页已存在,则程序继续运行;如果发现不存在的页,操作系统将产生一个页错误,这个页错误导致操作系统把需要运行的部分加载到内存中。

Linux虚拟内存需要6中机制的支持:

  • 地址映射机制
  • 内存分配回收机制
  • 缓存和刷新机制
  • 请求页机制
  • 交换机制
  • 内存共享机制

内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址,当用户程序运行时,如果发现程序中要用的虚拟地址没有对应的物理内存,就使用请求页机制发出请求页要求;如果有空闲的内存可提供分配,就请求分配内存,并使用缓存机制把正在使用的物理页记录在缓存中。如果没有足够的内存可分配,就使用交换机制腾出一部分内存


虚拟内存技术的好处:

一、巨大的寻址空间

二、公平的物理内存分配

三、共享虚拟内存

四、进程保护

你可能感兴趣的:(Linux)