摘要: 根据上文的讲述,我们知道物理上连续的映射对内核是最好的,但并不总能成功地使用。在分配一大块内存时,可能竭尽全力也无法找到连续的内存块。在用户空间中这不是问题,因为普通进程设计为使用处理器的分页机制,当然这会降低速度并占用TLB。在内核中也可以使用同样的技术。 如图3-37所示,在IA-32系统中,紧 阅读全文
posted @ 2022-03-21 20:32 while(true);; 阅读(303) 评论(0) 推荐(1)
摘要: __free_pages是一个基础函数,用于实现内核API中所有涉及内存释放的函数。其代码流程图如图3-35所示。 __free_pages首先判断所需释放的内存是单页还是较大的内存块?如果释放单页,则不还给伙伴系统,而是置于per-CPU缓存中,对很可能出现在CPU高速缓存的页,则放置到热页的列表 阅读全文
posted @ 2022-03-21 00:20 while(true);; 阅读(311) 评论(0) 推荐(0)