实模式和保护模式的区别 |
您所在的位置:网站首页 › 实模式和保护模式的主要区别 › 实模式和保护模式的区别 |
实模式和保护模式的区别
2009-08-31 20:19 551 人阅读
评论 (1) 收藏
举报
从 80386 开始, cpu 有三种工作方式:实模式,保护模式和虚拟 8086 模式。 只有在刚刚启 动的时候是 real-mode ,等到 linux 操作系统运行起来以后就运行在保护模式(所以存在一 个启动时的模式转换问题) 。
实模式只能访问地址在 1M 以下的内存称为常规内存,我们把地址在 1M
以上的内存称 为扩展内存。
在保护模式下,全部 32 条地址线有效,可寻址高达 4G 字节的物理地址空间 ;
扩充的存储器分段管理机制和可选的存储器分页管理机制, 不仅为存储器共享和保护提供 了硬件支持,而且为实现虚拟存储器提供了硬件支持 ;
支持多任务,能够快速地进行任务切换和保护任务环境 ;
4 个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密 及任务的隔离 ;
支持虚拟 8086 方式,便于执行 8086 程序。
1. 虚拟 8086 模式是运行在保护模式中的实模式, 为了在 32 位保护模式下执行纯 16 位程序。 它不是一个真正的 CPU 模式,还属于保护模式。
2 . 保护模式同实模式的根本区别是进程内存受保护与否
。可寻址空间的区别只是这一原 因的果。
实模式将整个物理内存看成分段的区域 , 程序代码和数据位于不同区域,系统程序和用户 程序没有区别对待,而且每一个指针都是指向 " 实在 " 的物理地址。这样一来,用户程序的一 个指针如果指向了系统程序区域或其他用户程序区域, 并改变了值, 那么对于这个被修改的 系统程序或用户程序, 其后果就很可能是灾难性的。 为了克服这种低劣的内存管理方式, 处 理器厂商开发出保护模式。这样,物理内存地址不能直接被程序访问, 程序内部的地址 (虚 拟地址)要由操作系统转化为物理地址去访问,程序对此一无所知。
至此,进程(这时我 们可以称程序为进程了) 有了严格的边界, 任何其他进程根本没有办法访问不属于自己的物 理内存区域, 甚至在自己的虚拟地址范围内也不是可以任意访问的, 因为有一些虚拟区域已 经被放进一些公共系统运行库。这些区域也不能随便修改,若修改就会有 :
SIGSEGV ( linux
段错误) ; 非法内存访问对话框( windows
对话框)。
CPU 启动环境为 16 位实模式,之后可以切换到保护模式。但从保护模式无法切换回实模 式
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |