Linux中断详解

中断与定时器

  • 中断的概念:指CPU在执行过程中,出现某些突发事件急待处理,CPU暂停执行当前程序,转去处理突发事件,处理完后CPU又返回原程序被中断的位置继续执行

中断的分类:

  • 内部中断:中断源来自CPU内部(软件中断指令、溢出、触发错误等)
  • 外部中断:中断源来自CPU外部,由外设提出请求

屏蔽中断和不可屏蔽中断:

  • 可屏蔽中断:可以通过屏蔽字被屏蔽,屏蔽后,该中断不再得到响应
  • 不可平布中断:不能被屏蔽

向量中断和非向量中断:

  • 向量中断:CPU通常为不同的中断分配不同的中断号,当检测到某中断号的中断到来后,就自动跳转到与该中断号对应的地址执行
  • 非向量中断:多个中断共享一个入口地址。进入该入口地址后再通过软件判断中断标志来识别具体哪个是中断也就是说向量中断由软件提供中断服务程序入口地址,非向量中断由软件提供中断入口地址
(典型的非向量中断首先会判断中断源,然后调用不同中断源的中断处理程序)
irq_handler()
{
...
int int_src = read_int_status();/*读硬件的中断相关寄存器*/
switch(int_src){//判断中断标志
case DEV_A:
dev_a_handler();
break;
case DEV_B:
dev_b_handler();
break;
...
default:
break;
}
...
}

定时器中断的原理

定时器在硬件上也以来中断,PIT(可编程间隔定时器)接收一个时钟输入,当时钟脉冲到来时,将目前计数值增1并与已经设置的计数值比较,若相等,证明计数周期满,产生定时器中断,并复位计数值。


定时器工作原理

Linux中断详解

Linux中断机制与信号

异常(也叫软件中断):当指令执行时由CPU控制单元产生,异常也称为"异步中断",因为只有在一条指令终止执行之后CPU才会发出中断。
分类:
1.处理器探测到的异常
2.故障
3.陷阱
4.异常终止
5.编程异常(软中断),int 指令是软中断指令。中断向量表是中断号和中断处理函数地址的对应表。int n --触发中断n,相应的中断处理函数的地址为:中断向量表地址+4*n
来源:程序的错误产生,内核必须处理的异常(例如:缺页和内核服务的请求-int)

软中断和硬中断的区别

  • 软中断(不可屏蔽):1。 编程异常通常叫做软中断。 2.软中断是通讯进程之间用来模拟硬件中断的一种通讯方式。 3.中断源发出中断请求或者是软中断信号以后,CPU或接收进程在适当的时机自动的进行中断处理或者是完成软中断信号对应的功能。4.软中断是软件实现的中断,也就是程序运行时其他的程序对它的中断,而硬中断是硬件实现的中断,是程序运行时设备对它的中断。5.软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。

  • 硬中断(可屏蔽,NMI除外):1.由外部事件引起,因此具有随机性和突发性;软中断是执行中断指令产生的,没有外部施加的中断请求信号,因此中断的发生不是随机的,而是程序安排好的。2. 硬件中断的中断响应周期CPU需要发中断回合信号(NMI不需要)。软中断的中断响应周期,CPU不需要发中断回合信号。3. 硬中断的中断号是由中断控制器提供的。软中断的中断号由指令直接指出,无需使用中断控制器。4.硬中断的处理程序要确保它能够快速的完成任务,这样才才不会等待较长的时间,称为上半部。

中断由异步的外部事件引起,外部事件和中断响应与正在执行的指令不存在关系80386有两根引脚INTR和NMI接受外部的中断请求信号,INTR接收可屏蔽中断请求,标识寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。处理器必须要接受和处理来自NMI的中断请求。在80386系统中,处理器在响应NMI的中断向量号固定为2.为了避免不可屏蔽的中断的嵌套,当接收到一个NMI中断请求时,处理器自动的屏蔽所有的NMI请求,直到执行中断指令IRET之后才会重新开放NMI中断请求。所以,NMI处理程序应该以IRET指令结束。

为了满足系统的实时性要求,中断的处理应该要越快越好。Linux中为了实现这个特点,当中断发生的时候,硬中断处理那一些短时间内就可以完成的工作,而将那些处理时间比较长的工作,放在中断之后来完成,也就是软中断来完成。Linux下的硬中断是可以嵌套的,没有优先级的概念。也就是说任何一个新的中断都可以打断正在执行的中断,但是同一种中断除外。软中断是不能嵌套的,但是相同类型的软中断可以在不同的CPU上并行执行。


1. 硬件提供的中断机制和约定

  • 中断向量寻址:硬件提供可供256个服务程序中断进入的入口,即中断向量;中断向量在保护模式下的实现机制是中断描述符表idt,idt的位置由idtr确定,idtr是个48位的寄存器,高32位是idt的基址,低16位为idt的界限(通常为2k=256*8);

示例:Linux的中断服务程序。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 1 中断介绍 1.1 简介 中断控制是计算机发展中一种重要的技术。最初它是为克服对I/O接口控制采用程序查询所带来...
    疯狂小王子阅读 8,057评论 0 9
  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,106评论 8 114
  • 一,什么是中断? 1.中断的基本概念 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得...
    小东门儿阅读 933评论 1 2
  • http://blog.csdn.net/maochengtao/article/details/30713459...
    3e1094b2ef7b阅读 965评论 0 2
  • 上海的天气是越来越热了,今天买饮料的时候看到大楼的保安在买饭,然后听到他问便利店的阿姨这里最便宜的冰糕(雪糕)多少...
    颖子说阅读 619评论 0 0