![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 内存管理
文章平均质量分 74
MacroCrazier
在国内一线互联网公司任职
展开
-
逻辑地址、线性地址、物理地址和虚拟地址
逻辑地址、线性地址、物理地址和虚拟地址(转载)一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上原创 2011-08-20 12:19:33 · 1049 阅读 · 4 评论 -
Linux内核的内存管理:分段和分页的区别
分段和分页其实都是一种对地址的划分或者映射的方式。两者的区别主要有以下几点:a) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要(也是对用户透明的)。段是信息的逻辑单位,转载 2011-08-19 20:49:38 · 1041 阅读 · 0 评论 -
物理地址与线性地址详解
1. Linear Space & Physical Space 在硬件工程师和普通用户看来,内存就是插在或固化在主板上的内存条,它们有一定的容量——比如64 MB。但在应用程序员眼中,并不过度关心插在主板上的内存容量,而是他们可以使用的内存空间——他们可以开发一个转载 2011-08-19 22:53:49 · 1732 阅读 · 0 评论 -
堆和栈的区别
堆(heap)和栈(stack)有什么区别??简单的来讲堆(heap)上分配的内存,系统不释放,而且是动态分配的。栈(stack)上分配的内存系统会自动释放,它是静态分配的。 由malloc或new分配的内存都是从heap上分配的内存,从heap上分配的内存转载 2011-08-20 12:22:30 · 954 阅读 · 0 评论 -
linux的物理内存空间与线性地址空间的的对应关系
在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需转载 2011-08-24 09:59:49 · 1333 阅读 · 0 评论 -
高端内存与低端内存
高端内存是Linux中一个重要的概念,初涉Linux时曾经对这个概念非常迷惑。实际上这个概念比较简单,理解这个概念,需要追溯一下Linux的内存管理。 从前,CPU的地址总线只有32位,再早的就不再追溯了。32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地转载 2011-08-23 18:03:52 · 1394 阅读 · 0 评论 -
valgrind内存检查工具
推荐一个程序,这几天用C语言写了一个程序,跑的数据量小的时候没有什么问题,当数据量比较大时,总是报错,提示的错误大概是:***glibc detected*** ... :munmap_chunk(): invalid pointer: 0x08...在网上google了一下,也有很多人遇到了这个问题,好像是内存和堆栈分配的问题,程序存在内存泄露。然后就搜所到了这个比较强大的工具:val转载 2012-04-16 14:53:03 · 1442 阅读 · 2 评论 -
关于linux内存管理
Linux的内存管理主要分为两部分:物理地址到虚拟地址的映射,内核内存分配管理(主要基于slab)。物理地址到虚拟地址之间的映射1、概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一转载 2011-08-20 23:20:18 · 13334 阅读 · 2 评论