linux中断子系统
参考引用:http://www.wowotech.net/sort/irq_subsystem
wowotech:一个很好的linux技术博客。
一、概述
- 目的
kernel管理硬件设备的方式:轮询、中断。中断效率高且反应快于轮询,因为它利用了硬件本身执行指令前会做的‘中断电信号周期轮询’。
- 分类
中断分为同步(synchronous)和异步(asynchronous)。
同步也称为异常,由CPU指令错误产生,分为故障、陷阱和中止;
异步也称为中断,由外部电信号产生,对于x86分为可屏蔽(INTR)和不可屏蔽中断(NMI);对于ARM分为IRQ和FIQ;
对于x86 CPU,有两个中断输入pin:INTR和NMI。当CPU接到INTR中断后,会通过INTA pin应答,表示收到中断
- 中断控制器:PIC、APIC及GIC
PIC – Programmable Interrupt Controller 可编程中断控制器(x86 UP)
APIC – Advanced Programmable Interrupt Controller 高级可编程中断控制器(x86MP)
GIC – Generic Interrupt Controller ARM公司设计的通用中断控制器(支持MP)
通过cat /proc/interrupts查看。
UP:Uni-processor(单核);MP:Multiple-processor(多核)。
- 其他
二、初始化
三、处理过程
四、API
五、问题
系统中有8个CPU,有2000个外设中断要处理,这时候你如何设计系统中的interrupt controller?(采用GIC和采用APIC)
六、其他
linux中断子系统的更多相关文章
- Linux中断子系统:级联中断控制器驱动
Linux中断子系统 Linux中断子系统是个很大的话题,如下面的思维导图所示,包含硬件.驱动.中断上半部.中断下半部等等.本文着眼于中断控制器(PIC),特别是级联中断控制器驱动部分,对驱动的设计和 ...
- linux中断子系统:中断号的映射与维护初始化mmap过程
本文均属自己阅读源代码的点滴总结.转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email:gzzaigcn2009@163.com 写在前沿: 好久好久没有静下心来整理一些东西了 ...
- 【原创】Linux中断子系统(二)-通用框架处理
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- 【原创】Linux中断子系统(三)-softirq和tasklet
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- 【原创】Linux中断子系统(一)-中断控制器及驱动分析
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- 【原创】Linux中断子系统(四)-Workqueue
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- Linux kernel的中断子系统之(四):High level irq event handler
返回目录:<ARM-Linux中断系统>. 总结:从架构相关的汇编处理跳转到Machine/控制器相关的handle_arch_irq,generic_handle_irq作为High l ...
- Linux中断(interrupt)子系统之一:中断系统基本原理【转】
转自:http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于AR ...
- Linux中断(interrupt)子系统之一:中断系统基本原理
这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层.内核版本基于3.3.虽然内核的版本不断地提升,不 ...
随机推荐
- SSM登陆
简单的SSM登陆 jsp <form action="${pageContext.request.contextPath }/user/login.action"> & ...
- Java向服务器上传图片
在比较绚丽多彩的网站或者业务逻辑比较丰富的程序设计过程中,图片的相关操作时必不少的,尤其时图片的上传.还没有彻底摆脱纸质办公可能需要将纸质的文件备份上传,网站的建设可能需要上传用户头像.图片描述等等, ...
- Java获取客户端真实IP地址
Java代码 import javax.servlet.http.HttpServletRequest; /** * 获取对象的IP地址等信息 */ public class IPUtil { /** ...
- Linux 性能优化排查工具
下图1为 Linux 性能优化排查工具的总结 图1 诊断 CPU 工具 查看 CPU 核数 总核数 = 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU ...
- 如何在浏览器中运行 VS Code?
摘要: WEB IDE新时代! 作者:SHUHARI 的博客 原文:有趣的项目 - 在浏览器中运行 Visual Studio Code Fundebug按照原文要求转载,版权归原作者所有. 众所周知 ...
- 13 个 NPM 快速开发技巧
摘要: 玩转npm. 作者:前端小智 原文:13 个 npm 快速开发技巧 Fundebug经授权转载,版权归原作者所有. 为了保证的可读性,本文采用意译而非直译. 每天,数以百万计的开发人员使用 n ...
- Shel脚本-初步入门之《01》
Shel脚本-初步入门-什么是 Shell 1.什么是 Shell Shell 是一个命令解释器,它的作用是解释执行用户输入的命令及程序等.Shell 存在于操作系统的最外层,负责与用户直接对话,把用 ...
- Rust中的Trait
类似接口,但和php中的trait又有点不一样. pub trait Summary { fn summarize(&self) -> String; } pub struct NewA ...
- c# 第19节 Arraylist数组
本节内容: 1:ArrayList是什么 2:ArrayList数组的添加 3:ArrayList的方法 4:ArrayList 的删除 4:ArrayList 的遍历与查找 1:ArrayList是 ...
- IDEA安装maven和设置自动配置下载包
在我们开发的过程中如果环境配置好了,对于我们开发将优很大作用,减少可开发的时间,接下来我就讲解一下maven的安装和配置,以及在idea上配置,希望此教程同时对大家优帮助. 1.1.下载maven和安 ...