Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11701
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-17 14:17
文章分类

全部博文(5)

文章存档

2016年(1)

2015年(3)

2014年(1)

我的朋友
最近访客

发布时间:2015-02-10 16:31:27

kernel 3.10内核源码分析--slab原理及相关代码
1、基本原理
我们知道,Linux保护模式下,采用分页机制,内核中物理内存使用buddy system(伙伴系统)进行管理,管理的内存单元大小为一页,也就是说使用buddy system分配内存最少需要分配一页大小。那如果需要分配小于一页的内存该怎么办呢?
另一方面,内核中经常需要大量的数据结构(比如struct task_strcut),这些数据结构的频繁分配和释放对性能影响较大。
Slab正是用于解决上述的两个问题, Slab 分配器源于 Solaris 2.4 的分配算法,工作于buddy system之上,用于管理特定大小对象的缓存,提高小块内存或特定对象内存分配效率。
Slab的两个用途如前面所述:1、缓存和管理内核中经常使用的数据结构对象,内核中使用slab提供的专用的接口,可以实现数据结构对象的快速分配,大大减少相关开销,提升效率。2、缓存和管理小块内存,也称通用缓存,用于kmalloc的底层实现和支撑。......【阅读全文】

阅读(502) | 评论(0) | 转发(0)

发布时间:2015-02-10 15:30:32

static struct uart_ops serial8250_pops = { 之前本人在"从串口驱动的移植看linux2.6内核中的驱动模型 platform device & platform driver"一文中已经写到了移植的设备是如何通过platform总线来与对应的驱动挂载。在这期间有一个问题困扰着我,那就是来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart层的core驱动,进而又是如何调用到真实.........【阅读全文】

阅读(450) | 评论(0) | 转发(0)

发布时间:2015-02-10 15:17:10

本文为原创,转载请注明:http://blog.chinaunix.net/uid/26772321.html linux内核下载地址:https://www.kernel.orgubuntu下载内核对应源码:sudo apt-get source linux-$(uname -r) #此命令下载的源码存放在/usr/src/文件夹中配置:    内核编译时会根据内核目录下的..........【阅读全文】

阅读(404) | 评论(0) | 转发(0)

发布时间:2014-12-15 15:06:37

......【阅读全文】

阅读(549) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册