内核 内存申请与释放
1、申请内存的函数kmalloc(int sitze, int flag)
其中,flag有几种,
GFP_KERNEL(可能引起休眠)
GFP_USER(表示当前为用户态进程申请空间,可引起休眠)
GFP_ATOMIC(用在中断处理历程或其他运行于进程上下文之外的代码中分配内存,不会休眠)
GFP_NOFS,GFP_NOIO(分别表示在分配过程中不允许执行文件系统调用和IO)
用法:
p=kmalloc(100,GFP_KERNEL);
kfree(p);
说明:kmalloc申请的空间,有最大值限制,一般,为了程序的兼容性,不要超过128KB。如果超过128KB,可以采用get_free_pag

本文总结了Linux内核中几种常见的内存申请和释放方法,包括kmalloc、kmem_cache_create、内存池以及get_free_page函数。kmalloc适用于小块内存,而大内存则可以使用get_free_page。kmem_cache_create用于创建高速缓存,内存池则确保关键情况下内存分配的成功。每个方法都有其特定的使用场景和标志参数。
最低0.47元/天 解锁文章
701

被折叠的 条评论
为什么被折叠?



