博客
关于我
Linux 内核处理中断全过程解析
阅读量:683 次
发布时间:2019-03-15

本文共 960 字,大约阅读时间需要 3 分钟。

中断:现代 CPU 工作方式的核心机制

中断是现代 CPU 工作方式中至关重要的机制。它允许 CPU 在执行程序时暂停当前任务,立即响应某些事件或条件。例如,当你在键盘上敲击键盘时,CPU会被中断以便读取输入。这一过程速度极快,以至于用户通常不会察觉。

中断请求(IRQ)的定义

中断请求(IRQ)是由可编程中断控制器(PIC)发起的信号,目的是中断 CPU 并执行中断服务程序(ISR)。中断服务程序是一个小型程序,处理具体事件,其操作取决于中断的触发原因。正在运行的进程会在中断服务程序执行期间被暂停。

过去,中断控制器(PIC)独立处理中断请求,负责多个硬件设备的中断事件。然而,现代 CPU 内置了高级可编程中断控制器(APIC),每个核心都有自己的 APIC,独立管理中断请求。

中断类型

中断可以根据其来源分为三种类型。

硬件中断

当硬件设备准备好提供数据时(如键盘按键或网络数据包到达),设备会发送中断请求(IRQ)。内核预先注册的中断服务程序(ISR)会被调用处理相关事件。

软件中断

软件中断通过计时器实现,确保不同任务(如视频播放)能够同步运行。计时器会周期性地触发中断,管理任务的执行。

异常

异常(Exception)是 CPU 在执行指令时遇到不可恢复错误时触发的中断。例如,除零错误或缺页错误会导致中断。异常可以进一步分为错误(可修复)、陷阱(用于调试)和终止(严重错误,终止进程)。

异常的细分

  • 错误:系统可以纠正的异常,例如缺页错误。CPU会暂停执行,加载需要的页,然后恢复程序运行。
  • 陷阱:用于调试,允许调试器读取变量值。例如,设置断点时会触发陷阱。
  • 终止:由硬件错误或值不一致引起,最严重的中断,终止进程。
  • 动手实践

    中断请求(IRQ)按优先级排序(0为最高优先级)。前32个中断由 CPU 管理,后续中断由 APIC 处理。中断描述表(IDT)记录中断请求和 ISR 的映射关系。要查看已注册的中断,可以执行命令:

    cat /proc/interrupts

    这将显示中断向量号、发生次数、硬件来源等信息。

    总结

    中断是硬件、驱动和软件协同工作的基础。Linux 内核确保了中断处理的高效,用户通常察觉不到其存在。深入了解中断机制,可以参考《Linux Inside》和内核教程仓库。

    转载地址:http://antmz.baihongyu.com/

    你可能感兴趣的文章
    NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
    查看>>
    NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
    查看>>
    NLP三大特征抽取器:CNN、RNN与Transformer全面解析
    查看>>
    NLP学习笔记:使用 Python 进行NLTK
    查看>>
    NLP度量指标BELU真的完美么?
    查看>>
    NLP的不同研究领域和最新发展的概述
    查看>>
    NLP的神经网络训练的新模式
    查看>>
    NLP采用Bert进行简单文本情感分类
    查看>>
    NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
    查看>>
    NLP项目:维基百科文章爬虫和分类【02】 - 语料库转换管道
    查看>>
    NLP:使用 SciKit Learn 的文本矢量化方法
    查看>>
    nmap 使用方法详细介绍
    查看>>
    Nmap扫描教程之Nmap基础知识
    查看>>
    nmap指纹识别要点以及又快又准之方法
    查看>>
    Nmap渗透测试指南之指纹识别与探测、伺机而动
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>