操作系统 页面错误处理
在本文中,您将了解操作系统中的页面错误处理及其步骤。
操作系统中的页面错误是什么
页面错误更像是一个错误。如果程序尝试访问不存在于物理内存(主内存)中的内存块,则会发生页面错误。该错误指示操作系统将所有数据追踪到虚拟内存管理,并将其从二级存储器重新定位到其主内存中,如硬盘。
如果所请求的页面未加载到内存中,则会发生页面错误陷阱。页面错误主要会引发异常,用于通知操作系统从虚拟内存中检索“页面”以继续操作。一旦所有数据都被放入物理内存中,程序将恢复正常操作。页面错误处理过程在后台进行,因此用户不会察觉到。
- 计算机的硬件跟踪到内核和程序计数器通常保存在堆栈中。CPU寄存器保存有关指令当前状态的信息。
- 启动一个汇编程序,它会保存通用寄存器和其他易失性数据,以防止操作系统破坏它。
页面错误处理
当访问被标记为无效的页面时,会发生页面错误。在地址通过页面表进行转换时,分页硬件会注意到设置了无效位,从而触发操作系统陷阱。陷阱主要是由于操作系统未能将所需页面加载到内存中引起的。
现在,让我们了解操作系统中页面错误处理的过程:
- 首先,为该进程创建一个内部表,以评估引用是有效还是无效的内存访问。
- 如果引用变为无效,则系统进程将被终止。否则,页面将被分页。
- 然后,空闲帧列表会在系统中找到空闲帧。
- 现在,会安排磁盘操作以从磁盘中获取所需页面。
- 当I/O操作完成时,进程的页表将用新的帧号更新,并更改无效位。现在,它是一个有效的页面引用。
- 如果发现任何页面错误,则从起始位置重新开始这些步骤。
页面错误术语
操作系统中存在各种页面错误术语。页面错误的一些术语如下:
1. 页面命中
当CPU尝试从主存储器获取所需页面,并且该页面存在于主存储器(RAM)中时,称为“页面命中”。
2. 页面失效
如果所需页面在主存储器(RAM)中不存在,则称为“页面失效”。
3. 页面错误时间
在加载所需页面后,从辅助存储器获取页面并从主存储器中恢复它所需的时间称为“页面错误时间”。
4. 页面错误延迟
线程在内存中定位页面错误的速率被称为“页面错误率”。页面错误率以每秒为单位进行测量。
5. 硬页面错误
如果所需页面存在于硬盘的页面文件中,则称为“硬页面错误”。
6. 软页错误
如果所需页面未在硬盘上找到,但在内存中的其他位置找到,则称为 “软页错误” 。
7. 次要页错误
如果进程需要数据,而该数据存在于内存中,但此时正在分配给其他进程,则称为 “次要页错误” 。