这些东西我整理出来很久了,由于各种原因一直没放出来,引用的图来自网络或者书籍,如果你看的不错想要转载请注明本空间。
*内存分配与释放
1.Windows内存分配与释放提供了缓存机制,由空闲链表方式提供对非分页内存管理,由位图方式提供分页内存管理同时提供相应的快查表,将最近释放的页面放入快查链表中,再次申请的时候可以快速的从快查表中取得数据.
2.在基本的分页内存管理与非分页内存管理上层,windows暴露了相关的内存分配释放接口(ExAllocatePoolWithTag,ExFreePool)并提供相应的执行体内存管理,其采用快查表形式将空闲链表划分到ListHeads数组中,并给每个CUP提供相应的缓存链表。执行体内存管理采下层提供的内存管理函数,分配基本的内存页,并裁剪到快查表中,如果ExAllocatePoolWithTag分配的内存大于阈值则直接采用下层提供的内存分配接口。
3.直接看图:
*内存地址转换