操作系统理论 第六章(输入输出系统)—第三节(中断处理程序)

写在前面:

  1. 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili

一、概述

        当一个进程请求I/O操作时,该进程将被挂起,直到I/O设备完成I/O操作后,设备控制器便向CPU发送一个中断请求,CPU响应后便转向中断处理程序中断处理程序执行相应的处理,处理完后解除相应进程的阻塞状态

        中断的大部分内容在《计算机组成原理》中有详细介绍,比如中断的分类、中断屏蔽、嵌套中断等,这里不再赘述。

二、中断处理程序的处理过程

1、测定是否有未响应的中断信号

        每当设备完成一个字符(字或数据块)的读入(或输出),设备控制器便向处理机发送一个中断请求信号,请求处理机将设备已读入的数据传送到内存的缓冲区中(读入),或者请求处理机将要输出的数据(输出)传送给设备控制器。

        程序每当执行完当前指令后,处理机都要测试是否有未响应的中断信号,若没有继续执行下一条指令,若有则停止原有进程的执行,准备转去执行中断处理程序,为把处理机的控制权转交给中断处理程序做准备。

2、保护被中断进程的CPU环境

        在把控制权转交给中断处理程序之前,需要先保护被中断进程的CPU环境,以便以后能恢复运行。首先需要保存的是从中断现场恢复到当前进程运行所需要的信息,通常由硬件自动将处理机状态字(PSW)和保存在程序计数器(PC)中下一条指令的地址保存在中断保留区(栈)中,然后把被中断进程的CPU现场信息,即将包括所有CPU寄存器的(如通用寄存器、段寄存器等)内容都压入中断栈中,因为在中断处理时可能会用到这些寄存器。

3、转入相应的设备处理程序

        由处理机对各个中断源进行测试,以确定引起本次中断的I/O设备,并向提供中断信号的设备发送确认信号,在该设备收到确认信号后,就立即取消它所发出的中断请求信号,然后,将相应的设备中断处理程序的入口地址装入到程序计数器中,这样,当处理机运行时,便可自动地转向中断处理程序。

4、中断处理

        该程序首先从设备控制器中读出设备状态,以判别本次中断是正常完成中断还是异常结束中断:

        ①若是正常完成中断,中断程序便做结束处理。假如这次是字符设备的读操作,则来自输入设备的中断是表明该设备已经读入了一个字符(字)的数据,并已放入数据寄存器中,此时中断处理应将该数据传送给CPU,再将它存入缓冲区中,并修改相应的缓冲区指针,使其指向下一个内存单元。若还有命令,可再向控制器发送新的命令,进行新一轮的数据传送。

        ②若是异常结束中断,则根据发生异常的原因做相应的处理。

5、恢复CPU的现场并退出中断

        当中断处理完成以后,需要恢复CPU的现场,退出中断,但是,此刻是否返会到被中断的进程,取决于两个因素:

        ①本中断是否采用了屏蔽(禁止)中断方式,若是,就会返回被中断的进程。

        ②如果采用的是中断嵌套方式,且没有优先级更高的中断请求I/O,在中断完成后仍会返回被中断的进程,反之,系统将处理优先级更高的中断请求。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
I/O设备管理是操作系统中的一个重要组成部分,它负责管理计算机系统中的各种输入输出设备,包括硬盘、键盘、鼠标、打印机等。在本章的下半部分,我们将继续深入讨论I/O设备管理的相关内容。 1. I/O设备驱动程序 I/O设备驱动程序操作系统中的一个重要组成部分,它负责将操作系统和I/O设备之间进行交互。通常来说,每一种I/O设备都需要对应一个相应的驱动程序。I/O设备驱动程序通常由操作系统厂商提供,也可以由第三方厂商提供。 2. 中断处理程序 当一个I/O设备完成了一个输入输出操作时,它会向CPU发送一个中断请求,以通知CPU有一个I/O设备需要处理。CPU在接收到中断请求后,会暂停当前正在执行的任务,并执行中断处理程序中断处理程序操作系统中的一个重要组成部分,它负责处理中断请求,并将结果返回给I/O设备驱动程序。 3. 缓存管理 缓存是操作系统中的一个重要概念,它指的是在内存中存储的数据副本。I/O设备管理中的缓存可以分为两种,一种是输入缓存,用于存储从I/O设备读取的数据;另一种是输出缓存,用于存储将要写入I/O设备的数据。缓存管理的目的是提高I/O设备的读写效率,减少CPU对I/O设备的访问次数。 4. 设备控制块 设备控制块是操作系统中的一个数据结构,用于管理I/O设备。每一个I/O设备都有一个相应的设备控制块,它包含了I/O设备的基本信息,包括设备类型、设备状态、缓存信息等。设备控制块还可以用于实现多任务操作,即同时处理多个I/O设备请求。 5. 通道控制程序 通道控制程序操作系统中的一个重要组成部分,它负责管理计算机系统中的通道设备。通道设备是一种高速输入输出设备,通常用于处理大量数据的输入输出操作。通道控制程序可以将多个I/O设备的请求合并,以提高系统输入输出效率。 总之,I/O设备管理是操作系统中的一个重要组成部分,它涉及到多个方面的内容,包括I/O设备驱动程序中断处理程序、缓存管理、设备控制块和通道控制程序等。在实际应用中,需要根据具体的需求和系统架构,选择合适的I/O设备管理策略,以提高系统的性能和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值