实模式/保护模式

 

## 实模式和保护模式程序员

### 实模式
时间短,通常没法感知

CPU复位(reset)或加电(power on)的时候就是实模式启动,这个时候处理器是以实模式工做,不能实现权限分级,也不能访问20位以上的地址线,也就是只能访问1M内存(2^18bits, 18位地址线)

以后通常就是加载OS模块,进入保护模式

8086
地址线是20位,寄存器是16位,采用:物理地址= 段地址<<4 + 偏移

8086发展来的32位处理器地址线扩展到32位,有4GB寻址空间

在保护模式下,系统计算地址的时候是按照对1MB求模进行——Wrap-Around技术

windows

### 保护模式
####
起源
最开始的程序寻址是:段+偏移,这样的好处是程序员指定的地址就是物理地址,物理地址对程序员可见

这样带来的问题是:

1. 
没法支持多任务
2. 
程序的安全性没法获得保证

安全

windows的旧版本中,电脑时不时死机/蓝屏,这其实就是由于内存被破坏致使的。

由于在实模式中,将物理内存当作分段的区域,程序代码和数据位于不区域,系统程序和用户程序区别对待,而指针是任意的,若是用户程序指针指向了系统程序或其余用户程序区域,并改变了区域的数据,就会形成破坏,致使程序/系统崩溃


在保护模式下,所有32条地址线有效,4G寻址空间,存储器分段管理机制和分页管理机制等,不只为存储器共享和保护提供了硬件支持,并且为实现虚存提供硬件支持。支持多任务,能快速进行任务切换和保护任务环境。

保护模式出现的缘由是:**保护进程地址空间**,这样产生了一个结果——两种模式下的程序寻址方式发生了变化

####
保护模式下的寻址方式和工做原理
地址一样是+偏移,可是段的概念发生根本变化数据结构

 

段变成了一个索引,指向一个数据结构——全局描述符GDT(或是LDT),定义了段的起始地址,界限、属性等spa

GDT做用是提供段氏存储机制指针

在实模式中:段地址并不是真正的物理地址,<<4+offsetorm

在保护模式中,段地址是32位线性地址,若是未开启分页功能,该线性地址就是物理的地址索引

 

 

From PPT进程

l  实模式就是用基地址+偏移量就能够直接拿到物理地址的模式内存

n  缺点:不安全

l  保护模式:不能直接拿到物理地址的模式

n  须要地址转换

n  80386开始,是现代OS主要模式

相关文章
相关标签/搜索