操作系统真象还原第四章

4.1 保护模式概述

保护模式在 Intel 80286 CPU 中首次出现。

4.1.1 为什么要有保护模式

实模式的缺陷:

  • 实模式下操作系统和用户程序属于同一特权级
  • 逻辑地址等于物理地址
  • 用户程序可以自由修改段基址,访问所有内存
  • 访问超过 64KB 的内存区域时要切换段基址
  • 一次只能运行一个程序,无法充分利用计算机资源
  • 共 20 条地址线,最大可用内存为 1MB

保护模式下,物理内存地址不能直接被程序访问,程序内部的地址(虚拟地址)需要被转化为物理地址后再去访问。

地址转换由处理器和操作系统共同协作完成。

4.1.2 实模式不是32位CPU,变成了16位

实模式的 CPU 运行环境 16 位,保护模式的运行环境是 32 位。

4.2 初见保护模式

4.2.1 保护模式之寄存器扩展

保护模式下,除段寄存器外,通用寄存器、指令指针寄存器、标志寄存器都由原来的 16 位扩展到了 32 位。

在这里插入图片描述

全局描述符表中至少有一个表项,每一个表项称为段描述符,其大小为 64 字节,用来描述各个内存段的起始地址、大小、权限等信息。

全局描述符表很大,放在内存中,由 GDTR 寄存器指向它。

保护模式下,段寄存器中保存的是“选择子“。”选择子“是一个数,用这个数来索引全局描述符表中的段描述符,就像数组下标。

在 80286 的保护模式中,使用了段描述符缓冲寄存器。只要往段寄存器中赋值,CPU 就会更新段描述符缓冲寄存器。

在这里插入图片描述

80386 是首款 32 位处理器,它的地址总线和寄存器都是 32 位的。

4.2.2 保护模式之寻址扩展

在保护模式下,内存寻址中,基址寄存器不再只是 bx、bp,而是所有 32 位的通用寄存器;变址寄存器不再只是 si、di,而是除 esp 之外的所有 32 位通用寄存器,偏移量由实模式下的 16 位变成了 32 位。

另外,可以对变址寄存器乘以一个比例因子,比例因子只能是1、2、4、8。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值