80x86保护模式系列教程 一.保护方式简介
来源:未知 责任编辑:责任编辑 发表时间:2013-12-22 14:56 点击:次
一.保护方式简介
80386有三种工作方式:实模式,保护模式和虚拟8086模式。本文介绍保护方式下的80386及相关的程序设计内容。实模式下的80386寄存器,寻址方式和指令等基本概念,除特别说明外在保护方式下仍然保持。
尽管实方式下80386的功能要大大超过其先前的处理器(8086/8088,80186,80286),但只有在保护方式下, 80386才能真正发挥更大的作用。在保护方式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间;扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持;支持多任务,能够快速地进行任务切换和保护任务环境;4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密及任务的隔离;支持虚拟8086方式,便于执行8086程序。
<一>存储管理机制
为了对存储器中的程序及数据实现保护和共享提供硬件支持,为了对实现虚拟存储器提供硬件支持,在保护方式下,80386不仅采用扩充的存储器分段管理机制,而且提供可选的存储器分页管理机制。这些存储管理机制由80386存储管理部件MMU实现。
1.目标
80386有32根地址线,在保护方式下,它们都能发挥作用,所以可寻址的物理地址空间高达4G字节。在以80386及其以上处理器为CPU的PC兼容机系统中,把地址在1M以下的内存称为常规内存,把地址在1M 以上的内存称为扩展内存。
80386还要对实现虚拟存储器提供支持。虽然与8086可寻址的1M字节物理地址空间相比,80386可寻址的物理地址空间可谓很大,但实际的微机系统不可能安装如此达的物理内存。所以,为了运行大型程序和真正实现多任务,必须采用虚拟存储器。虚拟存储器是一种软硬件结合的技术,用于提供比在计算机系统中实际可以使用的物理主存储器大得多的存储空间。这样,程序员在编写程序时不用考虑计算机中物理存储器的实际容量。
80386还要对存放在存储器中的代码及数据的共享和保护提供支持。任务甲和任务乙并存,任务甲和任务乙必须隔离,以免相互影响。但它们又可能要共享部分代码和数据。所以,80386既要支持任务隔离,又要支持可共享代码和数据的共享,还要支持特权保护。
2.地址空间和地址转换
保护方式下的虚拟存储器由大小可变的存储块构成,这样的存储块称为段。80386采用称为描述符的数据来描述段的位置、大小和使用情况。虚拟存储器的地址(逻辑地址)由指示描述符的选择子和段内偏移两部分构成,这样的地址集合称为虚拟地址空间。80386支持的虚拟地址空间可达64T字节。程序员编写程序时使用的存储地址空间是虚拟地址空间,所以,他们可认为有足够大的存储空间可供使用。
显然,只有在物理存储器中的程序才能运行,只有在物理存储器中的数据才能访问。因此,虚拟地址空间必须映射到物理地址空间,二维的虚拟地址必须转化成一维的物理地址。由于物理地址空间远小于虚拟地址空间,所以只有虚拟地址空间中的部分可以映射到物理地址空间。由于物理存储器的大小要远小于物理地址空间,所以只有上述部分中的部分才能真正映射到物理存储器。
每一个任务有一个虚拟地址空间。为了避免多个并行任务的多个虚拟地址空间直接映射到同一个物理地址空间,采用线性地址空间隔离虚拟地址空间和物理地址空间。线性地址空间由一维的线性地址构成,线性地址空间和物理地址空间对等。线性地址32位长,线性地址空间容量为4G字节。
80386分两步实现虚拟地址空间到物理地址空间到物理地址空间的映射,也就是分两步实现虚拟地址到物理地址的转换,但第二步是可选的。下图是地址映射转换的示意图。
80386有三种工作方式:实模式,保护模式和虚拟8086模式。本文介绍保护方式下的80386及相关的程序设计内容。实模式下的80386寄存器,寻址方式和指令等基本概念,除特别说明外在保护方式下仍然保持。
尽管实方式下80386的功能要大大超过其先前的处理器(8086/8088,80186,80286),但只有在保护方式下, 80386才能真正发挥更大的作用。在保护方式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间;扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持;支持多任务,能够快速地进行任务切换和保护任务环境;4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密及任务的隔离;支持虚拟8086方式,便于执行8086程序。
<一>存储管理机制
为了对存储器中的程序及数据实现保护和共享提供硬件支持,为了对实现虚拟存储器提供硬件支持,在保护方式下,80386不仅采用扩充的存储器分段管理机制,而且提供可选的存储器分页管理机制。这些存储管理机制由80386存储管理部件MMU实现。
1.目标
80386有32根地址线,在保护方式下,它们都能发挥作用,所以可寻址的物理地址空间高达4G字节。在以80386及其以上处理器为CPU的PC兼容机系统中,把地址在1M以下的内存称为常规内存,把地址在1M 以上的内存称为扩展内存。
80386还要对实现虚拟存储器提供支持。虽然与8086可寻址的1M字节物理地址空间相比,80386可寻址的物理地址空间可谓很大,但实际的微机系统不可能安装如此达的物理内存。所以,为了运行大型程序和真正实现多任务,必须采用虚拟存储器。虚拟存储器是一种软硬件结合的技术,用于提供比在计算机系统中实际可以使用的物理主存储器大得多的存储空间。这样,程序员在编写程序时不用考虑计算机中物理存储器的实际容量。
80386还要对存放在存储器中的代码及数据的共享和保护提供支持。任务甲和任务乙并存,任务甲和任务乙必须隔离,以免相互影响。但它们又可能要共享部分代码和数据。所以,80386既要支持任务隔离,又要支持可共享代码和数据的共享,还要支持特权保护。
2.地址空间和地址转换
保护方式下的虚拟存储器由大小可变的存储块构成,这样的存储块称为段。80386采用称为描述符的数据来描述段的位置、大小和使用情况。虚拟存储器的地址(逻辑地址)由指示描述符的选择子和段内偏移两部分构成,这样的地址集合称为虚拟地址空间。80386支持的虚拟地址空间可达64T字节。程序员编写程序时使用的存储地址空间是虚拟地址空间,所以,他们可认为有足够大的存储空间可供使用。
显然,只有在物理存储器中的程序才能运行,只有在物理存储器中的数据才能访问。因此,虚拟地址空间必须映射到物理地址空间,二维的虚拟地址必须转化成一维的物理地址。由于物理地址空间远小于虚拟地址空间,所以只有虚拟地址空间中的部分可以映射到物理地址空间。由于物理存储器的大小要远小于物理地址空间,所以只有上述部分中的部分才能真正映射到物理存储器。
每一个任务有一个虚拟地址空间。为了避免多个并行任务的多个虚拟地址空间直接映射到同一个物理地址空间,采用线性地址空间隔离虚拟地址空间和物理地址空间。线性地址空间由一维的线性地址构成,线性地址空间和物理地址空间对等。线性地址32位长,线性地址空间容量为4G字节。
80386分两步实现虚拟地址空间到物理地址空间到物理地址空间的映射,也就是分两步实现虚拟地址到物理地址的转换,但第二步是可选的。下图是地址映射转换的示意图。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>