以下关于存储管理单元(MMU)的说法中,错误的是( )。(2016年嵌入式系统设计师) A. MMU使各个任务作为各自独立的程序在其私有存储空间中运行 B. MMU使运行的任务必须知道其他任务的存储

以下关于存储管理单元(MMU)的说法中,错误的是(  )。(2016年嵌入式系统设计师)
A. MMU使各个任务作为各自独的程序在其私有存储空间中运行
B. MMU使运行的任务必须知道其他任务的存储需求情况
C. MMU提供了一些资源以允许使用虚拟存储器
D. MMU作为转换器,将程序和数据的虚拟地址转换成实际的物理地址






参考答案:B
参考解析:MMU是Memory Management Unit的缩写,中文名是存储管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制单元,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统支持等功能。  
任何时候,计算机上都存在一个程序能够访问的地址集合,我们称之为地址范围。这个范围的大小由CPU的位数决定,例如十个32位的CPU,它的地址范围是0~0xFFFFFFFK4G),而对于一个64位的CPU,它的地址范围为0~0xFPTFFFFFFFFFFFFFdeE)。这个范围就是我们的程序能够产生的地址范围,我们把这个地址范围称为虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址,大多数时候我们的系统所具备的物理地址空间只是虚拟地址空间的一个子集。这里举一个最简单的例子直观地说明这两者,对于一台内存为256M的32bitx86主机来说,它的虚拟地址空间范围是0~0xFFFFFFFF(4G),而物理地址空间范围是0x00000000~0x0FFFFFFF(256M)。  
在没有使用虚拟存储器的计算机上,地址被直接送到内存总线上,使具有相同地址的物理存储器被读写;而在使用了虚拟存储器的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到存储器管理单元MMU,把虚拟地址映射为物理地址。  
对于多用户多进程的操作系统,需要MMU才能达到为每个用户进程都拥有自己独立的地址空间的目标。使用MMU,操作系统划分出一段地址区域,在这块地址区域中,每个进程看到的内容都不一定一样。例如Microsoft Windows操作系统将地址范围4M-2G划分为用户地址空间,进程A在地址0X400000(4M)映射了可执行文件,进程B同样在地址0X400000(4M)映射了可执行文件,如果A进程读地址0X400000,读到的是A的可执行文件映射到RAM的内容,而进程B读取地址0X400000时,则读到的是B的可执行文件映射到RAM的内容。这就是MMU在当中进行地址转换所起的作用。
MMU还提供硬件机制的内存访问授权。当应用程序的所有进程共享同一存储器空间时,任何一个进程将有意或无意地破坏其他进程的代码、数据或堆栈。异常进程甚至可能破坏内核代码或内部数据结构。例如进程中的指针错误就能轻易使整个系统崩溃,或至少导致系统工作异常。就安全性和可靠性而言,基于进程的实时操作系统(RTOS)的性能更为优越。为生成具有单独地址空间的进程,RTOS只需要生成一些基于RAM的数据结构并使MMU加强对这些数据结构的保护。基本思路是在每个关联转换中“接入”一组新的逻辑地址。MMU利用当前映射,将在指令调用或数据读写过程中使用的逻辑地址映射为存储器物理地址。MMU还标记对非法逻辑地址进行的访问,这些非法逻辑地址并没有映射到任何物理地址。这些进程虽然增加了利用查询表访问存储器所固有的系统开销,但其实现的效益很高。在进程边界处,疏忽或错误操作将不会出现,用户接口进程中的缺陷并不会导致其他更关键进程的代码或数据遭到破坏。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:https://scpro.cn/v/e28ff743b77b11ee.html

最近发表