80X86 保护模式

保护模式定义: http://baike.baidu.com/view/177586.htm?fr=topic

http://x86.ddj.com/articles/pmbasics/tspec_a1_doc.htm

 

保护:用硬件对每个任务使用的内存空间进行保护,阻止其他任务的非法访问。 特点如下: 
 
A 采用虚拟存储管理,启用分段和分页机制。允许关闭分页机制
 
 
B 段内偏移地址32位,每个段最大232B=4GB,每个程序最多可以使用16K个段,理论上的虚拟地址空间为4GB×16K=64TB
 
 
C 采用32位地址寄存器,如EBXESIEIPESP等。
 
D  4特权级0123
       0级具有最高的特权,可以执行所有指令,建立和维护各种表格,管理整个系统,供操作系统进程使用
     3级最低,3级任务只能访问操作系统分配给它的内存区间, 不能执行特权指令,访问IO设备的权限也受到限制。 供用户程序使用。
 
 
 
 
 
保护模式下的寻址方式:

 

分段管理
 逻辑地址仍然采用段:偏移地址的形式。
 逻辑地址通过分段管理机构转换为32位的线性地址
 16位段寄存器内存放的不再是20位段起始地址的高16位,而  是这个段的一个编号,称为段选择符Segment Selector
 使用这个段选择符查找段描述符表Segment Descriptor     Table,得到这个段的32位起始地址,加上32 位的偏移地
      址,得到这个存储单元的32线性地址

 

 

 

 

 

 

分页管理
32位线性地址通过分页管理机构转换为32/36位的物理地址
所有的存储器以4KB为单位划分成Page
线性地址被划分成页号页内地址 两部分,根据页号查找
    页表
,得到这个页在内存真实的起始地址,加上页内地址,
    得到该存储单元的物理地址。
如果通过查表发现该页还在硬盘中,则还要首先启用换页制,把这个页调入内存。

 

 

 

 

 

分段机构的三张段描述符表

段描述符表 由若干个段描述符组成,每个段描述符记录一个段的相关信息,如这个段的起始地址,段的长度,段的属性等
全局段描述符表Global Descriptor Table, GDT)整个计算机内只有一张,存放操作系统使用的各种段的信息。
局部段描述符表Local Descriptor Table, LDT)每个任务都有一张局部段描述符表,记录这个任务使用的段的信息。
中断描述符表Interrupt Descriptor Table, IDT)记录中断服务程序的位置信息。

 

 

 

控制寄存器

控  制
寄存器
CRxBIT31BIT30—BIT12BIT11—BIT5BIT4BIT3BIT2BIT1BIT0
CR0PG0000000000000000ETTSEMMPPE
CR1保留
CR2页故障线性地址
CR3页目录表物理页码000000000000
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值