当前位置:文档之家› 微机原理ppt课件

微机原理ppt课件

任务A和任务B并存,那么任务A和任务B必须隔离,以免相 互影响。把每个任务放置在不同的虚拟地址空间可以实现任 务与任务的隔离。两个不同任务的虚拟地址转换为不同的物 理地址。
仅由一个任务占有的虚拟地址空间部分,称为局部地址空间。 局部地址空间包含的代码和数据,是任务私有的,需要与系 统中的其它任务相隔离。
13
描述符与描述符表
门描述符:
属于系统段描述符
门提供了将程序控制转给服务程 序入口的手段。有任务门、调用 门、中断门、陷阱门4种类型
偏移量16~31位
7
6
访问权限字节
5
偏移量:相对于段基地址的偏移 0 0 0 字计数
4
量,为目标代码的入口点 选择符:用于确定段基地址 字计数:从调用者堆栈中复制到被
3
保护模式概述
保护机制
为了支持多任务,Pentium处理器要对存放在存储器中的 代码及数据的保护与共享提供支持。
任务(进程):程序在执行时的一种情况,是一个动态的
概念。
乐谱与演奏
Pentium的保护机制能有效地实现不同任务之间的保护和 同一任务内的保护。
4
保护模式概述
保护机制——不同任务之间的保护
选择符0~15位
3
2
调用者堆栈中的参数个数
偏移量0~15位
1
0
14
描述符与描述符表
门描述符:
访问权限字节格式与 系统段描述符相同
DPL为任务允许访问该门的最低 特权级
偏移量16~31位
7
6
访问权限字节
5
0 0 0 字计数
4
选择符0~15位
3
2
偏移量0~15位
1
0
15
描述符与描述符表
第5章 Pentium微处理器保护模式 软件体系结构
5.1 保护模式概述 5.2 描述符与描述符表 5.3 保护模式的寄存器模型 5.4 保护模式的存储器寻址 5.5 保护模式的系统控制指令 5.6 保护模式汇编语言程序设计 5.7 虚拟8086模式
1
2.1 保护模式概述
•32条地址线全部有效,可寻址4GB物理地址空间 •扩充的存储器分段管理机制和可选的存储器分页管理机 制,为实现虚拟存储器提供了硬件支持 •支持多任务,能够快速地进行任务切换和保护任务环境 •4个特权级和完善的特权检查机制,既能实现资源共享 又能保证代码和数据的安全和保密以及任务的隔离 •支持虚拟8086方式
Pentium为每个任务提供了4种特权级,0级最高,3级最低
应用程序 常规扩展 系统服务
内核 级别0
级别1 级别2 级别3
6
保护模式概述
保护机制——同一任务内的保护
每个存储器段都与一个特权级别相联系。 在任何时候,一个任务总是在四个特权级之一下运行, 任务在特定时刻的特权级称为当前特权级 (Current Privilege level),标记为CPL,即当前运行程序的特权级。 每当一个程序试图访问一个段时,就把CPL与要访问的 段的特权级进行比较,以决定是否允许这一访问。
段界限0~15位
1
使用32位堆栈指针ESP(堆栈段)
0
AVL位:软件可用位。未作规定 10
描述符与描述符表
段描述符:
访问权限字节
76543210
P
DPL
S
E
ED R CW
A
P位:P=0,段不在内存中 A位:A=0,段尚未被访问
P=1,段在内存中
A=1,段已被访问
DPL:取值0~3,确定段的 特权级
2
保护模式概述
虚拟存储器的概念
虚拟存储器是一种软硬件结合的技术,用于提供比在计算 机系统中实际可以使用的物理内存大得多的存储空间。 虚拟存储器的地址称为逻辑地址或虚拟地址,全部逻辑地 址的集合称为虚拟地址空间。 Pentium支持的虚拟地址空间可达64TB。 只有物理内存中的程序才能运行,只有物理内存中的数据 才能被访问,所以虚拟地址空间必须映射到物理地址空间。 Pentium通过扩充的存储器分段管理机制和可选的存储器 分页管理机制实现虚拟地址到物理地址的转换。
另一方面,任务A和任务B可能要共享部分代码和数据,如 对操作系统的共享。
各个任务公用的虚拟地址空间部分,称为全局地址空间。对 全局地址空间中同一虚拟地址的访问,在所有任务中都转换 为同样的物理地址,从而支持公共的代码及数据的共享。
5
保护模式概述
保护机制——同一任务内的保护
在一个任务之内,定义有四种执行特权级(PL, Privilege Level) ,用于限制对任务中不同的存储器段进行访问。
S位:S=1,段描述符
11
描述符与描述符表
段描述符:
访问权限字节 1~3位表示段的类型
7 P
65 DPL
ቤተ መጻሕፍቲ ባይዱ43210
S
E
ED W CR
A
E=0,为数据段 ED=0,段向上扩展 为数据段
ED=1,段向下扩展 为堆栈段
W=0,数据段只读 W=1,数据段可写
E=1,为代码段 C=0,忽略描述符特权级 C=1,遵循描述符特权级 R=0,代码段不可读 即只执行
G=1,段的长度以页(4K字节)为单位 G D 0 AVL段界限16~19位 6
段长最大1M4K=4G字节 D位:D=0,
访问权限字节
5
16位指令方式(代码段)
4
段的上界为64K(数据段) 使用16位堆栈指针SP(堆栈段)
段基址0~23位
3
D=1,
2
32位指令方式(代码段) 段的上界为4G(数据段)
Windows 操作系统只使用了0级和3级
7
5.2 描述符与描述符表 描述符(Descriptor):
描述符是一个8字节的数据结构。 Pentium采用描述符来 描述存储器段的位置、大小和使用情况。 包括段描述符、系统段描述符和门描述符三种类型。
8
描述符与描述符表
段描述符:
用于描述代码、数据 和堆栈段(用户段)
R=1,代码段可读
12
描述符与描述符表
系统段描述符:
格式与段描述符基本相同,主要差别①访问权限字节
76543210
P DPL S
TYPE
S=0,系统段描述符
TYPE为4位,共有16种类型。其中:
2,LDT 9,TSS,非忙 B,TSS,忙
② D位无定义(D=0)
5,任务门 C,调用门 E,中断门 F,陷阱门
段基址为段的起始地 址,长32位
段界限长20 位——段 内最大有1M个可寻址 单位
段基址24~31位
7
G D 0 AVL 段界限16~19位 6
访问权限字节
5
4
段基址0~23位
3
2
段界限0~15位
1
0
9
段描述符:
描述符与描述符表
G位(粒度位):
G=0, 段的长度以字节为单位
段基址24~31位 7
段长最大1M字节
相关主题