LINUX间断机制与信号.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LINUX间断机制与信号

LINUX间断机制与信号 在学习APUE时学习信号编程,许多地方不是会意,便查阅了网络上的相干材料,最常见的一句话即便信号是间断机制的一种模仿,既然提到了间断,那就率先打听了一下间断的翔实分类以及告终,最后再找出间断和信号的差异。LINUX间断机制与信号 间断和失常 l间断(也称硬件间断) 定义:间断是由其他硬件装备按照CPU时钟周期信号随机发生的。 分类:可屏障间断 非可屏障间断 起源:间隔定时器和I/O l失常(也称软件间断) 定义:当号召厉行时由CPU扼制单元发生的,失常也称为异步间断是因为只有在一条号召终止厉行后CPU才会公布间断。 分类:处理器探测到的失常 故障 陷阱 失常终止 编程失常(也称软间断) int号召 起源:过程的讹谬发生的 内核定然处理的失常(例如:缺页和内核服务的哀求-int) 失常处理 l当发生失常时,CPU扼制单元发生一个硬件出错码。 lCPU依据该间断吗找到间断向量表内的对应向量,依据该向量转到间断处理过程。 l间断处理过程处理完尔后向目前历程发送一个SIG*信号。 l若历程定义了相应的信号处理过程则迁移到相应的过程厉行,若未曾,则厉行内核定义的垄断。 间断处理 l装备发生间断 lPIC(可编程间断扼制器)会发生一个对应的间断向量 l和间断向量表中的每一个间断向量举行比拟,转到对应的间断处理过程 l间断处理过程举行保留现场,做相干处理,还原现场 l内核调动,归来用户历程 硬件间断的上半部和下半部及告终措施 l硬件间断的分类 紧迫的--这类间断定然即刻厉行 非紧迫的--也定然即刻厉行 非紧迫可迟到的--上半部即刻厉行,下半部迟到厉行 硬件间断任务(处理过程)是一个迅速、异步、容易地对硬件做出迅速响应并在最短工夫内告终必需垄断的间断处理过程。硬间断处理过程能够抢占内核任务并且厉行时还会屏障同级间断或其它间断,因而间断处理定然要快、不能阻塞。这么一来对于一些要求处理过程比拟混杂的任务就不轻便在间断任务中顺次处理。例如,网卡接收数据的过程中,率先网卡发送间断信号告诉CPU来取数据,然后系统从网卡中读取数据存入系统缓冲区中,再下来解析数据然后送入利用层。这些万一都让间断处理过程来处理显明过程太长,构成新来的间断失落。因而Linux开发人员将这种任务瓜分为两个局部,一个叫上底,即间断处理过程,短平快地处理与硬件相干的垄断(如从网卡读数据到系统缓存);而把对工夫要求相对松动的任务(如解析数据的工作)放在另一个局部厉行,这个局部即便我们这里要讲的下半底。 下半底是一种推迟厉行任务,它将某些不那么紧迫的任务推迟到系统更得体的时刻运行。因为并不是极其紧迫,等闲还是比拟耗时的,因而由系统自行安排运行时机,不在间断服务上下文中厉行。内核中告终下半底的手段穿越不时演变,现在曾经从最原始的BH(bottomthalf)演生出BH、任务队列(Taskqueues)、软间断(Softirq)、Tasklet、工作队列(Workqueues)(2.6内核中新揭示的)。 其中的软间断和失常中提到的软间断的差异: 重要是用来处理非紧迫可迟到的硬件间断 Linux系统定定义的,不是用户定义,并且个数有限 关于软间断和硬间断的其它解析: 软间断等闲是指由号召int引起的伪间断动作--给CPU制造一个间断的假象;而硬间断则是实诚真实由8259的连线引发的间断。因而,严厉的讲,int与IRQ毫无联系,但二者均与间断向量有联系。int引起的间断,CPU是从号召中获得间断向量号;而IRQ引起的间断,CPU定然从数据线上取回间断号,接下来CPU的工作就一样了:防御现场、依据间断号获得间断处理过程地址、厉行间断处理、还原现场继续厉行被间断的号召。 在软间断和硬间断之间的差异是什么? ①硬间断是由表面事件引起的因而具有随机性和爆发性;软间断是厉行间断号召发生的,无面表面施加间断哀求信号,因而间断的发生不是随机的而是由过程安排好的。 ②硬间断的间断响应周期,CPU必需发间断回合信号(NMI无须要),软间断的间断响应周期,CPU无须发间断回合信号。 ③硬间断的间断号是由间断扼制器供给的(NMI硬间断间断号系统指定为02H);软间断的间断号由号召直接给出,无需利用间断扼制器。 ④硬间断是可屏障的(NMI硬间断不可屏障),软间断不可屏障。 LINUX信号机制 l信号性质 信号是异步的历程间通信机制,是在软件层次上对间断机制的一种模仿,在原理上,一个历程收到一个信号与处理器收到一个间断哀求能够说是一样的。信号是异步的,一个历程无须穿越任何垄断来期待信号的到达,事实上,历程也不懂得信号究竟什么时候到达。 信号是历程间通信机制中单一的异步通信机制,能够看作是异步通知,通知接收信号的历程有哪些事情发生了。内核也能够因为内部事件而给历程发

文档评论(0)

2017meng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档