在看《自己动手写操作系统 第二版》时,遇到一个问题,当使用i386的页式存储时,为什么还需要用段选择子?
答案:1 悬赏:50 手机版
解决时间 2021-10-20 13:49
- 提问者网友:锁深秋
- 2021-10-20 09:29
在看《自己动手写操作系统 第二版》时,遇到一个问题,当使用i386的页式存储时,为什么还需要用段选择子?
最佳答案
- 五星知识达人网友:鱼忧
- 2021-10-20 10:55
有了页式存储管理,确实就不再需要段式存储管理了。但i386的情况是特殊的。由于i386系列的历史演变过程,它对页式存储管理的支持是在其段式存储管理已经存在了相当长的时间以后才发展起来的。所以,不管程序是怎样写的,i386 CPU一律对程序中使用的地址先进行段式映射,然后才能进行页式映射。这是Intel的规定,所以操作系统只好迁就他一下。写个从0开始的平坦段敷衍它一下啦。因为经过这个0起始的段式映射,映射前后的地址实际上是不变的,这样就绕过了这个问题。但硬件还是会先进行段式映射,所以操作系统要事先给他准备好一个段选择子,尽管他不起任何作用。 这些都是历史遗留问题。你看看他段选择子的格式就更怪了,基地址和长度都被分成了好几截,说明一开始Intel并没有想到内存能到4GB这么大,结果......,呵呵。明知道错了也不改,仗着自己市场份额大要软件迁就他,太霸道了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯