首页 > 代码库 > 操作系统学习笔记(三) windows内存管理

操作系统学习笔记(三) windows内存管理

系统物理页面是由 (Page Frame Number Database )简称PFN数据库来进行管理,实际上是一个数组,每个物理页面都对应一个PFN项。

进程的地址空间是通过VAD(Virtual Address Destriptor)管理。每个进程都有一个AVL树来保存这些VAD节点,来记录使用的地址以及属性等。

技术分享

进程的内存地址属性分为保留和提交,保留即是使用时候才实际分配内存,而提交时需要交割对现空间的,需要分配物理页面的,然后将两者关联起来。

我们从NtAllocateVirtualMemory函数入手

首先检查函数参数的正确性,并且对涉及到的地址进行地址对齐,再计算实际需要的空间长度。

接下来,获取需要操作的进程对象和进程对象的地址AVL树

 

操作系统学习笔记(三) windows内存管理