对 段描述符 中 向下扩展很迷惑,求教!

CPU架构

对 段描述符 中 向下扩展很迷惑,求教!


阿龙 2010-08-16, 13:52 下午

向上扩展很容易理解,偏移为 baseAddress ~ baseAddress+Limit

但对于向下扩展,我很迷惑在以下几点:

1. 比如一个段的基地址为B,段限为Limit,那么是映射那一部分呢?B~Limit还是Limit~0xFFFF(0xFFFFFFFF)?

2. 映射过去的基地址值是什么?还是B吗?如果是B,那么对于向下扩展偏移的有效范围,倒是正确的,B+Limit为第一个字节。

3. 为什么一个进程里面会有很多个段的基地址和大小都一样呢?他们在映射的时候怎么保证映射到不同的地方? 又或者对于代码,数据和堆栈段,每次只能映射一个,需要访问别的段时要重新用段选择子加载?

初学保护模式,诸多迷惑,希望能从前辈那里多多学习!

谢谢

Re: 对 段描述符 中 向下扩展很迷惑,求教!


格蠹老雷 2010-08-17, 12:21 下午
A1: Limit~0xFFFF(0xFFFFFFFF)
A2: Limit为段的起始地址,小于Limit的地址无效
A3:今天的操作系统主要使用页机制来管理内存,淡化段机制,因此通常把段的基地址设置为0,Limit设置为整个地址空间

Re: 对 段描述符 中 向下扩展很迷惑,求教!


阿龙 2010-08-17, 13:05 下午

非常感谢张老师!我买了《软件调试》,但是发现保护模式的知识很薄弱,所以在学习保护模式,一定要把它拿下:)

Powered by Community Server Powered by CnForums.Net