实模式,保护模式

实模式:

cpu复位和加电时以实模式启动,这时处理器以实模式工作。

8086处理器有20根地址总线,和16位的寄存器,它的工作模式就是现在所说的实模式。

实模式下16位段寄存器的内容乘以16(就是<<4)当作段基地址,加上16位偏移地址形成20位物理地址。

所以以上就是说:物理地址=段值*16+偏移。

(这里需要说的几点是,由于16位物理地址访问内存太小,所以最后确定了20位的地址总线,

8086处理器将段寄存器内容先 <<4 达到20位再 + 16位偏移地址得到20为物理地址)

寻址空间最大1M(2^20),分段最大64K(2^16)

实模式下的段都是可读可写可执行的。


保护模式:

由于实模式下,物理地址可以直接操作,所以存在一些弊端:程序的安全性和无法支持多任务。

现如今大部分x86操作系统是在保护模式下运行

保护模式提供了段间保护机制防止程序间的随意访问,而且保护模式比实模式访问的内存要大。

支持多任务,能快速的进行任务切换和任务环境的保护。

内存管理模式分段模式和页模式。

分段机制:通过段选择符 + 段内偏移  的寻址最终得到线性或者物理地址,

段选择符结构如下:

段选择符16位,它指向段描述符

其中,索引13位,相当于一个数组,它是段描述符的索引。所以保护模式应具有2的13次方=8192个段描述符

          TI又可分为GDT(全局描述符表)和LDT(局部描述符表),所以一共是8192*2个段描述符

           一个段描述符描述一个段,所以共有16384(2^14)个段,段内偏移地址32位(32条地址线有效)

          段最大4GB,最大寻址能力2^14 * 4GB=64TB,也就是逻辑地址/虚拟地址

GDT和LDT需要用段寄存器来保存他们在内存的段地址

在32位保护模式下,段地址是32位线性地址。

描述符:

保护模式下用描述符来描述各种段,所有的描述符都是8字节,

多个描述符组成描述符表,它也是一种段,也可用描述符来描述。

通过段选择符的索引可以在 段描述表中找到一个段描述符。

=。=最后来区分一下上面所提到的三个地址

物理地址:实际地址,物理地址=段地址*16+偏移

线性地址:逻辑地址到物理地址变换的中间层,分段机制下,逻辑地址是段中的偏移地址,加上基地址就是线性地址。

                  无分页机制,线性地址=物理地址

                  若有分页,线性地址可经变换得到物理地址(逻辑地址→段式内存管理单元→线性地址→也式内存管理单元→物理地址)

逻辑地址:虚拟地址,程序产生的与段相关的偏移地址,由段选择符和段内偏移量组成。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值