美文网首页计算机基础知识
操作系统拾遗--中断相关

操作系统拾遗--中断相关

作者: FrankerSung | 来源:发表于2019-02-25 20:19 被阅读0次

0. 概念

中断:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
其中引起中断的原因或者说发出中断请求的来源叫做中断源

软件中断:并不是真正的中断,它们只是可被调用执行的一般程序。例如:ROM BIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理 中断等,)以及DOS的系统功能调用(INT 21H)等都是软件中断。

硬件中断之外部中断[可屏蔽]:一般是指由计算机外设发出的中断请求,如:键盘、打印机、定时器等。外部中断是可屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。

硬件中断之内部中断[不可屏蔽]:是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。

非屏蔽中断

时钟中断:Clock or timer interrupts are interrupts from your timers present on your board. These timers are configured during board initialization where you can define the interrupt period.

  1. Does it occur every clock tick?
    Timers do not depend on tick. Both are same. After each interrupt or tick a variable called jiffies is incremented. This variable shows number of ticks or interrupts from system boot.
  2. Does it occur every second?
    Timers are configurable. You can configure to generate interrupt after 1 second or 1 millisecond, etc.
  3. Is it some kind of an alarm that has to be triggered?
    Alarms use timer devices too. But ticks or interrupts and alarm are different. Alarm is started for some task but ticks are recorded from boot up and not modified manually.

1. 分类

根据中断源的不同,可以把中断分为 硬件中断 和 软件中断。
硬件中断可以分为外部中断和内部中断


2. 中断机制?

2.1. 中断请求

中断请求是由中断源向CPU发出中断请求信号。外部设备发出中断请求信号要具备以下两个条件:

  1. 外部设备的工作已经告一段落。例如输入设备只有在启动后,将要输入的数据送到接口电路的数据寄存器(即准备好要输入的数据)之后,才可以向CPU发出中断请求。
  2. 系统允许该外设发出中断请求。如果系统不允许该外设发出中断请求,可以将这个外设的请求屏蔽。当这个外设中断请求被屏蔽,虽然这个外设准备工作已经完成,也不能发出中断请求。
2.2. 中断响应、处理和返回

当满足了中断的条件后,CPU就会响应中断,转入中断程序处理。具体的工作过程如下:

  1. 关闭中断信号接收器
  2. 保存现场(context)
  3. 给出中断入口,转入相应的中断服务程序
  4. 处理完成,返回并恢复现场(context)
  5. 开启中断信号接收器
2.3.中断排队和中断判优先级
  1. 中断申请是随机的,有时会出现多个中断源同时提出中断申请。
  2. CPU每次只能响应一个中断源的请求。
  3. CPU不可能对所有中断请求一视同仁,它会根据各中断源工作性质的轻重缓急,预先安排一个优先级顺序。当多个中断源同时申请中断时,即按此优先级顺序进行排队,等候CPU处理。

3. 中断与异常

对CPU来说是 和当前CPU所执行的指令的关系 CPU接下来的事情 程序员和用户的态度
中断 被动的 异步的 没关系 跳转到对应的ISR 希望有对应的中断,以使得CPU可以响应对应的中断,执行对应的ISR
异常 被动的 同步的 有关系,因为就是当前指令执行出问题,才有的异常 跳转到对应的异常处理 不希望出现异常,如果出现了,那往往是指令执行出现某些错误了
陷阱 主动的 同步的 有关系,就是执行当前软中断指令,才进入的软中断 执行对应的软中断处理函数 对于想要实现调试功能的程序员,有需要此陷阱的必要,其他人不用关心此点

参考
https://blog.csdn.net/linkedin_35878439/article/details/79013742
https://www.crifan.com/files/doc/docbook/interrupt_related/release/htmls/interrupt_exception_trap_relation.html

相关文章

  • 操作系统拾遗--中断相关

    0. 概念 中断:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新...

  • 操作系统拾遗-中断与系统调用

    中断 概念 操作系统是中断驱动的,整个操作系统离不开中断机制,所谓的中断机制,宏观上讲就是cpu在执行某件事情时可...

  • ios开发之线程

    线程对操作系统来说就是一段代码以及运行时数据.操作系统回味每个线程保存相关的数据,当接收到来自CPU的时间片中断事...

  • 操作系统:中断

    控制和状态寄存器:用于控制处理器的操作,通常由操作系统代码使用,在某种特权级别下可以访问、修改 常见的控制和状态寄...

  • 操作系统中断

    1 中断机制的产生 早期计算机各个程序只能串行执行、系统资源利用低。为了解决上述问题,人们就发明了操作系统,引入了...

  • 操作系统笔记5-导论(五)

    操作系统的执行 现代操作系统是由中断驱动的,在没有用户需要响应时,操作系统会等待直到某个事件的发生。事件总是由中断...

  • 每日记录之操作系统的中断

    操作系统的中断 计算机遇到一些更紧急的工作,中断当前的工作,去处理更紧急的工作 中断的类别 外部中断,内部中断,软...

  • windows异常

    异常处理 异常和中断是由CPU触发的.操作系统怎么接收到异常的?IDT表, 操作系统在启动时,就会将中断处理的地址...

  • 1. 操作系统的实时性

    核心在于,内核是否可以无条件的被中断被抢占。 真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常...

  • Linux IO多路复用底层原理(刚接触,知识还不成体系,等懂得

    Linux 操作系统中断 什么是系统中断系统处理中断的过程: 首先由需要紧急处理的程序向处理器发送中断请求,处理器...

网友评论

    本文标题:操作系统拾遗--中断相关

    本文链接:https://www.haomeiwen.com/subject/rqwjyqtx.html