button_drv.c //头文件#include <linux/init.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/device.h>#include <linux/slab.h>#include <linux ...
分类:
其他好文 时间:
2019-05-30 16:14:17
阅读次数:
502
https://blog.csdn.net/bullbat/article/details/7194794 https://blog.csdn.net/qq_26626709/article/details/52742484 https://blog.csdn.net/wfreehorse/arti ...
分类:
系统相关 时间:
2019-04-19 16:21:50
阅读次数:
155
题记:内存管理一直是C/C++程序的红灯区。关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用RAII技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。另一类是内存管理的实现,如linux内核的slab分配器,S ...
分类:
其他好文 时间:
2019-02-01 14:10:35
阅读次数:
227
一、怎么样衡量系统内存1、查看系统内存的使用情况,比如已用内存,剩余内存,共享内存,可用内存,缓存和缓冲区的用量。*已用内存和剩余内存,就是已经使用和还未使用的内存。*共享内存,是通过tmpfs来实现的,它的大小就是tmpfs使用的内存大小,tmpfs其实也是一种特殊的缓存。*可用内存,就是新进程可以使用的最大内存,包括剩余内存和可回收内存*缓存,缓存包括磁盘读取文件的页缓存和Slab分配器中的可
分类:
其他好文 时间:
2019-01-14 11:53:47
阅读次数:
159
内存的去向主要有3个:进程消耗。2.slab消耗3.pagetable消耗进程消耗:top查看slab消耗:echocat/proc/slabinfo|awk‘BEGIN{sum=0;}{sum=sum+$3*$4;}END{printsum/1024/1024}‘MBpagetable消耗:echogrepPageTables/proc/meminfo|awk‘{prin
分类:
其他好文 时间:
2018-12-13 17:04:39
阅读次数:
207
一、内存的碎片化 如果用c语言直接 malloc,free 来向操作系统申请和释放内存时,在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用,这种空闲,但无法利用内存的现象称为内存的碎片化。 二、slab allocator 缓解内存碎片化 memcached 用 slab alloca ...
分类:
系统相关 时间:
2018-12-12 00:38:17
阅读次数:
254
kmalloc kmalloc速度很快,分配的内存物理连续,但是分配的内存并未清零。kmalloc定义如下: 1 #include <linux/slab.h> 2 void *kmalloc(size_t size, int flags); flags参数会在多个方面影响kmalloc的行为,定义 ...
分类:
其他好文 时间:
2018-11-15 12:00:02
阅读次数:
182
一、概述 内存管理涵盖领域: 内存中的物理内存页管理; 分配大块内存的伙伴系统; 分配较小块内存的slab、slub和slob分配器; 分配连续内存块的vmalloc机制; 进程的地址空间。 Linux内核一般将处理器的虚拟地址分为两个部分,以IA-32为例,地址空间在用户进程和内核之间的划分比例为 ...
分类:
其他好文 时间:
2018-10-29 00:05:48
阅读次数:
293
历史简介 linux内核运行需要动态分配内存,其中有两种分配方案: 第一种是以页为单位分配内存,即一次分配内存的大小必须是页的整数倍;第二种是按需分配内存,一次分配内存的大小是随机的。 第一种分配方案通过buddy系统实现,第二种分配方案就是通过slab子系统实现。slab子系统随内核的发展衍生出s ...
分类:
其他好文 时间:
2018-10-11 01:35:58
阅读次数:
489