文档章节

『阿男的Linux内核世界』*17 什么是硬件中断*

阿男weli
 阿男weli
发布于 2017/01/18 03:24
字数 646
阅读 79
收藏 0

『阿男的Linux内核世界』*17 什么是硬件中断*

这次我们讲讲硬件中断,硬件中断是CPU接受到的硬件发来的信号,比如我们使用键盘敲入一个字符,这个信号就是要发给CPU来处理。那么为了接受到这种信号,肯定是要在键盘和CPU之间有某种连接才可以。

现在的键盘一般是通过USB接口连接的,USB接口连着USB控制器,USB控制器连接着CPU吗?其实在CPU的组成里,有一个专门接受这些硬件发来的信号,也就是"硬件中断",的芯片,叫做APIC,全称Advanced Programmable Interrupt Controller^1,就是用来接受各种硬件发来的信号用的。然后这个芯片直接连接CPU,这样硬件发来的信号就可以发给CPU了。

这个芯片有Intel自己生产的,也有别的厂家生产的,目前Intel架构下在用的型号叫做8259,长这个样子:

输入图片说明

这个芯片很多厂家都在做,不只是Intel自己。

通过这个芯片,CPU就可以接收各种硬件发过来的信号,这个信号里面肯定得包含足够CPU处理的信息。比如键盘的输入信号,肯定要告诉CPU,用户按下的是哪个键,有了这个信息CPU才能处理细节。

操作系统会有各种硬件的驱动程序,负责处理CPU接收到的硬件中断。首先CPU知道发过来信号的硬件具体是哪一个,比如,是键盘还是鼠标,这样才可以让操作系统相关的驱动程序来处理。其次,CPU要给驱动程序提供硬件中断里面包含的具体信息,比如键盘按下了哪一个键,这样键盘的驱动程序就可以收到这个信息并作处理。

我们之前学习了IDT,知道了操作系统有一个中断处理程序的入口列表,还知道IDTR是Intel架构的CPU提供给我们的指向IDT的搞权限寄存器,因此明白CPU是怎样根据硬件中断的编号,来执行具体的中断处理程序。而硬件中断的处理程序则是一般由各个硬件的驱动程序提供。

关于硬件中断处理在Kernel里面的具体设计,我们后续再讲。这篇就先讲这么多。

© 著作权归作者所有

阿男weli
粉丝 16
博文 32
码字总数 24051
作品 0
私信 提问
加载中

评论(4)

programtic
programtic

引用来自“xwx314159”的评论

weli 好久不更了。。。

引用来自“programtic”的评论

转豆瓣去了,豆瓣转朋友圈去了。

引用来自“xwx314159”的评论

豆瓣上是前8篇的吧 19之后的转哪儿去了?微信朋友圈吗
是的,男哥的豆瓣广播有说明
x
xwx314159

引用来自“xwx314159”的评论

weli 好久不更了。。。

引用来自“programtic”的评论

转豆瓣去了,豆瓣转朋友圈去了。
豆瓣上是前8篇的吧 19之后的转哪儿去了?微信朋友圈吗
programtic
programtic

引用来自“xwx314159”的评论

weli 好久不更了。。。
转豆瓣去了,豆瓣转朋友圈去了。
x
xwx314159
weli 好久不更了。。。
从Unix分层内核栈以及中断处理看Linux内核的另类

如果你一开始就读linux内核,那么你的思路会变得非常开阔,如果你读过unix内核,那么你会惊叹于linux内核的巧妙,如果你连NT的内核也了解,那么你会发现linux内核真是个另类,本文从内核栈的...

晨曦之光
2012/04/10
218
0
多核下绑定硬件进程到不同CPU

硬件中断发生频繁,是件很消耗 CPU 资源的事情,在多核 CPU 条件下如果有办法把大量硬件中断分配给不同的 CPU (core) 处理显然能很好的平衡性能。现在的服务器上动不动就是多 CPU 多核、多网...

菜鸟东哥
2018/07/02
0
0
【翻译】ARM虚拟化软件和架构支持的设计,实现和评估

这是一篇论文:https://academiccommons.columbia.edu/doi/10.7916/D8D238J2/download 学习ARM虚拟化非常好的材料,这里翻译了其中几个章节。 --------------------------------------------...

daikunhai001
08/28
69
0
LINUX 和 WINDOWS 内核的区别

[声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1.html] 关于LINUX和WINDOWS的口水站已经很多了。本文企图从 技术角度来比较下2个主流 操作...

晨曦之光
2012/03/09
8K
1
Windows与Linux的异步IO在设计上的差异

在windows操作系统内核中,首先要明白四个概念,apc(异步过程调用),dpc(延迟过程调用),irp(io请求包)以及基于优先级的抢占式调度,下面分别解释: 1.apc。 异步过程调用类似于linux...

晨曦之光
2012/04/10
650
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部