码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统真象还原 内存管理

时间:2017-12-14 03:42:32      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:技术   占用   物理地址   images   idt   用户   管理   ddr   没有   

翻来覆去看了好多遍的内存管理 还是没有弄明白 先把想明白的记下来好了

 

首先 是开启分页管理  一共三步 1 准备好页目录表 页表 2 将页目录表的物理地址写入到cr3寄存器中 3 打开cr0的31位 即PG位

 

先说说准备页目录表和页表 页目录表被放在了低端1MB内存之内 具体位置是0x100000 占据一页大小 4K

其中包括了1024个一级页表 这1024个一级页表只有256个是被使用的 就是第0个和768-1023个 其中 最后一个页目录项指向了页目录项的起始地址

第0个和第768个指向了同一个页表项 第一个 也就是处在0x101000位置上的页表项

页目录项中有1024个pte 每个pte中有1k个页 每个页大小为4k 也就是说 每个pte指向的空间为4M 所以这一个pde 中,内核实际的大小是255个pdt × 4 也就是1GB - 4MB的内存 

 

技术分享图片

 

从0xc009a000到0xc009e000的四个页框就是位图的位置 通过位图来对页框进行分配 

首先 内存池分为 内核内存池和用户内存池 顾名思义 内核内存池就是对内核的高1GB空间进行分配 此外 还有一个虚拟地址池 virtual_addr用于给内核分配虚拟地址

  目前使用的地址有低端1MB内存和页表项占用的内存  剩下的就是剩余内存

然后是分配页内存 主要是通过先分配一个虚拟地址 然后在物理内存池中分配一个物理内存 然后进行映射 

 

操作系统真象还原 内存管理

标签:技术   占用   物理地址   images   idt   用户   管理   ddr   没有   

原文地址:http://www.cnblogs.com/wangjingxuan1997/p/8035254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!