80386保护模式

  • 实地址模式
    当CPU通电或RESET时,cr0的PE位置0, 进入实地址模式。这里不在赘述。

  • 保护模式
    80386提供分段和分页两种存储管理模式
    ● 分段管理的特点:对存储空间的逻辑划分,优点:对模块化(结构化)程序设计方式提供了很好的支持; 缺点:① 段长可变不固定, 管理更复杂、② 空间碎片较多、③ 访问字节数 ∕传输字节 可能很小
    ● 分页管理的特点:对存储空间的物理划分,优点:① 页面长度固定,管理机构简单、② 访问字节数/传输字节通常更大; 缺点:① 一个页面内的程序或数据可能不具有完整意义, 不利于结构化程序设计、② 存在“内零头”(内部碎片)

硬件上支持两种存储管理方式, 吸收两种模式的优点, 为不同的操作系统提供了更多支持。


  • 分段管理

80386的数据代码段描述子的格式:
在这里插入图片描述
G:粒度位: 0:段长以字节为单位;1:段长以页面为单位
访问权字节:P(1)、DPL(2)、S(1)、E(1)、ED/C(1)、W/R(1)、A(1)共8位,与80286相同。E:0 (数据段, ED有效);1 (代码段, C有效);ED:1:段向上生长;0:段向下生长。且W/R为0 数据段不能写;1 数据段可以写。C:1: 一致性代码段(可不同特权级共享),当CPL≥DPL时,代码段只能执行;0: 非一致性代码段, 要求访问和被访问代码段特权级相同。且W/R为0 数据段不能写;1 数据段可以写。


  • 分页管理

CR0寄存器中的PG位=0,不允许分页,经分段部件出来的地址(即线性地址=物理地址);
如果PG=1,则允许分页,经分段部件出来的线性地址仍为虚地址,必须经分页部件转换成物理地址。

[1] 分页的寻址过程

从虚地址到实地址的转换过程。目标:根据线性地址, 得到物理页面基地址以及该页面内的偏移量。 于是,基于简单查表的转换机构的不可行性。

所以,我们建立二级查表机制:

◆ 第一级表:称为页目录, 共1024项, 称为页目录项。每一项用来指示一个二级表(的基地址);

◆ 第二级表:称为页表, 共1024项, 称为页表项。每一项用来指示一个页面地基地址。

由此可得:二级表共可以指示1024×1024个页面的基地址, 即1M个页面的基地址。

80386中,页目录只有一个,大小为4K,常驻内存;页表1024个,不常驻内存。二级表的地址转换过程:将虚拟地址的高20位分成两部分, 分别用于指示两种不同表的表项(作为表内的偏移量)。 如下图所示:
在这里插入图片描述

(3)页目录项和页表项的组成

● 页目录项
在这里插入图片描述

● 页表项

在这里插入图片描述

1M个页,每个页面的长度4K。实际访问时基地址单位量的增/减跨越4K空间,因此,前20位仅表示A31~A12,低12位自动补0。

CR3寄存器所提供的页目录基地址也只给了20位基地址,用于查找常蛀内存的页目录使用。

控制位:

D 修改位:页目录项的D位无意义;页表项D位为1表项所对应的页面在内存中已被修改。在换页时, 需要将内存中的这个页面先写回磁盘。页表项D位为1表示未作修改换页时不必写回磁盘。

A 访问位:页目录项A位为1则对应的页表已被访问过、为0则对应的页表未被访问过(操作系统可用该位并结合时钟对页表实施LRU淘汰算法);页表项A位为1表示对应的页面已被访问过、为0表示对应的页面未被访问过(操作系统可用该位并结合时钟对页面实施LRU淘汰算法)。

P 存在位为1表示对应的页表或页面在内存空间;为0表示对应的页表或页面不在内存空间。

U/S R/W 与(当前)程序特权级 CPL 的配合使用:

(4) TLB表(Translation Lookaside Buffer, 快表 )

针对页地址转换的Cache,工作原理:

TLB表的结构 — TLB表的每一项组成:

32个表项构成一个4路8组的矩阵

转换过程描述:

用线性地址高20位的低3位(D14D13D12)经译码选中某一组(比如5组);用高17位与4路的5组(有4个5组)中所含的线性地址的高17位同时匹配(用比较电路可以实现), 哪一路匹配, 就选中那一路的5组,被选中的组送出物理基地址并与线性地址的低12位(即页内偏移) 形成物理地址

3.80386的I/O及保护

(1) 端口寻址

端口独立寻址方式

低16位地址寻址64K空间(8位端口)

2个连续8位端口可组成一个16位端口; 4个连续8位端口可组成一个32位端口

(2)寻址方式

I/O指令的寻址方式:直接寻址和间接寻址。

直接寻址:指令中直接给出以立即数方式的端口地址, 范围是0~255。

间接寻址:端口地址由寄存器(DX)来指示, 寻址范围0~65536(64K)。

(3)I/O保护

当系统工作在保护模式下, I/O操作受到特权级权限的保护。

执行I/O指令时,必须在数值上满足:CPL≤IOPL (标志位寄存器)

在应用程序中, 通过调用操作系统实现I/O操作, 操作系统具有最高的特权级, 可通过操作系统实现对系统I/O资源的统一管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值