首页 > 试题广场 >

简述一下操作系统中的缺页中断

[问答题]
简述一下操作系统中的缺页中断
推荐

得分点

缺页、分类、中断、缺页中断发生时的事件顺序

参考答案

标准回答

  1. 概念

    缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。当图访问已映射在虚拟地址空间中,但是并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。通常情况下,用于处理此中断的程序是操作系统的一部分。如果操作系统判断此次访问是有效的,那么操作系统会尝试将相关的分页从硬盘上的虚拟内存文件中调入内存。而如果访问是不被允许的,那么操作系统通常会结束相关的进程。

  2. 分类

    • 软性页缺失:指页缺失发生时,相关的页已经被加载进内存,但是没有向 MMU 注册的情况。操作系统只需要在 MMU 中注册相关页对应的物理地址即可。
    • 硬性页缺失:硬性页缺失是指相关的页在页缺失发生时未被加载进内存的情况。
    • 无效页缺失:当程序访问的虚拟地址是不存在于虚拟地址空间内的时候,则发生无效页缺失。
  3. 中断

    中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。

加分回答

缺页中断发生时的事件顺序:

  • 硬件陷入内核,在堆栈中保存程序计数器,将当前指令的各种状态信息保存在特殊的 CPU 寄存器中;
  • 保存通用寄存器和其他易失的信息,以免被操作系统破坏;
  • 当操作系统发现一个缺页中断时,尝试发现需要哪个虚拟页面。通常一个硬件寄存器包含了这一信息,如果没有的话,操作系统必须检索程序计数器,取出这条指令,用软件分析这条指令,看看它在缺页中断时正在做什么;
  • 一旦知道了发生缺页中断的虚拟地址,操作系统检查这个地址是否有效,并检查存取与保护是否一致。如果不一致,向进程发出一个信号或杀掉该进程。如果地址有效且没有保护错误发生,系统则检查是否有空闲页框。如果没有空闲页框,执行页面置换算法寻找一个页面来淘汰;
  • 如果选择的页框“脏”了,安排该页写回磁盘,并发生一次上下文切换,挂起产生缺页中断的进程,让其他进程运行直至磁盘传输结束。无论如何,该页框被标记为忙,以免因为其他原因而被其他进程占用;
  • 一旦页框“干净”后,操作系统查找所需页面在磁盘上的地址,通过磁盘操作将其装入。该页面被装入后,产生缺页中断的进程仍然被挂起,并且如果有其他可运行的用户进程,则选择另一个用户进程运行;
  • 当磁盘中断发生时,表明该页已经被装入,页表已经更新可以反映它的位置,页框也被标记为正常状态;
  • 恢复发生缺页中断指令以前的状态,程序计数器重新指向这条指令;
  • 调度引发缺页中断的进程,操作系统返回调用它的汇编语言程序;
  • 该程序恢复寄存器和其他状态信息,返回到用户空间继续执行。
编辑于 2021-09-15 14:10:38 回复(0)

1、 首先说明什么是缺页。内存管理时我们采用的是虚拟内存,虚拟内存并不能与实际内存建立完全的映射关系。缺页就是虚拟内存无法与实际内存建立映射的一种情况。我们通过页表的状态位判断是否产生缺页。缺页发生时,我们就需要将虚拟内存对应的外存中的那一页调入内存。而整个的实现过程是通过中断进行的。

2、 这里的缺页中断的流程与普通中断没有区别。就是当系统发现缺页,从而产生中断。需要保存当前的状态,然后进入缺页中断处理程序,之后再恢复原来的状态,继续运行程序。

3、 具体的缺页中断处理也要分为两类:第一类是此时内存中还有空闲块,我们直接将缺页从外存中调入内存;第二类是内存已满,需要采用页面置换算法淘汰某页再进行调入。

发表于 2022-04-06 22:50:16 回复(0)

缺页中断

缺页中断是一种中断类型,当进程尝试访问当前不在物理 RAM 中的内存页时发生。这可能发生在进程尝试访问已经被换出到磁盘存储的页或进程没有分配该页的情况下。

缺页中断的原因

  1. 页不在内存中:页不在物理 RAM 中,操作系统需要从磁盘存储中检索它。
  2. 页保护:进程尝试访问操作系统保护的页,例如属于其他进程的页。
  3. 无效页表条目:页表条目无效或已损坏。

缺页中断处理

当缺页中断发生时,操作系统执行以下步骤:

  1. 中断处理:CPU 生成中断,操作系统的中断处理程序被调用。
  2. 缺页识别:操作系统识别导致缺页的页,并确定缺页的原因。
  3. 页替换:如果页不在内存中,操作系统使用页替换算法(例如 LRU、FIFO)选择一个页从内存中替换。
  4. 磁盘 I/O:操作系统从磁盘存储中读取所需的页到内存中。
  5. 页表更新:操作系统更新页表以反映页的新位置。
  6. 恢复进程:操作系统恢复导致缺页的进程,并继续执行。

缺页中断类型

  1. 主要缺页中断:页不在内存中,操作系统需要从磁盘存储中检索它。
  2. 次要缺页中断:页在内存中,但进程没有权限访问它。

缺页率

缺页率是操作系统中的一个重要性能指标。高缺页率可能表明:

  • 物理内存不足
  • 页替换算法不够高效
  • 内存分配策略不佳

通过最小化缺页中断,操作系统可以提高系统性能,减少磁盘 I/O,并提高系统响应速度。

发表于 2024-04-25 11:41:34 回复(0)
缺页中断就是系统要访问的页不在内存中,需要操作系统将访问的页加载到内存中才能进行访问
发表于 2022-05-23 10:05:43 回复(0)
缺页中断是程序访问一个尚未分配物理内存空间的地址时,系统会检测到这个情况,并触发异常,即缺页中断。
编辑于 2024-04-14 18:30:15 回复(0)

在操作系统中,程序执行时需要访问的内存可能不在物理内存中,而是在虚拟内存中,此时就会发生缺页中断。

缺页中断是指当程序访问一个尚未分配物理内存空间的虚拟地址时,操作系统会检测到这个情况,并触发一个异常,即缺页中断。操作系统通过中断服务程序来处理缺页中断。

缺页中断处理的基本过程如下:

  1. 当程序访问一个虚拟地址时,操作系统会检查该地址是否被映射到物理内存中,如果没有,则触发缺页中断。

  2. 缺页中断会暂停程序执行,将控制权交给操作系统内核。内核会检查缺失的页面是否在磁盘上,并进行必要的页面置换。

  3. 如果缺失的页面在磁盘上,操作系统将会将磁盘上的页面加载到空闲的物理页面中,并更新页表信息。

  4. 如果缺失的页面不在磁盘上,则操作系统会将程序终止并报告错误。

  5. 当操作系统处理完缺页中断后,程序会恢复执行,并重新访问之前发生缺页中断的地址。

缺页中断是操作系统实现虚拟内存管理的核心机制之一。通过缺页中断,操作系统可以在有限的物理内存下运行更多的程序,并能够支持更大的进程空间。同时,缺页中断还能够实现页面置换和页面回收等功能,提高系统的性能和资源利用率。

发表于 2023-02-20 19:25:12 回复(0)