Loading

摘要: 1 slab综述 1.1 slab分配器产生的背景 类似 task_struct mm_struct 等结构被内核中被频繁分配和释放,同时创建和销毁这些结构会产生一定的开销(overhead)。二者累计起来导致大量开销的产生。 Buddy分配器只能分配2^n个页面,对于小于一个页面的内存请求则没有办 阅读全文
posted @ 2021-05-04 14:34 成蹊0xc000 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 本文简要说明几个内核和内存管理有关的结构体。其中 struct page 和 struct zone有较大幅度的删减,主要删减了和NUMA模型SPARSE模型以及内存热插拔相关的域。 页框描述符 struct page page用于描述一个4KB的物理页。MMU以页为单位管理页表。 struct p 阅读全文
posted @ 2021-05-04 14:33 成蹊0xc000 阅读(138) 评论(0) 推荐(0) 编辑
摘要: alloc_pages的使用 struct page *alloc_pages(gft_t gfp, unsigned int order) alloc_pages定义于 inux/gfp.h 中. 该函数用于分配2^order个 连续 的物理页. 分配失败返回NULL。 alloc_pages的调 阅读全文
posted @ 2021-05-04 14:32 成蹊0xc000 阅读(355) 评论(0) 推荐(0) 编辑
摘要: #1 软中断概述 软中断是实现中断下半部的一种手段,与2.5以前版本的下半段机制不同。软中断可以同时运行在不同的CPU上。 1.1 软中断的表示 内核中用结构体softirq_action表示一个软中断。软中断是一组静态定义的接口,有32个。但是内核(2.6.34)中只实现了10个。可用的软中断的个 阅读全文
posted @ 2021-05-04 14:19 成蹊0xc000 阅读(984) 评论(0) 推荐(0) 编辑