我是靠谱客的博主 平常秀发,最近开发中收集的这篇文章主要介绍Linux中断中断概述中断类型中断中断流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

中断概述

中断
—外部中断(硬件中断)/proc/interrupts
------可屏蔽中断(INTR信号线)
------不可屏蔽中断(NMI信号线,掉电等)
—内部中断
----软件中断:由程序员编程调用,int + 立即数。例如系统调用是int 0x80
------异常

软中断:中断处理下半部,watch -d cat /proc/softirqs,软中断是以内核线程的方式执行的,ps -aux | grep softirqs

中断类型

异常

  • exception,又称同步中断。指令执行时由CPU控制单元产生
  • 故障,fault:通常可以纠正,程序计数器保存引起故障的指令地址,故障处理程序完成后再次执行该指令,例如缺页
  • 陷阱,trap:程序计数器保存程序随后执行的指令地址,陷阱处理程序完成后继续原来程序的执行,例如断点、溢出、调试指令
  • 终止:abort:严重的错误,无法恢复,程序计数器无法保存引起故障的指令地址,受影响的进程被强制终止,例如:访存错误、总线错误、cache错误
  • 编程异常:由于程序的错误而产生(例如:除0),操作系统通过signal来处理

中断

  • interrupt,又称异步中断。其它硬件设备按照CPU时钟信号随机产生或编程设置。
  • 可屏蔽中断:可屏蔽中断有两种状态:屏蔽的和非屏蔽的,控制单元将忽略状态为“屏蔽的”的中断
  • 非屏蔽中断:只有几个紧急事件(硬件故障)才能引起非屏蔽中断
  • 硬件中断
  • 软件中断:不可被屏蔽

中断

中断的特点

  • 中断随时会到来,内核应尽可能快速的处理完中断。关键而紧急的部分内核立即执行,其余部分则推迟执行
  • 中断应允许嵌套,当内核正执行中断处理程序时,接收到另一个中断
  • 在临界区,中断必须被禁止。必须尽可能的限制这样的临界区,中断处理程序在大部分时间应该保持开中断

中断流程

  • 中断或异常处理程序不是一个进程,因此在此过程不存在进程切换

中断描述符表IDT

  • idtr寄存器:IDT的虚拟基地址及其限制(最大长度),即IDT所在的位置
  • IDT包含所有的中断或异常向量,每一个中断有对应的中断号,中断向量包括中断号以及对应的处理程序的入口地址

最后

以上就是平常秀发为你收集整理的Linux中断中断概述中断类型中断中断流程的全部内容,希望文章能够帮你解决Linux中断中断概述中断类型中断中断流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部