建立内存页面管理器:既可以分配单个页面,也可以分配多个连续的页面,还能指定在特殊内存地址区域中分配页面;但是这种分配至少是一个页面4KB大小,无法分配一个小于单页大小的 内存;
malloc 函数启发:
内存对象:
设计:页基础上进行细分,分成32字节、64、128、256、512、1024、2048、4096字节,都是Cache行大小的倍数,这些小块内存为 内存对象;
实现思路:把一个或多个内存页面分配出来,作为一个内存对象的容器,在这个容器中容纳相同的内存对象,即同等大小的内存块;
表示内存对象:
结构体 freobjh_t 表示一个对象,包含一个链表、对象状态、对象的开始地址,链表的作用就是为了找到该对象;
内存对象容器:
结构体 kmsob_t 放置内存对象的容器,
标签:容器,对象,09,链表,内存,分配,页面 From: https://www.cnblogs.com/xuan01/p/17357414.html