中断,信号相关的一些概念
CPU的状态
cpu或cpu的计算核心总是处于以状态之一:
- 内核态,运行于进程上下文,内核代表进程运行于内核空间。
- 内核态,运行于中断上下文,内核代表硬件运行于内核空间。
- 用户态,运行于进程上下文,用户代码运行于用户空间。
中断分类
根据中断来源分类:
- 内部中断: 中断源来自CPU内部 (来源:软件中断指令,溢出,触发错误等,例如操作系统从用户态切换到内核态需借助cpu内部的软件中断)
- 外部中断: 中断源来自CPU外部,由外设提出请求。
根据中断是否可屏蔽分类:
- 可屏蔽中断:可通过中断控制器寄存器等方法屏蔽,屏蔽后,该中断不再得到响应。
- 不可屏蔽中断,不能被屏蔽,必须系统掉电。
硬中断,软中断,软件中断,信号
- 硬中断,软中断:硬中断,是外部设备对cpu的中断,对应的是中断处理的上半部,软中断对应的是中断处理的下半部。
- 软件中断:比如在涉及系统调用的场合,可以说通过软件中断,陷入内核。软件中断即通过软件指令引发的中断,和上面说的软中断不同,此处的软件中断指software, 上面的软中断指soft。
- 信号:由内核(或者其他进程)对某个进程的中断。
- 特别说明:软中断以及基于软中断的tasklet如果在某段时间内大量出现的话,内核会把后继的软中断放入ksoftirqd内核线程中执行。
- 总的来说:中断优先级>软中断>任何的进程和线程
本文内容源自宋宝华书籍:Linux设备驱动开发详解
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。