`
eriol
  • 浏览: 409004 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

实模式与保护模式

    博客分类:
  • OS
阅读更多

1. x86实模式介绍

x86体系的处理器刚开始时只有20根地址线,寻址寄存器是16位。我们知道16位的寄存器可以访问64K的地址空间,如果程序要想访问大于64K的内存,就需要把内存分段,每段64K,用段地址+偏移量的方式来访问,这样使20根地址线全用上,最大的寻址空间就可以到1M字节,这在当时已经是非常大的内存空间了。

 


2. 实模式的问题与保护模式的出现

事实上,实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,系统程序和用户程序并没有区别对待,而且每一个指针都是指向实际的物理地址。这样一来,用户程序的一个指针如果指向了系统程序区域或其他用户程序区域,并修改了内容,那么对于这个被修改的系统程序或用户程序,其后果就很可能是灾难性的。再者,随着软件的发展,1M的寻址空间已经远远不能满足实际的需求了。最后,对处理器多任务支持需求也日益紧迫,所有这些都促使新技术的出现。

为了克服实模式下的内存非法访问问题,并满足飞速发展的内存寻址和多任务需求,处理器厂商开发出保护模式。在保护模式中,除了内存寻址空间大大提高;提供了硬件对多任务的支持;物理内存地址也不能直接被程序访问,程序内部的地址(虚拟地址)要由操作系统转化为物理地址去访问,程序对此一无所知。至此,进程(程序的运行态)有了严格的边界,任何其他进程根本没有办法访问不属于自己的物理内存区域,甚至在自己的虚拟地址范围内也不是可以任意访问的,因为有一些虚拟区域已经被放进一些公共系统运行库。这些区域也不能随便修改,若修改就会有出现linux中的段错误,或 Windows中的非法内存访问对话框。

 


3. 386以上处理器的特点

386处理器有三种工作方式:实模式、保护模式和虚拟8086模式。

 

实模式只能访问地址在1M以下的内存,称为常规内存,我们把地址在1M 以上的内存称为扩展内存。


在保护方式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间;扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持;支持多任务,能够快速地进行任务切换和保护任务环境;4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密及任务的隔离;支持虚拟8086方式,便于执行8086程序。

 

虚拟8086模式是运行在保护模式中的实模式,为了在32位保护模式下执行纯16位程序。它不是一个真正的CPU模式,还属于保护模式。

 

4. 保护模式下的地址转换

通过采用段地址加偏移量的方式,80386支持的虚拟地址空间可达64T字节。但由于实际物理内存的大小可能会远小于虚拟地址空间,所以实际上虚拟地址中只有部分才可以真正映射到物理存储器。同时由于每一个任务有一个虚拟地址空间。为了避免多个并行任务的多个虚拟地址空间直接映射到同一个物理地址空间,还需要使用线性地址空间来隔离虚拟地址空间和物理地址空间。线性地址空间由一维的线性地址构成,线性地址空间和物理地址空间是对等。线性地址也是32位长,寻址空间为4G字节。

在操作系统中,应用程序使用虚拟地址(也即逻辑地址)访问内存,操作系统将虚拟地址转换为线性地址,然后由处理器将线性地址转换为物理地址,但是在交由处理器转换前,操作系统必须设置处理器所需要的相关描述符表和描述符信息。其实在Linux系统中,这在系统启动时就设置好了,而且是设置后就不会再改动了。

在80386中,通过使用分段管理和分页管理实现虚拟地址到物理地址的转换,其中分页管理是可选的。

分享到:
评论

相关推荐

    计算机实模式与保护模式

    ### 计算机实模式与保护模式 #### 实模式与保护模式的概念 计算机系统的实模式(Real Mode)和保护模式(Protected Mode)是x86架构下两种不同的操作模式,这两种模式在系统启动时决定了处理器如何管理和执行指令...

    实模式与保护模式切换实例

    ### 实模式与保护模式切换实例解析 #### 一、引言 实模式(Real Mode)与保护模式(Protected Mode)是计算机系统中的两种不同的运行模式,主要针对Intel x86系列处理器。这两种模式分别适用于不同的操作系统环境和...

    实模式与保护模式&系统管理模式(SM Mode)

    ### 实模式与保护模式及系统管理模式(SM Mode) #### 实模式基本概念 实模式是早期计算机体系结构中的一种运行模式,主要应用于8086/8088时代的微处理器。在这种模式下,处理器仅支持一种操作模式,即实模式...

    操作系统篇-浅谈实模式与保护模式.docx

    ### 操作系统篇-浅谈实模式与保护模式 #### 一、引言 随着计算机技术的发展,操作系统作为连接硬件与软件之间的桥梁扮演着至关重要的角色。而在操作系统的底层实现中,实模式与保护模式是两个核心概念。本文旨在...

    x86汇编语言 从实模式到保护模式.zip

    本文将详细介绍x86汇编语言的基础知识,实模式与保护模式的转换过程,以及这两者之间的关键差异。 一、x86汇编语言基础 x86汇编语言是针对Intel 80x86系列处理器的一种低级编程语言,包括8086、80286、80386、...

    X86从实模式到保护模式 源代码

    在计算机系统中,实模式与保护模式是x86架构处理器的两种工作模式,特别是在早期的x86架构中,这两种模式在操作系统启动阶段发挥着关键作用。实模式是指处理器在启动时的工作模式,它具有地址空间限制和没有硬件级的...

    保护模式与实模式

    ### 保护模式与实模式详解 #### 一、引言 在探讨计算机体系结构时,尤其是在x86架构中,实模式(Real Mode)与保护模式(Protected Mode)是两个非常重要的概念。这两种模式不仅定义了处理器的工作状态,还决定了...

    到底什么是实模式和保护模式

    ### 实模式与保护模式:深度解析 在计算机体系结构中,实模式(Real Mode)与保护模式(Protected Mode)是两种不同的操作模式,主要用于描述处理器如何处理内存寻址、指令执行以及特权级控制等关键功能。这两种...

    CPU实模式和保护模式

    ### CPU实模式与保护模式详解 #### 一、实模式:传统的操作模式 实模式(Real Mode),作为CPU的一种原始工作状态,源自于早期的Intel 8086处理器。在此模式下,CPU遵循8086的指令集和寻址机制,提供了16位的段和...

    实模式与保护模式的硬软件原理

    "实模式和保护模式的硬软件原理" 在现代 PC 操作系统中,保护模式原理扮演着非常重要的角色,它使得操作系统可以更好地管理内存和资源。保护模式的引入是为了解决实模式下的内存管理问题。在实模式下,CPU 的寻址...

    《x86汇编语言:从实模式到保护模式》第13章代码补丁

    《x86汇编语言:从实模式到保护模式》是深入学习x86架构汇编编程的经典之作,第13章主要涉及的是操作系统级别的编程,包括实模式与保护模式的转换、中断处理、内存管理和任务调度等内容。该书的作者在编写示例代码时...

    《从实模式到保护模式》第15章习题二的答案

    在实模式与保护模式之间切换是理解现代操作系统如何启动和管理硬件资源的关键。第15章可能涉及了这些模式转换的细节,以及在保护模式下如何实现内存管理和任务调度等内容。 在第15章的习题二中,我们可能遇到了以下...

    《x86汇编语言:从实模式到保护模式》勘误表.doc

    ### 实模式与保护模式 #### 实模式 实模式(Real Mode)是指x86处理器的一种运行状态,在这种状态下,处理器按照最初的8086/8088处理器的方式来执行指令。实模式下的地址空间是1MB,并且所有的内存都是可直接访问...

    x86汇编语言从实模式到保护模式完整版有后三章

    《x86汇编语言:从实模式到保护模式》是一部深入探讨x86架构处理器编程的经典著作,尤其强调了实模式与保护模式之间的转换。这本书的后三章通常是网络上难以找到的部分,因此这份完整版显得尤为珍贵。在本文中,我们...

    《x86汇编语言-从实模式到保护模式》一书中的源代码,章节对应代码和pdf都在相关目录下

    《x86汇编语言-从实模式到保护模式》一书中的源代码,章节对应代码和pdf都在相关目录下 《x86汇编语言-从实模式到保护模式》一书中的源代码,章节对应代码和pdf都在相关目录下 《x86汇编语言-从实模式到保护模式》一...

    x86汇编语言-从实模式到保护模式 配套源码及资料

    《x86汇编语言-从实模式到保护模式》一书对于实模式和保护模式之间的转换过程进行了深入探讨。它详细阐述了从实模式到保护模式的转换步骤,包括设置中断向量表、初始化段寄存器、开启分页等关键步骤。这些内容对于...

    x86汇编语言从实模式到保护模式(完整版)更新过

    《x86汇编语言:从实模式到保护模式》是一部深入探讨x86架构处理器工作模式转换的经典教程,尤其注重讲解从实模式过渡到保护模式的过程。在计算机硬件领域,理解这一转换对于操作系统开发、低级编程以及系统级调试至...

    <x86汇编语言 从实模式到保护模式>配套源码及工具

    在深入学习了实模式和保护模式之后,读者将能够掌握计算机系统启动和运行的许多关键细节,例如如何在系统启动时建立内存管理机制,如何在保护模式下有效地处理中断和异常,以及如何通过内存分页技术来支持虚拟内存的...

Global site tag (gtag.js) - Google Analytics