转载出色【转】中断具体解析

转载出色【转】中断具体解析

ID:29496075

大小:96.24 KB

页数:18页

时间:2018-12-20

转载出色【转】中断具体解析_第1页
转载出色【转】中断具体解析_第2页
转载出色【转】中断具体解析_第3页
转载出色【转】中断具体解析_第4页
转载出色【转】中断具体解析_第5页
资源描述:

《转载出色【转】中断具体解析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、转载出色【转】中断具体解析1摘要:本章将向读者顺次阐明中断概念,解析Linux中的中断实现机理以及Linux下中断如何被利用。作为实例咱们第一将向《i386体系构造》一章中打造的体系加进一个时钟中断;第二将为大家注解RTC中断,希看通过这两个实例可能帮助读者控制中断相干的概念、实现跟编程方法。中断是什么中断的汉语阐明是半旁边产生阻隔、停顿或故障而断开。那么,在打算机体系中,咱们为什么须要"阻隔、停顿跟断开"呢?举个日常生活中的例子,比方说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开--假

2、如水溢出来浇灭了煤气,有可能就要产生一场灾害了。等啊等啊,外边忽然传来了惊奇的叫声"怎么不关水龙头?"于是我愧疚的发明,方才接水之后只顾着抱怨这份无聊的差事,竟然忘了这事,于是慌慌张张的冲向水管,三下两下关了龙头,声音又传到耳边,"怎么干什么都是这么马虎?"。伸伸舌头,这件小事就这么过往了,我落寞的眼神又落在了水壶上。门外忽然又传来了铿锵有力的歌声,我最爱好的古装剧要开演了,真想夺门而出,然而,听着水壶发出"咕嘟咕嘟"的声音,我明白:除非等到水开,否则不我享受人生的时候。这个场景跟中断有什么关联呢?假如

3、说我一心致志等待水开是一个过程的话,那么叫声、电视里传出的音乐不都让这个过程"半旁边产生阻隔、停顿或故障而断开"了吗?这不就是活生生的"中断"吗?在这个场景中,我是独一存在处理才能的主体,不管是烧水、关龙头还是看电视,同一个时光点上我只能干一件事件。然而,在我一心致志干一件事件时,总有很多或紧急或不紧急的事件忽然呈当初面前,都须要往关注,有些还须要我停下手头的工作立刻往处理。只有在处理完之后,方能回首实现先前的任务,"把一壶水彻底烧开!"中断机制不仅赋予了我处理意外情况的才能,假如我能充分发挥这个机制的

4、妙用,就可能"同时"实现多个任务了。回到烧水的例子,实际上,无论我在不在厨房,煤气灶老是会把水烧开的,我要做的,只不过是及时关掉煤气灶罢了,为了这么一个一秒钟就能实现的动作,却让我逝世逝世的守候在厨房里,在10分钟的时光里不停的看壶嘴是不是冒蒸汽,怎么说都不划算。我决定安下心来看电视。当然,在有生之年,我都不希看让厨房成为火海,于是我上了闹钟,10分钟当前它会发出"尖叫",提示我炉子上的水烧开了,那时我再往关煤气也完全来得及。我用一个中断信号--闹铃--换来了10分钟的欢乐时光,心里不禁由衷的感慨:中断

5、机制真是个好货色。恰是因为中断机制,我才干井井有条的"同时"实现多个任务,中断机制本质上帮助我进步了并发"处理"才能。它也能给打算机体系带来同样的好处:假如在键盘按下的时候会得到一个中断信号,CPU就不必逝世守着等待键盘输进了;假如硬盘读写实现后发送一个中断信号,CPU就可能腾出手来集中精力"服务大众"了--无论是仁攀类敲打键盘的指尖还是来回读写介质的磁头,跟CPU的处理速度比拟,都太慢了。不中断机制,就像咱们苦守厨房一样,打算机谈不上有什么的并行处理才能。跟人类似,CPU也一样要面对纷纷混乱的局面--

6、事实中的意外是无处不在的--有可能是用户等得不耐烦,猛敲键盘;有可能是运算中碰到了0除数;还有可能网卡忽然接收到了一个新的数据包。这些都须要CPU具体情况具体分析,要么立刻处理,要么暂缓响应,要么束之高阁。无论如何应答,都须要CPU暂停"手头"的工作,拿出一种对策,只有在响应之后,方能回首实现先前的使命,"把一壶水彻底烧开!"先让咱们感触一下中断机制对并发处理带来的帮助。让咱们用程序来探讨一下烧水标题,假如不"中断"(留心,咱们这里只是模仿中断的场景,实际上是用异步事件--消息--处理机制来展示中断产生

7、的后果。毕竟,在用户空间不办法与实际中断产生直接接洽,不过把持体系为用户空间供给的异步事件机制,可能看作是模仿中断的产物),设计如下:voidStayInKitchen(){boolWaterIsBoiled=false;while(WaterIsBoiled!=true){boolVaporGavenOff=false;if(VaporGavenOff)WaterIsBoiled=true;elseWaterIsBoiled=false;}//关煤气炉printf("Closegasoven.")

8、;//所有安定下来,终于可能看电视了,10分钟的宝贵时光啊,逝者如此夫…watching_tv();return;}可能看出,全部流程如同咱们前面描述的一样,所有工作要次序履行,不办法实现并发任务。国产打印机硒鼓品牌假如用"中断",在开端烧水的时候设定一个10分钟的"闹铃",而后让CPU往看电视(有点难度,具体实现不在咱们关怀的范畴之内,留给读者自行解决吧:)。等闹钟响的时候再往厨房关炉子。#includesys/types.h#inclu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。