
linux内核
文章平均质量分 73
sy4331
这个作者很懒,什么都没留下…
展开
-
linux内核slab层
需求背景 在linux中我们通常需要自行动态申请、释放内存。对于某些应用场景,如进程描述(task_struct结构)、索引节点对象(struct inode)存放,我们往往需要经常性申请、释放。如果我们直接这么操作的话,频繁地申请、释放内存必然带来效率的降低和管理的不便。 如果我们应用场景的内存块自行建立一个空闲链表专门用于回收释放的内存,当需要使用时再从空闲链表中取出,这样就减少了实际申请、释放内存次数,大大提高了内存管理效率。linux内核中slab层正是基于上述思想创建。slab层不仅能解决内存原创 2021-09-11 20:19:06 · 524 阅读 · 0 评论 -
内核内存分配接口
以页为单位分配/释放内存 内核中对内存的管理以页为单位。32位linux系统页大小为4K,64位linux系统页大小为8K。常见页内存分配接口如下: 页分配内存接口 接口名称 作用 alloc_page(gfp_mask) 只分配一页,返回指向页结构指针 alloc_pages(gfp_mask, order) 分配页,返回指向第一个页结构指针 __get_free_page(gfp_mask) 只分配一页,返回指向其逻辑地址的指针 __get_free_..原创 2021-09-11 17:42:23 · 458 阅读 · 0 评论