美文网首页
中断的概念

中断的概念

作者: oasis_m | 来源:发表于2020-03-14 09:07 被阅读0次

声明:所有文章只作为学习笔记用,转载非原创
硬中断与软中断的区别!!!
https://zhuanlan.zhihu.com/c_1108400140804726784
https://blog.51cto.com/noican/1361087
https://zhuanlan.zhihu.com/p/83709066

场景解释
https://www.cnblogs.com/funeral/archive/2013/03/06/2945485.html

举个现实中的例子:

你正在看书,突然你的朋友打来电话,于是你放下书本去接电话,电话打完接着看书。

电话响->放下书本->接电话->继续看书这一个过程,就类似于CPU中断的处理过程。

 早期的CPU处理外设的事件(比如接收键盘输入),往往采用“轮询”的方式。即CPU像个查岗的一样轮番对外设顺序访问,比如它先看看键盘有没被按下,有的话就处理,没的话继续往下看鼠标有没有移动,再看看打印机……这种方式使CPU的执行效率很低,且CPU与外设不能同时工作(因为要等待CPU来“巡查”)。

中断模式时就是说CPU不主动访问这些设备,只管处理自己的任务。如果有设备要与CPU联系,或要CPU处理一些事情,它会给CPU发一个中断请求信号。这时CPU就会放下正在进行的工作而去处理这个外设的请求。处理完中断后,CPU返回去继续执行中断以前的工作。

中断模式的作用和优点在于:
  1. 可以使CPU和外设同时工作,使系统可以及时地响应外部事件。
  2. 可允许多个外设同时工作,大大提高了CPU的利用率,也提高了数据输入、输出的速度。
  3. 可以使CPU及时处理各种软硬件故障(比如计算机在运行过程中,出现了难以预料的情况或一些故障,如电源掉电、存储出错、运算溢出等等。计算机可以利用中断系统自行处理,而不必停机或报告工作人员。)

硬中断:

  1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。

  2. 处理中断的驱动是需要运行在CPU上的,因此,当中断产生的时候,CPU会中断当前正在运行的任务,来处理中断。在有多核心的系统上,一个中断通常只能中断一颗CPU(也有一种特殊的情况,就是在大型主机上是有硬件通道的,它可以在没有主CPU的支持下,可以同时处理多个中断。)。

  3. 硬中断可以直接中断CPU。它会引起内核中相关的代码被触发。对于那些需要花费一些时间去处理的进程,中断代码本身也可以被其他的硬中断中断。

  1. 对于时钟中断,内核调度代码会将当前正在运行的进程挂起,从而让其他的进程来运行。它的存在是为了让调度代码(或称为调度器)可以调度多任务。

软中断:

  1. 软中断的处理非常像硬中断。然而,它们仅仅是由当前正在运行的进程所产生的。

  2. 通常,软中断是一些对I/O的请求。这些请求会调用内核中可以调度I/O发生的程序。对于某些设备,I/O请求需要被立即处理,而磁盘I/O请求通常可以排队并且可以稍后处理。根据I/O模型的不同,进程或许会被挂起直到I/O完成,此时内核调度器就会选择另一个进程去运行。I/O可以在进程之间产生并且调度过程通常和磁盘I/O的方式是相同。

  3. 软中断仅与内核相联系。而内核主要负责对需要运行的任何其他的进程进行调度。一些内核允许设备驱动的一些部分存在于用户空间,并且当需要的时候内核也会调度这个进程去运行。

  4. 软中断并不会直接中断CPU。也只有当前正在运行的代码(或进程)才会产生软中断。这种中断是一种需要内核为正在运行的进程去做一些事情(通常为I/O)的请求。有一个特殊的软中断是Yield调用,它的作用是请求内核调度器去查看是否有一些其他的进程可以运行。

相关文章

  • 中断的概念

    声明:所有文章只作为学习笔记用,转载非原创硬中断与软中断的区别!!!https://zhuanlan.zhihu....

  • Linux中断中能否sleep

    中断、软中断、硬件中断、异常、同步中断、异步中断,这几个概念非常容易混淆,这里对本文使用的中断、软中断、softi...

  • 【项目13-任务16-小组10】Arduino外部中断

    一、中断的概念 中断(Interrupt)是计算机的一个重要概念,现代计算机普遍采用中断技术。中断是指计算机运行过...

  • 项目13:Arduino外部中断

    一、中断的概念 中断(Interrupt)是计算机的一个重要概念,现代计算机普遍采用中断技术。中断是指计算机运行过...

  • 什么是中断原理?

    01.为什么会引出中断的概念 首先引出中断产生的原因,对于CPU而言,假如没有中断的概念,CPU会根据指令在内存中...

  • 【多线程】——3.线程的中断

    线程中断的概念 java线程中断是一种协作机制 通过中断并不能直接终止线程的运行 需要被中断的线程自己处理中断 (...

  • Linux中断编程

    Linux中断编程视频1-Linux中中断到概念和中断处理机制题目:中断的作用是什么?答案:中断是外设异步通知so...

  • ARM System Developer's Guide 学习笔

    概念: 软件中断指令software interrupt instruction (SWI)造成软件中断异常(ex...

  • Java线程中断

    本文主要介绍Java线程中断一些相关的概念以及注意点 Java线程的中断并不是强制的中断,调用线程中断的方法时只是...

  • 鸿蒙轻内核M核源码分析:中断Hwi

    摘要:本文带领大家一起剖析了鸿蒙轻内核的中断模块的源代码,掌握中断相关的概念,中断初始化操作,中断创建、删除,开关...

网友评论

      本文标题:中断的概念

      本文链接:https://www.haomeiwen.com/subject/vefmshtx.html