操作系统---(35)缺页中断与缺页中断处理过程

1. 缺页中断

在这里插入图片描述

2. 缺页中断的断点

在这里插入图片描述
缺页中断是指令执行过程中产生的中断,而非(一般的中断)在一条指令执行完成后产生的。

3. 缺页中断的断点压入

  • 当CPU执行指令希望访问一个不在内存的页面时,将产生缺页中断,系统开始运行中断处理程序。
  • 此时指令计数器(PC) 的值尚未来得及增加就被压入堆栈,因此压入的断点必然是本次被中断的指令地址,而非下一条指令的地址。

4. 缺页中断处理过程

(1) 保留进程上下文
(2)判断内存是否有空闲可用帧?若有,则获取一个帧号No,转(4) 启动I/O过程。若无,继续(3)
(3)腾出一个空闲帧,即:
(3)-1调用置换算法,选择一个淘汰页PTj。
(3)-2 PTj(S)=0 ; //驻留位置0
(3)-3 No= PTj (F); //取该页帧号
(3)-4 若该页曾修改过,则
(3)-4-1 请求外存交换区上一个空闲块B ;
(3)-4-2 PTj(D)=B ;//记录外存地址
(3)-4-3启动I/O管理程序,将该页写到外存上。
(4)按页表中提供的缺页外存位置,启动I/O,将缺页装入空闲帧No中。
(5)修改页表中该页的驻留位和内存地址。PTi(S)=1 ; PTi(F) =No。
(6)结束。

5.包含缺页中断的地址重定位

在这里插入图片描述

  • 9
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当一个进程访问的页面或段不在主存储器中时,操作系统会产生缺页中断或缺段中断操作系统需要处理这些中断,以便将缺失的页面或段调入主存储器,使得进程可以继续执行。下面分别介绍缺页中断和缺段中断处理过程: 1. 缺页中断处理: (1)操作系统会保存当前进程的上下文,并将控制权转移到内核态。 (2)操作系统会检查进程请求的页面是否可用,如果可用,则直接将页面映射到进程的地址空间中,并将控制权返回给进程。 (3)如果请求的页面不可用,则操作系统会选择一个页面将其从主存储器中替换出去,并将请求的页面从硬盘中读入主存储器中,然后将其映射到进程的地址空间中,并将控制权返回给进程。 (4)操作系统会更新页表,记录页面的状态和位置信息。 (5)最后,操作系统会恢复进程的上下文,使其继续执行。 2. 缺段中断处理: (1)操作系统会保存当前进程的上下文,并将控制权转移到内核态。 (2)操作系统会检查进程请求的段是否可用,如果可用,则直接将段映射到进程的地址空间中,并将控制权返回给进程。 (3)如果请求的段不可用,则操作系统会选择一个段将其从主存储器中替换出去,并将请求的段从硬盘中读入主存储器中,然后将其映射到进程的地址空间中,并将控制权返回给进程。 (4)操作系统会更新段表,记录段的状态和位置信息。 (5)最后,操作系统会恢复进程的上下文,使其继续执行。 需要注意的是,不同的操作系统对于缺页中断和缺段中断处理方式可能会有所不同。例如,在Linux操作系统中,缺页中断处理过程涉及到页面置换算法的选择,而缺段中断处理过程则需要考虑段的权限和保护等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值