指北 | 聊聊中断机制

本文介绍了中断的基本概念,包括中断源、中断信号、中断控制器和中断处理器,并详细阐述了操作系统的中断机制,包括处理器之外的中断事件、异常和系统异常。接着,文章探讨了Java的中断机制,强调了线程之间的中断信号传递和处理。最后,文章提出了设计一个异步线程间中断系统的需求和思路,讨论了如何在复杂的线程交互中实现有效的中断管理。
摘要由CSDN通过智能技术生成

什么是中断


中断其实是一种“中断”事件,中断具体代表什么意思需要考虑它所处的上下文环境参照对象是谁。考虑事件,我们可以简单把中断抽象为这样一种模型:

当我们分析某种中断事件时,我们需要搞清楚这四个对象:

中断源

  • 中断源是谁
  • 中断源在什么条件下触发中断
  • 中断源如何触发

中断信号

  • 信号具体指的是什么
  • 信号是否需要存储
  • 如何存储

中断控制器

  • 中断信号的管理

比如说中断源发送的信号是否屏蔽,信号是否可被中断处理器重复处理,信号的处理是否有优先级...

中断处理器

  • 如何获取到信号
  • 拿到信号做什么样的操作
  • 处理完信号后做什么样的操作

在实际的中断事件中,并不一定刚好有上面提到的这四类对象,可能更复杂可能更简单化。但是当我们考虑中断事件时,需要明确应该有类似功能的“对象”承担这这样的逻辑。

下面我们主要围绕操作系统的中断机制Java的中断机制如何设计一个异步线程间的中断系统这三部分简单探讨下。

操作系统的中断机制


与操作系统有关的中断,通常是指:程序在执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行, 转去执行相应的事件处理程序,待处理完成 后再返回原程序被中断处或调度其他程序执行的过程。

按照中断事件本身的不同,可以划分为处理器之外的中断事件异常,系统异常

处理器之外的中断事件

指由外围设备发出的信号引起的,与当前运行指令无关的中断事件。示意图如下:

我们分别以上述四个对象来看:

  • 中断源

中断源:外部设备,如打印机,键盘,鼠标等。

触发条件:如外围设备报告I/O状态的I/O中断;外围设备发出的对应信号中断,如时钟中断,键盘/鼠标对应信号的中断,关机/重启动中断等。

触发方式:由外部设备向中断控制器发出中断请求IRQ。

  • 中断信号

也就是说中断源通知给中断控制器的是什么。

可以是通过一条信号线上产生特定的电平(利用高低电平表示是否中断两种状态),也可以在总

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值