linux内存管理之malloc、vmalloc、kmalloc的区别
malloc的实现原理...
分类:
系统相关 时间:
2014-10-02 21:25:33
阅读次数:
224
忽然想起前几天在公司看到一篇关于内存管理的文章,但当时由于别的事情给打断了。今天想起来,就又在网上找了一下,与大家分享一下。
虽然自己现在从事内核模块开发,对内存池和引用计数也有所了解,但由于理解深度及文笔,不能自己娓娓道来,所以就和大家一起来瞻仰一下大师给我们的讲解。
以下内容来自于http://www.ibm.com/developerworks/cn/linux/l-memory/...
分类:
系统相关 时间:
2014-09-27 14:18:39
阅读次数:
242
上上周吧,一个朋友问我说他公司的服务器内存free 为0 是为什么,意思大概是内存去哪了,这引发了一个小小的讨论,也就是内存释放的问题…首先我们可能会用free 去查看内存的使用率,它应该是这样的[root@ipython ~]# free -m total us...
分类:
系统相关 时间:
2014-09-26 22:47:18
阅读次数:
265
Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起。(所依据的代码是2.6.32.60)
无论是内核线程还是用户进程,对于内核来说,无非都是task_struct这个数据结构的一个实例而已,task_struct被称为进程描述符(process descriptor),因为它记录了这个进程所有的context。其中有一个被称为'内存描述符‘(memory de...
分类:
系统相关 时间:
2014-09-24 12:32:06
阅读次数:
365
Linux虚拟内存的大小为2^32(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节(从虚地址0xC0000000到0xFFFFFFFF)供内核使用,称为“内核空间”。而较低的3G字节(从虚地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间”。因为每个进程可以通过系统调用进入内核,因此,Linux内核空间由系统内的所有进程共享。于是,从具体进...
分类:
系统相关 时间:
2014-09-11 17:25:32
阅读次数:
267
一.内存使用说明Free命令相对于top提供了更简洁的查看系统内存使用情况:[root@rac1~]#freetotalusedfreesharedbufferscachedMem:10351081008984261240124212413000-/+buffers/cache:471772563336Swap:20964728423201254152这里显示的单位是KB。在linux的内存分配机制中,优先..
分类:
系统相关 时间:
2014-09-09 13:34:09
阅读次数:
273
1.1什么是内存管理
内存管理是对计算机内存进行分配和使用的技术。内存管理主要存在于多任务的操作系统中,由于内存资源极其有限,需要在不同的任务之间共享内存,内存管理的存在就是要高效、快速的非配内存,并在适当的时候回收和释放内存,以保各个任务正常的执行。最常见的内存管理机制有:段式内存管理和页式内存管理。
1.2内存中的地址
早期的16位计算中,寄存器的位宽只有16位,为了能访问到1M Bit...
分类:
系统相关 时间:
2014-08-30 23:11:40
阅读次数:
483
Linux c/c++上常用内存泄露检测工具有valgrind, Rational ?purify。Valgrind免费。Valgrind 可以在 32 位或 64 位 PowerPC/Linux 内核上工作。 Valgrind工具包包含多个工具,如Memcheck,Cachegrind,Helgrind, ?...
分类:
系统相关 时间:
2014-08-29 13:17:08
阅读次数:
303
swap的功能是应付物理内存不足的状况,用硬盘来暂时放置内存中的信息。 对于一般主机,物理内存都差不多够用,所以也就不会用到swap,但是对于服务器而言,当遇到大量网络请求时或许就会用到。 当swap被使用的时候,主机的硬盘灯就会闪烁不停。 本篇介绍两种方式:1、设置一个swap分区 2...
分类:
系统相关 时间:
2014-08-19 23:48:55
阅读次数:
320