软中断和硬中断的区别

中断:
中断指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。

硬中断
硬件中断是一个异步信号, 表明需要注意, 或需要改变在执行一个同步事件.
硬件中断是由与系统相连的外设(比如网卡 硬盘 键盘等)自动产生的. 每个设备或设备集都有他自己的IRQ(中断请求), 基于IRQ, CPU可以将相应的请求分发到相应的硬件驱动上(注: 硬件驱动通常是内核中的一个子程序, 而不是一个独立的进程). 比如当网卡受到一个数据包的时候, 就会发出一个中断.
处理中断的驱动是需要运行在CPU上的, 因此, 当中断产生时, CPU会暂时停止当前程序的程序转而执行中断请求. 一个中断只能中断一颗CPU(也有一种特殊情况, 就是在大型主机上是有硬件通道的, 它可以在没有主CPU的支持下, 同时处理多个中断).
硬件中断可以直接中断CPU. 它会引起内核中相关代码被触发. 对于那些需要花费时间去处理的进程, 中断代码本身也可以被其他的硬件中断中断.
对于时钟中断, 内核调度代码会将当前正在运行的代码挂起, 从而让其他代码来运行. 它的存在时为了让调度代码(或称为调度器)可以调度多任务.

软中断
软中断的处理类似于硬中断. 但是软中断仅仅由当前运行的进程产生.
通常软中断是对一些I/O的请求.
软中断仅与内核相联系, 而内核主要负责对需要运行的任何其他进程进行调度.
软中断不会直接中断CPU, 也只有当前正在运行的代码(或进程)才会产生软中断. 软中断是一种需要内核为正在运行的进程去做一些事情(通常为I/O)的请求.
有一个特殊的软中断是Yield调用, 它的作用是请求内核调度器去查看是否有一些其他的进程可以运行.

硬件中断和软中断的区别
硬件中断是由外设引发的, 软中断是执行中断指令产生的.
硬件中断的中断号是由中断控制器提供的, 软中断的中断号由指令直接指出, 无需使用中断控制器.
硬件中断是可屏蔽的, 软中断不可屏蔽.
硬件中断处理程序要确保它能快速地完成任务, 这样程序执行时才不会等待较长时间, 称为上半部.
软中断处理硬中断未完成的工作, 是一种推后执行的机制, 属于下半部.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统下安装CodeBlocks

(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 输入以下命令 1、第一步 sudo add-apt-repository ppa:damien-moore/codeblocks-stable (上述命令行输入完成后,会有输入密码的提示&#xf…

C语言(CED)编写程序,求sum=1*1*1+2*2*2+3*3*3+4*4*4+5*5*5+····+n*n*n

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 编写程序,求sum1*1*12*2*23*3*34*4*45*5*5n*n*n 上述题目很简单,但是偶尔也会犯错误,例如如下代码的错误&…

C语言(CED)从键盘输入一些整数,求出它们的平均值。数据的个数事先不确定,在输入过程中以ctrl+z键(EOF)作为输入结束的标记。

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 要求: 1、从键盘输入一些整数,求出它们的平均值。数据的个数事先不确定,在输入过程中以ctrlz键(EOF)作为输入结…

解决VS2013或2017中类似于:error C4996: ‘scanf‘: This function or variable may be unsafe的问题

用惯了之前的scanf()函数,突然要用scanf_s()函数多多少少有点不习惯,所以在这里给大家介绍一下scanf_s的用法或好处吧! 1、scanf_s函数格式控制字符串中除了格式声明之外,如果有其他字符,则必须…

关于解决Codeblocks中文乱码问题

最近有很多博友在问我关于另一篇博文“表白小心心”等问题,我于是又年轻了一把———把代码复制下来,运行了一下,发现了诸多问题,当然不是代码的问题,而是编译器的一些问题。 1、Codeblocks乱码 Codeblocks在编译时没…

VS中Debug和Release版本的区别

之前写过一段代码,能在VS2013的Release下运行,但是不能在Debug下运行,所以又深入学习了一番,下面是学到的经验。(橙色表示引用,红色表示重点) VS中的程序有Debug和Release两个版本,…

PS:3mm出血值

业余时间里,喜欢拍拍照,然后打印出来,但是每次打印的时候都得需要相馆操作一通,原因是因为没有3mm的出血值 1、点击文件->新建,将宽度和高度设置为想要的大小,单击确定。 2、点击图像->画布大小&am…

C语言(CED)有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.

相信大家在高中数学课上都做过类似于涂色的排列组合问题,那么这个问题如何用程序语言——C语言解决呢? 一、总体思路(如果你只是需要代码,请直接看代码部分) 你应该重视思路,用C语言将之前数学课上的思路…

C语言(CED)多组字符串匹配,输出所有重复出现的字符串,多次重复出现的只输出一次就好。

最近遇到一道题目:多组字符串匹配,输出所有重复出现的字符串,多次重复出现的只输出一次就好。 举个例子: input:qwer qwer sdfgh output:qwer 题意大致就是这样,下面给出我的最终解答&#…

编译原理:文法及其二义性(判定及消除)

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 学编译原理时,会学到文法,老师在介绍完文法的相关定义后又介绍了文法的二义性,但是没说到底是如何避免文法的二…

C语言(CED)与long long相关的知识

在写代码时,有时int、double定义的变量的范围远远小于题目要求的范围,那么现在就是使用long long的时候 1、 long long 是C99标准对整型类型做的一个扩展,每个long long类型的变量可以占8字节,每个字节8位,一共64位。…

C语言(CED)对于一个2行N列的走道。现在用1*2,2*2的砖去铺满。问有多少种不同的方式(递归求解)

又涉及到递归问题,这道题的大致内容是这样的: (请用递推方式求解)对于一个2行N列的走道。现在用1*2,2*2的砖去铺满。问有多少种不同的方式。下图是一个2行17列的走道的某种铺法。 提示:观察前n个结果,可以…

C语言(CED)王老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数(递归求解)

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 题目大意:王老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:…

C语言(CED)查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素。(递归实现)

(请先看置顶博文)本博打开方式,请详读_liO_Oil的博客-CSDN博客_怎么把androidstudio卸载干净 一、题目大意 查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素。…

C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。

)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。 [输入] 第一行包含一个整数n,表示数组的大小。 第二行包含n个整数,表示数组的元素,整数之间以一个空格分…

C语言(CED)最长公共子序列----动态规划第一题

一、动态规划算法与分治法的异同 相同点: A、二者均是将待求解的问题分成若干子问题来求解。 B、二者在编写代码的时候,都要用到递归。 不同点: A、分治法求解的问题,在将问题分成若干子问题之后,其子问…

C语言(CED)01背包——动态规划第二题

一、问题描述 给定n种物品和一个背包。物品i的质量Wi,其价值Vi,背包的容量为c。问如何选择装入背包中的物品,使得装入背包中的物品总价值最大? 二、解题思想 01背包和最长公共子序列都是动态规划题目中求最优解的问题&#xff0…

C语言(CED)gameboy接馅饼问题

一、题目大意 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由…

C语言(CED)递归实现汉诺塔问题

一、问题大意 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,…

C语言(CED)智力大冲浪——贪心算法第一题

一、题目大意 小伟报名参加中央电视台的智力大冲浪节目,本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的!接下来主持人宣布了比赛规则&#xff…