- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux信号及软中断
Linux信号及软中断
软中断
软中断一般是指由指令int引起的“伪”中断动作——给CPU制造一个中断的假象;而硬中断则是实实在在由8259的连线触发的中断。因此,严格的讲,int和IRQ毫无关系,但二者均和中断向量有关系。int引起的中断,CPU是从指令中取得中断向量号;而IRQ引起的中断,CPU必须从数据线上取回中断号(硬件引发中断首先加到8259的某个IRQ引脚上,8259根据定义好的规则换算出相应的中断向量号,将其放在数据线上,然后通知CPU中断到来)。接下来CPU的工作就一样了:保护现场、根据中断号得到中断处理程序地址、执行中断处理、恢复现场继续执行被中断的指令。Windows驱动程序一般不能直接接管中断,中断是由内核的VPICD接管,驱动程序只是向VPICD注册中断服务,中断服务将由VPICD调用。这样可以有效的实现虚拟设备:虚拟不存在的设备或者改变已存在的物理设备的行为。
Linux用int $80来实现系统调用异常 .这一指令使用中断/异常向量号128(即16进制的80)将控制权转移给内核。为达到在使用系统调用时不必用机器指令编程,在标准的C语言库中为每一系统调用提供了一段短的子程序,完成机器代码的编程工作。事实上,机器代码段非常简短。它所要做的工作只是将送给系统调用的参数加载到CPU寄存器中,接着执行int $0x80指令。然后运行系统调用,系统调用的返回值将送入CPU的一个寄存器中,标准的库子程序取得这一返回值,并将它送回用户程序.
一般现在的核心有190个左右的系统调用
,可以看/usr/src/linux/代码目录下的
5.init/main.c
6.arch/i386/kernel/traps.c
7.arch/i386/kernel/entry.S
8.arch/i386/kernel/irq.h
9.include/asm-386/unistd.h
几个文件
希望和你共进步
1、内中断(软中断)
指CPU执行某些特殊操作或由INT指令引起的中断
① 被零除操作或OF=1时执行INTO指令引起
② 使用DEBUG中的单步或断点设置操作引起
③ 执行INT n 指令引起
指外部芯片通过
CPU的INTR引脚或NMI引脚
发出中断申请引起的中断。
当INTR上有高电平信号
当NMI上有上升沿信号
可屏蔽中断
由INTR引脚引起的中断,称可屏蔽中断。
CPU是否响应INTR引脚上的中断请求取决于IF标志:
IF=1,CPU响应INTR引脚上的中断请求
IF=0,CPU不响应INTR引脚上的中断请求
即当IF=0时,将INTR引脚上的中断申请屏蔽。
软中断对应的英文单词是software interrupt
硬中断对应的英文单词是hardware interrupt
有三种类型的中断:
(1)traps(可翻译为自陷,同时在一些地方称做software interrupt(可翻译为软中断);
(2)exceptions(可翻译为“异常”)
(3)interrupts(也可称为“hardware interrupts)
interrupts 是有外部设备引起的中端。
traps 是使用int n这样的指令引起的中断
exceptions 类似于traps。但有所不同。traps 是无条件的。当执行int n时,系统就去调用n所对应的中断服务程序。
而except是某些程序执行中,出现了一些异常情况时(比如说,出现除领的情况),系统就会调用异常服务程序。这是有条件的。
在软中断和硬中断之间的区别是什么?
①硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。
②硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要),软中断的中断响应周期,CPU不需发中断回合信号。
③硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H);软中断的中断号由指令直接给出,无需使用中断控制器。
④硬中断是可屏蔽的(NMI硬中断不可屏蔽),软中断不可屏蔽。
编制一段程序,使其实现进程的软中断通信。
要求:使用系统调用fork()创建两个子
您可能关注的文档
- 0-3岁宝宝需要什么样教育.doc
- 01石油基本知识-汽车运行材料.doc
- 01《IBT备考导航》之一 :考试形式及具体内容.doc
- 03年微机原理与接口考研试题与答案.doc
- 03邻接矩阵深度及广度遍历DFS_BFS.doc
- 05月-工厂5S项目推进及目视管理.doc
- 03-1-1 中国市场消费取舍逻辑.doc
- 05月-精益供应链下工厂物流管理.doc
- 031人丁兴旺糖家族.doc
- (问答及操作题).doc
- 人教版英语5年级下册全册教学课件.pptx
- 部编人教版2年级上册语文全册教学课件含单元及专项复习.pptx
- 人教版8年级上册英语全册教学课件(2021年8月修订).pptx
- 教科版(2017版)6年级上册科学全册课件+课时练.pptx
- 人教版PEP版6年级英语下册全册教学课件(2022年12月修订).pptx
- 部编人教版2年级下册语文全册课件(2021年春修订).pptx
- 人教版数学6年级下册全册教学课件(2023年教材).pptx
- 湘少版5年级下册英语全册教学课件(2021年春修订).pptx
- 人教PEP4年级下册英语全册教学课件 [2}.pptx
- 人教版6年级上册英语全册教学课件.pptx
文档评论(0)