计算机中断/硬中断/软中断之理解(1)
一、什么是中断?
在计算机科学中,中断是指由于接收到外围硬件(相对于CPU与内存而言)的异步信号或者来自软件的同步信号而进行相应的硬件/软件处理。
二、什么是硬中断?
显然,外围硬件发给CPU或者内存的异步信号就是硬中断信号。简言之:外设对CPU的中断
三、什么是软中断?
由软件本身发给操作系统内核的中断信号,称之为软中断。通常是由硬中断处理程序或进程调度程序对操作系统内核的中断,也就是我们常说的系统调用(System Call)了。
四、硬中断与软中断之区别与联系
1. 硬中断是有外设硬件发出的,需要有中断控制器之参与。其过程是外设侦测到变化,告知中断控制器,中断控制器通过CPU或内存的中断脚通知CPU,然后硬件进行程序计数器及堆栈寄存器之现场保存工作(引发上下文切换),并根据中断向量调用硬中断处理程序进行中断处理。
2. 软中断则通常是由硬中断处理程序或者进程调度程序等软件程序发出的中断信号,无需中断控制器之参与,直接以一个CPU指令之形式指示CPU进行程序计数器及堆栈寄存器之现场保存工作(亦会引发上下文切换),并调用相应的软中断处理程序进行中断处理(即我们通常所言之系统调用)。
3. 硬中断直接以硬件的方式引发,处理速度快。软中断以软件指令之方式适合于对响应速度要求不是特别严格的场景。
4. 硬中断通过设置CPU的屏蔽位可进行屏蔽,软中断则由于是指令之方式给出,不能屏蔽。
5. 硬中断发生后,通常会在硬中断处理程序中调用一个软中断来进行后续工作的处理。
6. 硬中断和软中断均会引起上下文切换(进程/线程之切换),进程切换的过程是差不多的。
(进程切换过程请参考我的另一篇文章--《计算机操作系统进程切换详解》)
计算机中断/硬中断/软中断之理解(1)相关推荐
- 外部中断和内部中断 硬中断 软中断 中断下半部
重要声明: 以下代码有粘贴 截取他人劳动成果的成分 如有雷同 不胜荣幸 如您不能容忍 请不要独自忍受@weChat:iisssssssssii 联系小民 主动删除 中断含义: { 中断是CPU处理外部 ...
- 【OS学习笔记】十一 实模式:中断-软中断和硬中断基本原理
上一篇文章我们模拟操作系统的加载器程序,使用汇编语言实现了一个程序加载器:点击链接查看上一篇文章:程序加载器的实现原理 本篇文章,是实模式学习的结尾.在经过了那么多坎坷,终于学完了8086的实模式!! ...
- linux内核网络收包过程—硬中断与软中断
目录 硬中断处理 软中断处理 数据通过网络发送过来 硬中断处理 数据帧首先到达网卡的接收队列,分配RingBuffer DMA把数据搬运到网卡关联的内存 网卡向CPU发起硬中断,通知CPU有数据 调用 ...
- 内中断,外中断,软中断,硬中断,异常,陷阱
不管是内中断,外中断,软中断还是硬中断都是按照中断源来划分的. 一.外中断 狭义上的中断(interruption)指的就是外中断. 指来自CPU执行指令以外的事件的发生,希望处理机能够向设备发下一个 ...
- [Linux内核]软中断与硬中断
转自:http://blog.csdn.net/zhangskd/article/details/21992933 本文主要内容:硬中断 / 软中断的原理和实现 内核版本:2.6.37 Author: ...
- 硬中断与软中断的区别!
硬中断: 1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等.每个设备或设备集都有它自己的IRQ(中断请求).基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核 ...
- 硬中断与软中断的区别!!!
硬中断: 1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等.每个设备或设备集都有它自己的IRQ(中断请求).基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核 ...
- 硬中断 / 软中断的原理和实现
本文主要内容:硬中断 / 软中断的原理和实现 内核版本:2.6.37 Author:zhangskd @ csdn blog 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中 ...
- *33.硬中断和软中断是什么?区别?
1.硬中断-硬件中断.像磁盘,网卡,键盘,时钟等 2.软中断-软件中断.进程产生. 区别:(产生机制.处理顺序.可否屏蔽.中断信号由来) 1.软中断的发生的时间是由程序控制的,硬中断的发生的时间是随机 ...
最新文章
- [转]css选择器优先级深入理解
- 对于python中的self,cls,decorator的理解
- 笔记-项目风险管理-风险应对
- python怎么查看网页编码格式_怎么用python爬取网页文字?
- 基于jsp+mysql+Spring+hibernate+在线学习交流论坛平台
- Transactional Replication2:在Subscriber中,主键列是只读的
- easyUI 数据表格datagrid的使用
- 在IE浏览器中url传参长度问题
- 拓端tecdat|R语言数据的收益率和可能的波动性交易
- Python入门之面向对象module,library,package之间区别
- iOS之UI--CAShapeLayer
- Gpower CMS/模板置标
- 如何查看本机IP地址?
- 三次hermite插值多项式例题_2点三次Hermite插值多项式解析.ppt
- 开发中接口的类型都有哪些以及如何调用?
- 智慧实验室LIMS系统真的有必要建设吗?
- 关于成立一个软件工作室
- convexity and concavity(凸面和凹面)
- 浏览器输入网址后发生了什么?
- ffmpeg代码实现往视频文件里面叠加文字