在实模式下,CPU寻址方式:CS:偏移量
而保护模式下段寄存器放的是段选择子(既一个指针,段选择子长16位,其格式如下表所示。从表中可见,段选择子的高13位是描述符索引(Index)。所谓描述符索引是指描述符在描述符表中的序号。段选择子的第2位是引用描述符表指示位,标记为TI(Table Indicator),TI=0指示从全局描述符表GDT中读取描述符;TI=1指示从局部描述符表LDT中读取描述符) 选择子 + 偏移量指向了内存
现在说虚拟内存是怎么实现的?
1.应用程序被启动,系统创建一个进程,并分给它2GB虚拟地址(不是内存,地址而已)
2.虚拟内存管理器把程序代码映射到上面分配的2GB虚拟地址中,这里全部分配,程序运行时用到的代码再映射到物理内存中
3.如果程序用到dll,也被映射到另个2GB虚拟地址,真正用到时映射到物理内存(和1中的2GB共4GB)
.....
.....
上面是主要的。我比做一个例子也许好明白点:
一张桌子比做内存,周围的小朋友要在上面玩积木(一个人是一个程序)。
小张要先玩,从老师(硬盘)那里要来积木,放在口袋里,口袋就是2GB虚拟地址,全部在口袋里,如果他要用哪一块积木就放在桌子上,这就是映射到内存,用一点映射一点
小李也要玩,同小张一样
......
虚拟地址(每个人的口袋)解决了内存(桌子)不够用的问题。如果没有这个口袋,两个人玩时就可能把桌子全占了
posted on 2009-06-08 16:22
小叶子 阅读(840)
评论(1) 编辑 收藏 引用 所属分类:
加密and解密