保护模式软件体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S=0,系统段描述符 , TYPE为4位,共有 种类型。其中: 种类型。 为 位 共有16种类型 其中: 2,LDT , 9,TSS,非忙 , , B,TSS,忙 , , 位无定义(D=0) ② D位无定义 位无定义
14
5,任务门 , C,调用门 , E,中断门 , F,陷阱门 ,
保护模式软件体系结构
9
保护模式软件体系结构
段描述符: 段描述符: 用于描述代码、 用于描述代码、数据 和堆栈段(用户段) 和堆栈段(用户段)
段基址为段的起始地 段基址为段的起始地 址,长32位 位 段界限长 段界限长20 位——段 段 内最大有1M个可寻址 内最大有 个可寻址 单位
段基址24~31位 位 段基址 G D
保护模式概述
保护机制——同一任务内的保护 同一任务内的保护 保护机制
保护模式软件体系结构
在一个任务之内,定义有四种执行特权级(PL, Privilege 在一个任务之内,定义有四种执行特权级 特权级 Level) ,用于限制对任务中不同的存储器段进行访问。 用于限制对任务中不同的存储器段进行访问。 Pentium为每个任务提供了 种特权级,0级最高,3级最低 为每个任务提供了4种特权级 级最高, 级最低 为每个任务提供了 种特权级, 级最高
Windows 操作系统只使用了 级和 级 操作系统只使用了0级和 级和3级
ຫໍສະໝຸດ Baidu
8
保护模式软件体系结构
描述符与描述符表 描述符(Descriptor): : 描述符
描述符是一个 字节的数据结构 描述符是一个8字节的数据结构。 Pentium采用描述符来 一个 字节的数据结构。 采用描述符来 描述存储器段的位置、大小和使用情况。 描述存储器段的位置、大小和使用情况。 包括段描述符、系统段描述符和门描述符三种类型。 包括段描述符、系统段描述符和门描述符三种类型。
描述符表
一个任务会涉及多个存储器段, 一个任务会涉及多个存储器段,每个段需要一个描述 符来描述, 把描述符按顺序组织成线性表, 符来描述,Pentium把描述符按顺序组织成线性表,称 把描述符按顺序组织成线性表 为描述符表 描述符表占内存一定的区域, 描述符表占内存一定的区域,由系统地址寄存器 (GDTR、IDTR、LDTR)指示其在物理存储器中的 、 、 ) 位置和大小 描述符表有三种: 描述符表有三种: 全局描述符表GDT 全局描述符表 中断描述符表IDT 中断描述符表 局部描述符表LDT 局部描述符表
保护模式软件体系结构
例:判断描述符所描述的段的性质
0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 6 1 1 0 0 0 0 1 0 5 0 0 1 0 0 0 0 0 4 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0
应用程序 常规扩展 系统服务 内核 级别0 级别 级别1 级别 级别2 级别 级别3 级别
7
保护模式概述
保护机制——同一任务内的保护 同一任务内的保护 保护机制
保护模式软件体系结构
每个存储器段都与一个特权级别相联系。 每个存储器段都与一个特权级别相联系。 在任何时候,一个任务总是在四个特权级之一下运行, 在任何时候,一个任务总是在四个特权级之一下运行, 任务在特定时刻的特权级称为当前特权级 (Current Privilege level),标记为 ,标记为CPL,即当前运行程序的特权级。 ,即当前运行程序的特权级。 每当一个程序试图访问一个段时,就把CPL与要访问的 每当一个程序试图访问一个段时,就把 与要访问的 段的特权级进行比较,以决定是否允许这一访问。 段的特权级进行比较,以决定是否允许这一访问。
4
保护模式软件体系结构
保护模式概述
保护机制 为了支持多任务,Pentium处理器要对存放在存储器中的 为了支持多任务, 处理器要对存放在存储器中的 代码及数据的保护与共享提供支持。 代码及数据的保护与共享提供支持。 任务(进程) 程序在执行时的一种情况, 任务(进程):程序在执行时的一种情况,是一个动态的 概念。 概念。 乐谱与演奏 Pentium的保护机制能有效地实现不同任务之间的保护和 的保护机制能有效地实现不同任务之间的保护和 同一任务内的保护。 同一任务内的保护。
3
保护模式概述
虚拟存储器的概念
保护模式软件体系结构
虚拟存储器是一种软硬件结合的技术, 虚拟存储器是一种软硬件结合的技术,用于提供比在计算 机系统中实际可以使用的物理内存大得多的存储空间。 机系统中实际可以使用的物理内存大得多的存储空间。 虚拟存储器的地址称为逻辑地址或虚拟地址, 虚拟存储器的地址称为逻辑地址或虚拟地址,全部逻辑地 逻辑地址 虚拟地址空间。 址的集合称为虚拟地址空间 址的集合称为虚拟地址空间。 Pentium支持的虚拟地址空间可达 支持的虚拟地址空间可达64TB。 支持的虚拟地址空间可达 。 只有物理内存中的程序才能运行, 只有物理内存中的程序才能运行,只有物理内存中的数据 才能被访问,所以虚拟地址空间必须映射到物理地址空间。 才能被访问,所以虚拟地址空间必须映射到物理地址空间。 Pentium通过扩充的存储器分段管理机制和可选的存储器 通过扩充的存储器分段管理机制和可选的存储器 分页管理机制实现虚拟地址到物理地址的转换。 分页管理机制实现虚拟地址到物理地址的转换。
门描述符: 门描述符:
属于系统段描述符 门提供了将程序控制转给服务程 序入口的手段。有任务门、 序入口的手段。有任务门、调用 中断门、陷阱门4种类型 门、中断门、陷阱门 种类型
偏移量16~31位 位 偏移量 访问权限字节
7 6 5 4 3 2 1 0
15
0 0 0 字计数 偏移量: 偏移量:相对于段基地址的偏移 量,为目标代码的入口点 选择符0~15位 选择符 位 选择符:用于确定段基地址 选择符: 字计数: 字计数:从调用者堆栈中复制到被 调用者堆栈中的参数个数 偏移量0~15位 偏移量 位
5
保护模式概述
保护机制——不同任务之间的保护 不同任务之间的保护 保护机制
保护模式软件体系结构
任务A和任务 并存 那么任务A和任务 必须隔离, 和任务B必须隔离 任务 和任务B并存,那么任务 和任务 必须隔离,以免相 和任务 并存, 互影响。把每个任务放置在不同的虚拟地址空间可以实现任 互影响。 务与任务的隔离。 务与任务的隔离。两个不同任务的虚拟地址转换为不同的物 理地址。 理地址。 仅由一个任务占有的虚拟地址空间部分,称为局部地址空间。 仅由一个任务占有的虚拟地址空间部分,称为局部地址空间。 局部地址空间 局部地址空间包含的代码和数据,是任务私有的, 局部地址空间包含的代码和数据,是任务私有的,需要与系 统中的其它任务相隔离。 统中的其它任务相隔离。 另一方面,任务 和任务 可能要共享部分代码和数据, 和任务B可能要共享部分代码和数据 另一方面,任务A和任务 可能要共享部分代码和数据,如 对操作系统的共享。 对操作系统的共享。 各个任务公用的虚拟地址空间部分,称为全局地址空间。 各个任务公用的虚拟地址空间部分,称为全局地址空间。对 全局地址空间 全局地址空间中同一虚拟地址的访问, 全局地址空间中同一虚拟地址的访问,在所有任务中都转换 为同样的物理地址,从而支持公共的代码及数据的共享。 为同样的物理地址,从而支持公共的代码及数据的共享。 6
7 6 5 4 3 2 1 0
11
保护模式软件体系结构
段描述符: 段描述符:
7 6 5 4 S 3
访问权限字节
P
DPL
2 1 0 ED R E A C W
P位 P=0, P位:P=0,段不在内存中 P=1,段在内存中 , DPL:取值0~3,确定段的 :取值 , 特权级 S位:S=1,段描述符 位 ,
A位:A=0,段尚未被访问 位 , A=1,段已被访问 ,
12
保护模式软件体系结构
段描述符: 段描述符:
访问权限字节 1~3位表示段的类型 位表示段的类型
7 P 6 5 4 S 3 DPL 2 1 ED W E C R 0 A
E=0,为数据段 , ED=0,段向上扩展 , 为数据段 ED=1,段向下扩展 , 为堆栈段 W=0,数据段只读 , W=1,数据段可写 ,
S=0,为系统段描述符 , TYPE=2,为DLT , P=1,DPL=2 , 因此为一个特权级为2的LDT, 因此为一个特权级为 的 , 已经在内存中 的基址为00200000H, 该LDT的基址为 的基址为 , 界限为00300H 界限为 G=0,段的长度以字节为单位 ,
17
保护模式软件体系结构
7 5 4 3 2 1 0
10
0 AVL 段界限 段界限16~19位 6 位 访问权限字节
段基址0~23位 位 段基址
段界限0~15位 位 段界限
保护模式软件体系结构
段描述符: 段描述符:
G位(粒度位 : 位 粒度位 粒度位): G=0, 段的长度以字节为单位 段基址24~31位 段基址 位 段长最大1M字节 段长最大 字节 段界限16~19位 位 G=1,段的长度以页 段的长度以页(4K字节 为单位 G D 0 AVL段界限 字节)为单位 段的长度以页 字节 段长最大1M× 段长最大 ×4K=4G字节 字节 访问权限字节 D位:D=0, 位 , 16位指令方式 代码段 位指令方式(代码段 位指令方式 代码段) 段的上界为64K(数据段 数据段) 段的上界为 数据段 段基址0~23位 段基址 位 使用16位堆栈指针 堆栈段 位堆栈指针SP(堆栈段 堆栈段) 使用 位堆栈指针 D=1, , 32位指令方式 代码段 位指令方式(代码段 位指令方式 代码段) 段的上界为4G(数据段 数据段) 段的上界为 数据段 段界限0~15位 段界限 位 使用32位堆栈指针 位堆栈指针ESP(堆栈段 堆栈段) 使用 位堆栈指针 堆栈段 AVL位:软件可用位。未作规定 位 软件可用位。
保护模式
2.4 保护模式软件体系结构 3.8 保护模式的系统控制指令 4.5 保护模式汇编语言程序设计
1
保护模式软件体系结构
2.4 保护模式软件体系结构
保护模式概述 描述符与描述符表 保护模式的寄存器模型 保护模式的存储器寻址 虚拟8086模式 虚拟 模式
2
保护模式软件体系结构
保护模式概述
32条地址线全部有效,可寻址4GB物理地址空间 条地址线全部有效,可寻址 物理地址空间 条地址线全部有效 扩充的存储器分段管理机制和可选的存储器分页管理机 扩充的存储器分段管理机制和可选的存储器分页管理机 制,为实现虚拟存储器提供了硬件支持 为实现虚拟存储器提供了硬件支持 虚拟存储器 支持多任务,能够快速地进行任务切换和保护任务环境 支持多任务, 支持多任务 4个特权级和完善的特权检查机制,既能实现资源共享 个特权级和完善的特权检查机制, 个特权级和完善的特权检查机制 又能保证代码和数据的安全和保密以及任务的隔离 支持虚拟 支持虚拟8086方式 支持虚拟 方式
保护模式软件体系结构
门描述符: 门描述符:
访问权限字节格式与 系统段描述符相同 DPL为任务允许访问该门的最低 为任务允许访问该门的最低 特权级
偏移量16~31位 位 偏移量 访问权限字节 0 0 0 字计数 选择符0~15位 选择符 位
7 6 5 4 3 2 1 0
16
偏移量0~15位 偏移量 位
18
保护模式软件体系结构
描述符表 全局描述符表(GDT) 全局描述符表
整个系统只有一个 表中包含可能被所有任务所共享的段的描述符——包 包 表中包含可能被所有任务所共享的段的描述符 括操作系统用的数据段、代码段、堆栈段, 括操作系统用的数据段、代码段、堆栈段,各种任务 的任务状态段(TSS),所有的 的任务状态段 ,所有的LDT段,中断服务程序 段 段等。 段等。
E=1,为代码段 , C=0,忽略描述符特权级 , C=1,遵循描述符特权级 , R=0,代码段不可读 , 即只执行 R=1,代码段可读 ,
13
保护模式软件体系结构
系统段描述符: 系统段描述符:
格式与段描述符基本相同,主要差别① 格式与段描述符基本相同,主要差别①访问权限字节
7 P 6 5 4 S 3 2 1 0 DPL TYPE