"); //-->
ABB O3EHa HENF315087R2 用于将应用程序看到的虚拟地址
O3EHa HENF315087R2 用于将应用程序看到的虚拟地址转换为物理地址由使用五金器具处理指令;[24]处理这种特定转换的硬件通常被称为存储器管理单元。页表中的每个条目都有一个标志,指示相应的页是否在实际内存中。如果是在真实内存中,页表项将包含存储该页的真实内存地址。当硬件对页进行引用时,如果该页的页表项指示它当前不在实际内存中,则硬件会引发页错误 例外,调用操作系统。
O3EHa HENF315087R2 系统可以具有例如用于整个系统的一个页表、用于每个地址空间或进程的单独页表、用于每个段的单独页表;类似地,系统可以没有段表,整个系统有一个段表,每个地址空间或进程有单独的段表,每个地址空间或进程有单独的段表地区在树上[e]每个地址空间或进程的区域表。如果只有一个页表,不同的应用程序同时运行使用单个虚拟地址范围的不同部分。如果有多个页表或段表,那么就有多个虚拟地址空间,并发的应用程序通过不同的页表重定向到不同的真实地址。
一些具有较小实际内存大小的早期系统,如SDS 940,已使用页面寄存器而不是用于地址转换的存储器中的页表。
分页管理程序
操作系统的这一部分创建并管理页表和空闲页框列表。为了确保有足够的空闲页帧来快速解决页面错误,系统可能会使用页面置换算法例如,一个最近最少使用(LRU)算法。在被添加到空闲队列之前,已被修改的被盗页帧被写回辅助存储器。在某些系统中,分页管理程序还负责管理不是从页表中自动加载的翻译寄存器。13365909307雄霸张少民
O3EHa HENF315087R2 通常,无法解决的页面错误会导致应用程序异常终止。然而,一些系统允许应用程序拥有针对这种错误的异常处理程序。根据具体情况,分页管理器可以用几种不同的方式处理分页错误异常:
如果虚拟地址无效,分页管理程序会将其视为错误。
如果页面有效且页面信息未加载到MMU中,则页面信息将存储到其中一个页面寄存器中。
如果页面未初始化,可以分配并清除新的页面框架。
如果有包含所需页面的被盗页面框架,该页面框架将被重用。
对于由于对读保护页面的写入尝试而导致的故障,如果它是写入时复制页面,则将分配空闲页面帧并复制旧页面的内容;否则,它将被视为错误。
如果虚拟地址是内存映射文件或分页文件中的有效页,将分配一个空闲页帧并读入该页。
在大多数情况下,会对页表进行更新,之后可能会清除翻译后备缓冲区(TLB),并且系统会重新启动导致异常的指令。
如果空闲页帧队列为空,那么寻呼管理程序必须使用相同的页面置换算法因为页面窃取。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。