2015年1月26日
摘要: slab着色原理slab着的原理,cpu cache一,slab着色原理slab分配器中用到很多的缓存,每个缓存中又包含了很多slab,每个slab中有很多对象,每个slab的头部用于管理该slab中的对象(比如哪些对象已经使用,哪些对象还没有使用等),在slab的每个对象的开始和结束处都有一个特定... 阅读全文
posted @ 2015-01-26 20:07 知了112 阅读(1291) 评论(0) 推荐(0) 编辑
摘要: linux内核相关1,linux内核内存分配函数总结单位接口算法动态大小kmalloc/kfree/krealloc/kcalloc按大小组织的缓存数组固定大小kmem_cache_create/kmem_cache_destroykmem_cache_alloc/kmem_cache_freeSl... 阅读全文
posted @ 2015-01-26 20:07 知了112 阅读(2157) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/vanbreaker/article/details/76642961,为什么需要slab分配器:利用伙伴系统进行分配内存只能按照页的单位进行分配,这样会造成很多的内存浪费,多了很多内存碎片,比如只需要申请10字节的,结果分配了一个页。2,slab分配器和伙... 阅读全文
posted @ 2015-01-26 20:06 知了112 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 一:kmap()和kunmap()函数永久内核映射允许内核建立高端页框到内核地址空间的长期映射。他使用主内核页表中一个专门的页表,其页表地址存放在pkmap_page_table中,页表包含512项或1024项,因此,内核一次最多访问2M或4M的高端内存(地址范围是 4G-8M 到 4G-4M 之间... 阅读全文
posted @ 2015-01-26 20:05 知了112 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: Linux Slab分配器(一)--概述Linux Slab分配器(二)--初始化Linux Slab分配器(三)--创建缓存Linux Slab分配器(四)--分配对象Linux Slab分配器(五)--释放对象Linux Slab分配器(七)--销毁缓存 阅读全文
posted @ 2015-01-26 20:05 知了112 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 一:vmallochttp://www.360doc.com/content/14/0614/13/18127083_386524093.shtml1,vmalloc()的内核入口函数是kernel/mm/Vmalloc.c里的void *vmalloc(unsigned long size),si... 阅读全文
posted @ 2015-01-26 20:04 知了112 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 1,查看内存的基本情况通过/proc/meminfo可以看到2,查看vmalloc分配的情况通过/proc/vmallocinfo可以看到3,查看伙伴系统使用的内存情况通过/proc/buddyinfo可以查看~4,查看slab分配器的使用情况通过查看/proc/slabinfo来查看 阅读全文
posted @ 2015-01-26 20:03 知了112 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 1,分配器APIhttp://blog.csdn.net/kickxxx/article/details/9287003伙伴系统只能分配2的整数幂个页。因此申请时,需要指定请求分配的阶。2,分配页,所有分配伙伴系统的函数分配页最终都会调用到alloc_pages_nodemask()函数static... 阅读全文
posted @ 2015-01-26 20:02 知了112 阅读(462) 评论(0) 推荐(1) 编辑
摘要: 1,本文大部分来自:http://blog.csdn.net/vanbreaker/article/details/76115852,在start_kernel()-->paging_init()-->zone_sizes_init()-->free_area_init_nodes()-->free... 阅读全文
posted @ 2015-01-26 20:01 知了112 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 1,伙伴系统的作用:伙伴系统主要是为了高效使用物理内存,尽量减少内存碎片的产生2,伙伴系统的概念:系统中的内存总是两两分组,每组中的两个内存块称为伙伴3,伙伴系统的原理: 伙伴系统是相对于struct zone而言,将每个zone的空闲内存分为最多11个数组,比如第一个数组里管理着2^0页的内存,所... 阅读全文
posted @ 2015-01-26 20:00 知了112 阅读(748) 评论(0) 推荐(0) 编辑