中断(interrupt)、软件断、异常(exception)、陷阱(trap)、故障(fault)、终止(abort)、信号、同步、异步、阻塞、非阻塞之间的区别
1、中断与异常
广义的讲,linux下只有两种中断,同步的中断和异步的中断,这是中断最基本的两种概念,同步和异步中断就说明了中断的所有类型。
同步的中断:一条指令执行完后,才可能发生;该中断由CPU的控制单元产生。
异步的中断:可以在指令执行过程中发生(中断发生是随机的,但必须在指令执行后才能跳转去执行IRQ);异步中断由CPU的外部硬件产生。
而Intel 的官方资料,将同步中断称为异常(exception),异步中断被称为中断(interrupt)。
2、中断、故障、陷阱、终止、软中断
把同步的中断和异步的中断分类在细一些,可以分成这四种,故障、陷阱、终止都是同步的中断。
中断:来自I/O设备的信号,就是异步的中断,由cpu的外部硬件产生。
故障:潜在的可恢复的错误,cpu执行指令前产生(除零)。
陷阱:有意的异常,指令执行中或执行完成后(int软中断,调试)。(内存溢出 和 除法溢出属于哪类???)
终止:不可恢复的错误,cpu不知道该干什么了。
陷阱即所谓的软中断,是一种同步的中断,是CPU内部的控制单元产生的中断。
3、同步、异步、阻塞、非阻塞
消息发送:
同步:等待消息发送完成,收到回复语句后,在执行其他功能(发送下一个数据包)
异步:消息发送后就,不等接收方回复,直接执行其他功能
等待消息:
阻塞:
非阻塞:
同步和异步这两个概念与消息的通知机制有关;阻塞和非阻塞这两个概念与程序等待消息(无所谓同步或者异步)时的状态有关;同步和异步仅仅是关于所关注的消息如何通知的机制,而不是处理消息的机制。
4、信号
中断和异常都可以产生信号,比如按键(ctrl+c),除0,引用无效内存,kill函数。
参考:
[5] apue
分享到:
相关推荐
本文详细讲解了Linux下有中断端点的USB设备驱动的实现方法,包括USB设备驱动的基本概念、中断端点的概念、Linux下USB设备驱动的实现、信号量机制在USB设备驱动中的应用等方面的内容,为 readers 提供了一个系统的...
讲述Linux设备驱动中断的过程,中断概念:这就不多说了。 中断的分类: 1)根据中断来源分为:内部中断和外部中断。内部中断来源于CPU内部(软中断指令、溢出、语法错误等),外部中断来自CPU外部,由设备提出请求。...
本章将向读者依次解释中断概念,解析Linux中的中断实现机理以及Linux下中断如何被使用。作为实例我们第一将向《i386体系结构》一章中打造的系统加入一个时钟中断;第二将为大家注解RTC中断,希望通过这两个实例可以...
在 Linux 中断处理机制中,还有一个重要的概念,即中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是“登记中断”,当一个中断发生时,它进行相应的硬件读写后,就把中断例程的下半部挂...
Linux 操作系统中断与异常实验 在 Linux 操作系统中,中断和异常是两个基本概念。中断是指 CPU 在执行指令时,遇到某些特殊情况,需要暂停当前指令的执行,转而执行另外的指令。例如,在 Linux 中,当硬件设备需要 ...
RTLinux对Linux关中断的解决方案 本文主要介绍了RTLinux对Linux关中断的解决方案。Linux操作系统启用禁止中断的原因有两个:一是操作系统为了保护重要的系统程序代码暂停接受中断;二是Linux内核的进程经常关闭中断...
首先介绍了中断的一些基本概念,然后分 析了面向对象的 Linux 中断的组织形式、三种主要数据结构及其之间的关系。随后介绍了 Linux 处理异常和中断的基本流程, 在此基础上分析了中断处理的详细流程, 包括保存现场...
第十七章 异常与中断的概念及处理流程本文来自“Linux系列教程之快速入门”里的“嵌入式Linux驱动开发基础知识”。在“Linux系列教程之快速入门”里,它是
中断向量的概念就是由此引出的,其实它就是一个被送通往CPU数据线的一个整数。CPU给每个IRQ分配了一个类型号。 中断有很多类,可能是外部硬件触发,也可能是由软件触发,对于CPU来说,中断处理的过程都是一样的:...
与Linux中断息息相关的一个重要概念是Linux中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是登记中断,当一个中断发生时,它进行相应地硬件读写后把中断例程的下半部挂到该设备的下半部...
在 Linux 系统中,软中断和硬中断都是重要的概念,它们都是系统响应硬件设备请求的机制。软中断是中断处理程序的下半部,主要是负责上半部未完成的工作,而硬中断是中断处理程序的上半部,主要是负责硬件请求的快速...
1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.4 分析Linux内核的意义 1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的...
接着系统地讲解了嵌入式Linux的环境搭建,以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还安排了丰富...
在 Linux 操作系统中,有多种软中断信号,每种信号都有其特定的含义和作用。例如,SIGINT 信号用于终止进程,SIGTERM 信号用于请求进程终止,而 SIGUSR1 和 SIGUSR2 信号则是用户自定义的信号。 软中断信号可以通过...
加深对进程概念的理解,明确进程和程序的区别。进一步认识并发执行的实质,并了解Linux系统中进程通信的基本原理。
本文档详细介绍了 Linux x86 汇编程序设计的相关知识点,涵盖了汇编语言的基本概念、编译和链接、IO 端口编程、中断处理等方面。 1. 汇编语言基础 汇编语言是一种低级语言,直接操作计算机硬件。x86 汇编语言是 ...
嵌入式Linux系统设备驱动开发与设计 嵌入式Linux系统设备驱动开发与设计是指在嵌入式Linux系统中,开发和设计设备驱动程序的过程。该过程涉及到设备驱动程序的概念、开发流程、关键代码和主导思想等方面。 1. ...
答案:实时 Linux(RT-Linux)通过在 Linux 内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的 Linux 内核作为实时内核的一个进程与用户进程一起调度,标准的 Linux 内核的优先级最低,可以被实时进程...
在双内核技术下,存在一个支持强实时的微内核,它与Linux内核共同运行于硬件平台上,实时内核的优先级高于Linux内核,它负责处理系统的实时任务,而Linux则负责处理非实时任务,只有当实时内核不再有实时任务需要...