关于windows保护模式的一些个人见解

1.寻址方式:通过段寄存器,首先需要知道的是段寄存器是一个索引值,ldtr也是。判断是在gdt中还是在ldt中,若是在gdt中,则直接根据gdtr中的一部分值先确定gdt的基址,然后根据索引就可以得到段的属性所在的位置;如果是在ldt中,则先要确定ldt所在的位置,因为ldtr其实也是一个索引值,所以根据gdt基址就可以找到ldt所在地址,然后再根据段寄存器就可以找到段相关属性所在的位置。
2.虚拟内存:因为当初实际所能拥有的物理内存并不能达到寻址方式所能实现的4GB,所以需要有虚拟内存。

然后就可以想到内存分页机制:原因就是防止TSR程序导致内存碎片化,然后实际情况下就可以随意映射。所以一般程序的线性地址并不是实际的物理地址。

虚拟内存在这里的作用就是在页面访问的时候 ,如果要访问的数据并没有映射到物理内存里面,那么就会从虚拟内存寻找,如果在虚拟内存,那么就会在RAM中寻找空闲的内存

如果没有就找到无效的数据,再找不到就把数据存到虚拟内存,然后再把要访问的数据映射到物理内存。

另外页目录要联系到cr3寄存器,CR3含有存放页目录表页面的物理地址

cr0寄存器决定了是否使用分页机制,也就决定了得到的地址是不是真正的物理地址。

另外附上罗云彬老师书上的虚拟内存实现图


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值