- 论坛徽章:
- 0
|
80386CPU有【3】种工作方式
【实模式】:8086
【保护模式】:提供多任务支持,实现任务间以及任务内部的保护机制【内存空间的相互独立】
【虚实模式】:兼容8086方式
80386CPU在【保护模式】下提供【2】种内存访问方式
【存储器分段管理机制】:必须的
【存储器分页管理机制】:可选项
【物理地址】:真实存在的内存空间
【逻辑地址】:即虚拟地址。保护模式下程序使用的是虚拟存储器中的地址,最终要映射到有效物理空间
每个任务拥有一个虚拟地址空间,通过【线性空间】隔离机制避免并行任务拥有相同物理空间
【线性空间】:大小等于物理空间
逻辑地址(虚拟地址)
15 0 31 0 31 0 31 0
【[选择子]:[偏移量]】=》【分段管理机制】=》【线性地址】=》【分页管理机制】=》【物理地址】
-----------------------------------------------
【分页管理机制】:线型地址到物理地址的映射机制。
将线性地址和物理地址划分大小相同的块【页】;
建立线性页与物理页之间的对应关系【映射表】;
如果没有建立分页机制,线性地址等于物理地址。
【分段管理机制】:虚拟地址到线性地址的映射机制。【段】就是内存块
段大小可变【段的组成】:段基地址(32位,对应的线性起始地址)、段界限(20位,大小)、段属性()
线性地址=段基址 到 段基址+段界限 / 段基址+段限×4K+0xFFFh【取决于段属性G位是否置位】
堆栈地址的特殊性:从高向低扩展 线性地址 = 最高地址-1-段地址 到 段界限 +1-段基址
【描述符】-> 段的位置、大小、使用方式。描述符分【3】类:存储段描述符、系统段描述符、门描述符
【存储段描述符】:
[m+7] [m+6,m+5] [m+4,m+3,m+2] [m+1,m ]
Base attributes Segment Base segment limit
31...24 | 23...0 15...0
^
[7 6 5 4 3210 ] [ 7 65 4 3210]
G D 0 AVL Limit19...16 P DPL DT Type
【P】:p=1 有效
【DPL】:特权级
【DT】:描述符类型
【type】:存储段属性
【为何segment Base 和 segment limit都被分为2部分】:为了兼容286 在286环境下段基地址24位 段限16位
【全局与局部描述符】
【[选择子]:[偏移量]】:
【选择子】->【描述符】-> 段基址
+偏移量-> 线性地址-> 物理地址
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13779/showart_299858.html |
|