Linux内核--异常和中断的区别
相信大家都知道非常著名的两个名词:异常和中断,不过,你真的理解这两个名词在说什么吗?它们之间有什么区别呢?
1.中断
大家都知道,当我们在敲击键盘的同时就会产生中断,当硬盘读写完数据之后也会产生中断,所以,我们需要知道,中断是由硬件设备产生的,而它们从物理上说就是电信号,之后,它们通过中断控制器发送给CPU,接着CPU判断收到的中断来自于哪个硬件设备(这定义在内核中),最后,由CPU发送给内核,有内核处理中断。下面这张图显示了中断处理的流程:
2.异常
我们在学习《计算机组成原理》的时候会知道两个概念,CPU处理程序的时候一旦程序不在内存中,会产生缺页异常;当运行除法程序时,当除数为0时,又会产生除0异常。所以,大家也需要记住的是,异常是由CPU产生的,同时,它会发送给内核,要求内核处理这些异常,下面这张图显示了异常处理的流程:
3.异同
相同点:
1> 最后都是由CPU发送给内核,由内核去处理
2> 处理程序的流程设计上是相似的
不同点:
1> 产生源不相同,异常是由CPU产生的,而中断是由硬件设备产生的
2> 内核需要根据是异常还是中断调用不同的处理程序
3> 中断不是时钟同步的,这意味着中断可能随时到来;异常由于是CPU产生的,所以,它是时钟同步的
4> 当处理中断时,处于中断上下文中;处理异常时,处于进程上下文中
Linux内核--异常和中断的区别相关推荐
- Linux内核深入理解中断和异常(1)
Linux内核深入理解中断和异常(1) rtoax 2021年3月 1. 中断介绍 内核中第一个子系统是中断(interrupts). 1.1. 什么是中断? 我们已经在这本书的很多地方听到过 中断( ...
- Linux内核深入理解中断和异常(8):串口驱动程序
Linux内核深入理解中断和异常(8):串口驱动程序 rtoax 2021年3月 /*** start_kernel()->setup_arch()->idt_setup_early_tr ...
- Linux内核深入理解中断和异常(7):中断下半部:Softirq, Tasklets and Workqueues
Linux内核深入理解中断和异常(7):中断下半部:Softirq, Tasklets and Workqueues rtoax 2021年3月 0x00-0x1f architecture-defi ...
- Linux内核深入理解中断和异常(6):IRQs的非早期初始化
Linux内核深入理解中断和异常(6):IRQs的非早期初始化 rtoax 2021年3月 0x00-0x1f architecture-defined exceptions and interrup ...
- Linux内核深入理解中断和异常(5):外部中断
Linux内核深入理解中断和异常(5):外部中断 rtoax 2021年3月 1. 外部中断简介 外部中断包括:键盘,鼠标,打印机等. 外部中断包括: I/O interrupts; IO中断 Tim ...
- Linux内核深入理解中断和异常(3):异常处理的实现(X86_TRAP_xx)
Linux内核深入理解中断和异常(3):异常处理的实现(X86_TRAP_xx) rtoax 2021年3月 /*** start_kernel()->setup_arch()->idt_ ...
- Linux内核深入理解中断和异常(2):初步中断处理-中断加载
Linux内核深入理解中断和异常(2):初步中断处理-中断加载 rtoax 2021年3月 1. 总体概览 关于idt_table结构的填充,在5.10.13中流程为: idt_setup_early ...
- Linux内核深入理解中断和异常(4):不可屏蔽中断NMI、浮点异常和SIMD
Linux内核深入理解中断和异常(4):不可屏蔽中断NMI.浮点异常和SIMD rtoax 2021年3月 本文介绍一下几种trap: //* External hardware asserts (外 ...
- Linux内核活动之中断1
Linux内核活动之中断1 1. 中断介绍 1.1 中断类型 1.2 中断共享 1.3 硬件IRQ 1.4 处理中断 1.4.1 进入和退出任务 1.4.2 中断处理程序 1.5 数据结构 1.5.1 ...
最新文章
- Java解析HTML
- python3中zip()函数的用法
- python面向对象基础语言进阶
- php需要什么技能,PHP初学者必备的技能
- Martin Odersky Scala编程公开课 第二周作业
- linux aio拷贝文件,Linux通过AIO进行异步读文件
- java中容器里的增删改查_Java工程师的第八天——简单的增删改查的应用
- 看上90亿的当当,海航的眼光是极好的
- loadrunner脚本中关于httpCode401特殊情况
- 【转】契约测试的必要性
- Listener监听器已经Listener的小案例
- 客户价值分析(聚类)
- ubuntu16启用daytime服务
- 《Python与硬件项目案例》— 基于Python与指纹模块AS608的指纹识别签到考勤系统(下篇)(期末大作业、课程设计、毕业设计、结课项目)
- Form--Form表单
- Java链表的书_JAVA实现双向链表的增删功能,完整代码package linked;class LinkedTable{ }public class Linke...
- 搭建一个点歌QQ机器人,另外还能看美女
- 从股票市场选择配对的股票:共同趋势模型与套利定价理论
- Kali Linux渗透测试——信息收集
- 编程基础:计算机相关知识