外部中断和内部中断【转】

中断是CPU处理外部事件的关键技术,分为硬件中断和软件中断。硬件中断包括外部和内部中断,软件中断实为调用程序。中断优先级决定处理顺序,病毒通过修改中断实现传染与发作,关键中断包括INT08H、INT09H、INT10H、INT13H和INT21H。

中断基本概念 什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返回地址),暂停工作,去接电话(中断),并指示“按第二方案办”(调中断服务程序),然后,再静下心来(恢复中断前状态),接着处理文件……。计算机科学家观察了类似实例,“外师物化,内得心源”,借用了这些思想、处理方式和名称,研制了一系列中断服务程序及其调度系统。 中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备 的中断请求。内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。 软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序。例如:ROM BIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理 中断等,)以及DOS的系统功能调用(INT 21H)等都是软件中断。 CPU为了处理并发的中断请求,规定了中断的优先权,中断优先权由高到低的顺序是: (1)除法错、溢出中断、软件中断 (2)不可屏蔽中断 (3)可屏蔽中断 (4)单步中断。   2. 中断与计算机病毒 计算机操作系统是开放的,用户可以修改扩充操作系统,在计算机上实现新的功能。 修改操作系统的主要方式之一是扩充中断功能。计算机提供很多中断,合理合法地修改中断会给计算机增加非常有用的新功能。如 INT 10H是屏幕显示中断,原只能显示西文,而在各种汉字系统中都可以通过修改INT 10H使计算机能够显示中文。另一方面,计算机病毒则篡改中断为其达到传染、激发等目 的服务,与病毒有关的重要中断有: INT 08H和INT 1CH定时中断,每秒调用18.2次,有些病毒利用它们的记时判断 激发条件。 INT 09H键盘输入中断,病毒用于监视用户击键情况。 INT 10H屏幕输入输出中断,一 些病毒用于在屏幕上显示字符图形表现自己。 INT 13H磁盘输入输出中断,引导型病毒用于传染病毒和格式化磁盘。 INT 21H DOS功能调用,包含了DOS的大部分功能,已发现的绝大多数文件型病毒 修改INT 21H中断,因此也成为防病毒的重点监视部位。 INT 24H DOS的严重错误处理中断,文件型病毒常进行修改,以防止传染写保护磁 盘时被发现。 中断子程序的入口地址存放在计算机内存的最低端,病毒窃取和修改中断的人口地 址获得中断的控制权,在中断服务过程中插入病毒的“私货”。   总之,中断可以被用户程序所修改,从而使得中断服务程序被用户指定的程序所替代。这样虽然大大地方便了用户,但也给计算机病毒制造者以可乘之机。病毒正是通过修 改中断以使该中断指向病毒自身来进行发作和传染的。

<think>我们正在讨论计算机体系结构中的中断概念。用户的问题聚焦于外部中断内部中断的区别。根据引用内容,我们可以这样理解:1.引用[1]提到:异常通常指CPU内部产生的错误导致中断原程序运行,而中断既包括内部异常也包括外部设备触发的中断。因此,广义中断包括异常狭义中断(外部触发)。区别在于是否正在执行的指令有关:中断可屏蔽,异常不可屏蔽。2.引用[2]补充:Intel处理器中断来源有两种:外部(硬件)中断(通过引脚或APIC接收)软件中断(如intn指令)。其中,外部中断又分为可屏蔽中断(通过INTR引脚)不可屏蔽中断(NMI)。3.引用[3]提到ARM的中断机制:中断源分发给不同CPU,每个中断有唯一ID号,中断处理程序根据ID号调用处理函数。这里的外部中断配置涉及硬件原理图。综合以上,我们可以将中断分为:-**外部中断**:由CPU外部的硬件设备触发(如按键、定时器、外设请求),通过中断线(INTR/NMI)通知CPU。特点:-异步发生,当前指令无关。-可屏蔽(除NMI外)。-**内部中断**:通常指两类:-**异常(Exception)**:由CPU执行指令时内部错误触发(如除零、缺页、非法指令)。同步发生,当前指令直接相关,不可屏蔽。-**软件中断(SoftwareInterrupt)**:由程序主动调用中断指令(如int0x80)触发,用于系统调用或调试。因此,内部中断包含异常软件中断,而外部中断仅指硬件触发的中断信号。下面我们详细展开回答:</think>### 外部中断内部中断的区别(计算机体系结构视角) 在计算机体系结构中,中断是处理器响应外部事件的核心机制。根据触发源的位置,可分为**外部中断****内部中断**两类,其核心差异如下: #### 一、触发源的本质区别 | **特性** | **外部中断** | **内部中断** | |-------------------|---------------------------------------|---------------------------------------| | **触发源** | CPU外部的硬件设备 | CPU内部执行过程 | | **典型来源** | - 键盘/鼠标输入 [^3]<br>- 定时器到期<br>- 网络数据到达 | - 除零错误<br>- 非法指令<br>- 缺页异常 [^1] | | **信号传递路径** | 通过物理引脚(INTR/NMI)或APIC接收 [^2] | 由CPU执行单元直接产生 | #### 二、行为特性差异 1. **时序特性** - **外部中断**:**异步**于当前指令 *示例:* 用户按下键盘时,无论CPU正在执行什么指令都会响应中断。 - **内部中断**:**同步**于当前指令 *示例:* 执行`DIV 0`指令时立即触发异常 [^1]。 2. **可屏蔽性** - 外部中断可通过**中断屏蔽寄存器**过滤(NMI除外)[^2] - 内部中断(异常)**不可屏蔽**,必须立即处理 [^1] 3. **处理优先级** ```mermaid graph LR A[内部中断] -->|最高优先级| B[硬件故障异常] B --> C[软件陷阱] C --> D[外部中断] D -->|最低| E[可屏蔽中断] ``` #### 三、处理机制对比 | **处理阶段** | **外部中断** | **内部中断** | |------------------|---------------------------------------|---------------------------------------| | **检测机制** | 中断控制器仲裁(ID号写入寄存器) [^3] | CPU流水线异常检测电路 | | **响应延迟** | 需等待当前指令执行完毕 | 立即中止当前指令 | | **典型应用** | I/O设备通信 [^3] | 系统调用(int 0x80) [^2] | #### 四、设计意义差异 1. **外部中断** - 解决**CPU外设速度不匹配**问题 - 实现**事件驱动型响应**(如实时系统) - *硬件依赖:* 需要中断控制器(如APIC) [^2] 2. **内部中断** - 保障**指令执行的安全边界** - 提供**特权级切换机制**(用户态→内核态) - *关键作用:* 实现虚拟内存(缺页异常)[^1] > **本质总结**: > 外部中断是**环境到CPU的通信**(硬件触发),内部中断是**CPU对自身状态的反馈**(指令级事件)。二者共同构成计算机的**事件响应体系** [^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值