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包含所有的中断或异常向量,每一个中断有对应的中断号,中断向量包括中断号以及对应的处理程序的入口地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值