精华内容
下载资源
问答
  • 什么是中断? ​ 在学习操作系统中,经常性的会看到中断这个概念,最典型的就是汇编代码中的int命令。 ​ 用一个比较通俗的概念来说,就是计算机会连接许多外接设备,包括磁盘、显示器、键盘鼠标等等,而如何处理...

    什么是中断?

    ​ 在学习操作系统中,经常性的会看到中断这个概念,最典型的就是汇编代码中的int命令。

    ​ 用一个比较通俗的概念来说,就是计算机会连接许多外接设备,包括磁盘、显示器、键盘鼠标等等,而如何处理这些输入呢?对于一个处理器来讲,程序运行的过程是一个不断取指执行的过程。如何响应设备也就是常说的I/O输入呢?一种简单的办法就是当我们有数据输入时,想处理器提出请求,处理器过来处理我们的输入,在回去执行原来的程序代码,这样的一个过程就叫做中断(Interrupt)。

    ​ 如果同时有多个设备提出请求,那么CPU应该怎么样去处理呢?我们需要对这些中断有一个优先级的概念。这里就需要提到可编程中断控制器(PIC-Programmable Interrupt Controller),会对所有的中断进行判断并且选出最高优先级进行处理。这里值得注意的是中断不仅仅可以由硬件发出,同样也可以由软件发出,最典型的就是从磁盘中读取数据。对于软件以及硬件中断的不同以及CPU的处理过程如下图:

    异常:又称为同步中断,是当指令执行时CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPU才会发出中断。在不失进程执行连续性的同时,按引起的异常的指令是否能重新执行,且依据它们被报告的方式,异常分为错误陷阱,和终止三种情况。

    错误:错误是一种通常可以能够被修正的异常,一旦修正,程序能够不失去连续性地接着执行。当报告错误发生时,处理器将机器状态恢复到执行错误之前的状态。错误处理例程的返回地址指向产生错误的指令,而不是错误指令之后的的那条指令。如页错误。

    陷阱:当引起陷阱的指令发生时,马上产生该异常。陷阱允许程序不失去连续性的继续执行。陷阱处理例程的返回地址指向引起陷阱的指令的下一条指令(与错误本质上的区别)。如溢出。

    终止:它并不总是报告产生异常的指令的确定位置,也不允许引起终止的进程或任务重新执行。如总线错误导致异常终止。

    请添加图片描述

    请添加图片描述

    典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。

    典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些,因为让打印机等待儿是完全可以的。

    用户如果需要操作系统资源,则必须使用中断

    用户程序和内核之间的交互主要是通过系统调用实现的,而内核和外部设备之间主要是通过硬中断

    用户态、内核态以及其他内容我将会在其他的文章中做记录

    什么是IDT(中断向量表)

    中断描述符表IDT是一个系统表,它与每一个中断或异常向量相联系,每一个向量在表中有相应的中断或异常处理程序的入口地址。内核在允许中断发生前,必须适当的初始化IDT

    (1)16-31共16位是中断处理程序所在的段选择符。

    (2)0-15位和48-64位组合起来形成32位偏移量,也就是中断处理程序所在段(由16-31位给出)的段内偏移。

    (3)40-43位共4位表示描述符的类型。(0111:中断描述符,1010:任务门描述符,1111:陷阱门描述符)

    (4)45-46两位标识描述符的访问特权级(DPL,Descriptor Privilege Level)。

    (5)47位标识段是否在内存中。如果为1则表示段当前不再内存中。

    请添加图片描述

    中断产生之后发生了什么?(以键盘为例)

    请添加图片描述

    1. 引起一个中断
    2. 通过APIC判断中断优先级,同时向CPU发送int信号
    3. CPU中断后去查中断向量表,找到对应处理中断的程序,程序调用对应的设备驱动与外部设备之间通信

    请添加图片描述

    一个设备的中断处理程序是它设备驱动程序的一部分。中断处理程序与其他内核的真正区别在于:中断处理程序是被内核调用来响应中断的,而它们运行于我们称之为中断上下文的特殊上下文中。

    Linux内核中断系统处理机制-详细分析
    Linux中断和系统调用的解析
    Linux内核完全注释

    展开全文
  • 中断装置和中断处理程序统称为中断系统中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统中断系统的应用大大提高了计算机效率。中文名中断外文名...

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

    中断装置和中断处理程序统称为中断系统。

    中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。

    中文名

    中断

    外文名

    Interrupt Request分    类

    中断装置和中断处理程序

    相关概念

    程序状态字和向量中断等

    系统功能

    实现中断响应和中断返回等

    中断定义

    编辑

    语音

    不同的计算机其硬件结构和软件指令是不完全相同的,因此,中断系统也是不相同的。计算机的中断系统能够加强CPU对多任务事件的处理能力。中断机制是现代计算机系统中的基础设施之一,它在系统中起着通信网络作用,以协调系统对各种外部事件的响应和处理。中断是实现多道程序设计的必要条件。 中断是CPU对系统发生的某个事件作出的一种反应。 引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现实行软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序。

    中断响应处理

    编辑

    语音

    大多数中断系统都具有如下几方面的操作,这些操作是按照中断的执行先后次序排列的。①接收中断请求。②查看本级中断屏蔽位,若该位为1则本级中断源参加优先权排队。③中断优先权选择。④处理机执行完一条指令后或者这条指令已无法执行完,则立即中止现行程序。接着,中断部件根据中断级去指定相应的主存单元,并把被中断的指令地址和处理机当前的主要状态信息存放在此单元中。⑤中断部件根据中断级又指定另外的主存单元,从这些单元中取出处理机新的状态信息和该级中断控制程序的起始地址。⑥执行中断控制程序和相应的中断服务程序。⑦执行完中断服务程序后,利用专用指令使处理机返回被中断的程序或转向其他程序。

    中断相关概念

    编辑

    语音

    程序状态字和向量中断

    这是两个与中断响应和处理有密切关系的概念。

    ① 程序状态字:每个程序均有自己的程序状态字。现行程序的程序状态字放在处理机的程序状态字寄存器中。程序状态字中最主要的内容有指令地址、条件码、地址保护键,中断屏蔽和中断响应时的中断源记录等。中断响应和处理操作的第④步和第⑤步就是交换程序状态字操作。

    ② 向量中断:对应每一级中断都有一个向量,这些向量顺序存放在主存的指定单元中。向量的内容是:相应的中断服务程序起始地址和处理机状态字(主要是指令地址)。在中断响应时,由中断部件提供中断向量的地址,就可取出该向量。中断响应和处理操作的第⑤步就是取中断向量操作。在采用向量中断的机器中一般不再使用程序状态字。

    中断系统功能

    编辑

    语音

    1)实现中断响应和中断返回

    当CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。CPU中断响应过程如下:首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序,中断返回过程如下:首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。

    2)实现优先权排队

    通常,系统中有多个中断源,当有多个中断源同时发出中断请求时,要求计算机能确定哪个中断更紧迫,以便首先响应。为此,计算机给每个中断源规定了优先级别,称为优先权。这样,当多个中断源同时发出中断请求时,优先权高的中断能先被响应,只有优先权高的中断处理结束后才能响应优先权低的中断。计算机按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路来实现,亦可通过软件查询来实现。

    3)实现中断嵌套

    当CPU响应某一中断时,若有优先权高的中断源发出中断请求,则CPU能中断正在进行的中断服务程序,并保留这个程序的断点(类似于子程序嵌套),响应高级中断,高级中断处理结束以后,再继续进行被中断的中断服务程序,这个过程称为中断嵌套。如果发出新的中断请求的中断源的优先权级别与正在处理的中断源同级或更低时,CPU不会响应这个中断请求,直至正在处理的中断服务程序执行完以后才能去处理新的中断请求。

    中断源分类

    编辑

    语音

    中断源是指能够引起中断的原因。

    一台处理机可能有很多中断源,但按其性质和处理方法,大致可分为如下五类。

    ① 机器故障中断。

    ② 程序性中断。现行程序本身的异常事件引起的,可分为以下三种:一是程序性错误,例如指令或操作数的地址边界错,非法操作码和除数为零等;二是产生特殊的运算结果,例如定点溢出;三是程序出现某些预先确定要跟踪的事件,跟踪操作主要用于程序调试。有些机器把程序性中断称为“异常”,不称为中断。

    ③ 输入-输出设备中断。

    ④ 外中断。来自控制台中断开关、计时器、时钟或其他设备,这类中断的处理较简单,实时性强。

    ⑤ 调用管理程序。用户程序利用专用指令“调用管理程序”发中断请求,是用户程序和操作系统之间的联系桥梁。

    在51单片机中有5个中断源

    中断号 优先级 中断源 中断入口地址

    0 1(最高) 外部中断0 0003H

    1 2 定时器0 000BH

    2 3 外部中断1 0013H

    3 4 定时器1 001BH

    4 5 串口中断 0023H

    中断优先权

    编辑

    语音

    几个中断请求可能同时出现,但中断系统只能按一定的次序来响应和处理。可最先被响应的中断具有最高优先权,按优先级别顺序进行处理。优先权高低是由中断部件的中断排队线路确定的。

    中断中断级

    当机器设置很多中断源时,为了简化设计,对中断源分组管理。具有相同中断优先权的中断源构成一个中断级。同一级中断使用同一个中断控制程序起点。

    中断中断屏蔽

    对应于各中断级设置相应的屏蔽位。只有屏蔽位为1时,该中断级才能参加中断优先权排队。中断屏蔽位可由专用指令建立,因而可以灵活地调整中断优先权。有些机器针对某些中断源也设置屏蔽位,只有屏蔽位为1时,相应的中断源才起作用。

    展开全文
  • 中断函数是硬件或者操作系统自动调用的。。 也就是说只要满足触发条件,就会自动调用中断函数(此时主函数是停止的)。 当中断函数执行完毕,又返回主函数继续执行主函数。 然后这样不断的循环,反正只要是触发中断...

    中断函数是硬件或者操作系统自动调用的。。
    也就是说只要满足触发条件,就会自动调用中断函数(此时主函数是停止的)。
    当中断函数执行完毕,又返回主函数继续执行主函数。
    然后这样不断的循环,反正只要是触发中断的条件一满足。
    就会自动进入中断(前提是你的中断的配置是正确的)

    中断中断

    就是MCU停止当前的执行,做好现场保护。去临时执行中断要求的响应,返回

    通俗点就是:

    你正在图书馆看书,突然尿急了(中断条件满足,置位)。你要记下你在哪个位置,书看到多少页(现场保护),然后你去尿尿(响应中断),尿完了你不再有尿意(清除中断标志)回到你原来的位置,继续看书(中断返回)

    展开全文
  • 什么是中断?

    2021-05-18 13:08:54
    什么是中断?首先,中断分硬件中断和软件中断两种。中断为计算机的硬件设备和软件"部件"提供了一种相互交流的途径,这就是它的作用。那么,都有哪些中断呢?它们又是怎样实现这种交流的呢?PC机中的CPU通常都是Intel ...

    什么是中断?

    首先,中断分硬件中断和软件中断两种。中断为计算机的硬件设备和软件"部件"提供了一种相互交流的途径,这就是它的作用。那么,都有哪些中断呢?它们又是怎样实现这种交流的呢?

    PC机中的CPU通常都是Intel 80x86处理器,它有几条引脚用来中断CPU的当前工作,并使它转去进行其它工作。每条中断引脚上都连接着一些硬件设备(例如定时器),其作用是为这条引脚提供一个特定的电压。当中断事件发生时,处理器会停止执行当前正在执行的软件,保存当前的操作状态·然后去“处理”中断。处理器中事先已经装有一张中断向量表,其中列出了每个中断号以及当某个特定中断发生时所应执行的程序。

    以系统定时器为例——作为要完成的许多任务中的一部分,PC机需要维持一天的计时工作,其具体工作过程为:(1)一个硬件计时器每秒钟向CPU发出18次中断;(2)CPU停止当前的工作并在中断向量表中查找负责维持系统计时器数据的程序(这种程序叫做中断处理程序(interrupt handler),因为它的工作就是在中断发生时处理中断);(3)CPU执行该程序(将新的定时器数据存入系统内存),然后返回到刚才被中断的地方继续往下执行。当你的程序要求使用当前时间时,定时器数据就会按照你要求的格式被组织好并传给程序。以上的解释大大简化了定时器中断的工作情况,但它是一个很好的硬件中断的例子。

    系统定时器只是通过中断机制发生的数百个事件(有时被称为中断)中的一个。在很多时候,硬仵并不参与到中断处理过程中去。换句话说,软件经常会通过中断来调用其它软件,并且可以不需要硬件的参与。DOS和BIOS就是这方面的两个主要例子。当一个程序打开一个文件,读/写一个文件,把字符写到屏幕上,从键盘那里得到一个字符,甚至询问当前时间时,都需要有一个软件中断来完成这项任务。你可能不知道发生了这些事情,因为这些中断都深藏在你所调用的那些无足轻重的小函数(例如getch(),fopen()和ctime())的后面。

    在C中,你可以通过int86()和int86x()函数产生中断。int86()和int86x()函数要求用你想产生的中断号作为它们的一个参数。当你调用其中的一个函数时,CPU将象前面所讲的那样被中断,并俭查中断向量表,以找到需要执行的那个程序。在调用这两个函数时,通常将执行的是一个DOS或BIOS程序。表14.6列出了一些常见的中断,你可以通过它们设置或检索计算机的有关信息。注意这并不是一张完整的表,并且其中的每个中断都可以服务于数百种不同的函数。

    表14.6  常见的PC中断

    —————————————————————————————————————

    中断(hex)          描述

    ————一————————————————————————————————

    5                 屏幕打印服务

    10                视频显示服务(MDA,CGA,EGA,VGA)

    11                获得设备清单

    12                获得内存大小

    13                磁盘服务

    14                串行口服务

    15                杂项功能服务

    16                键盘服务

    17                打印机服务

    1A                时钟服务

    21                DOS函数

    2F                DOS多路共享服务

    33                鼠标器服务

    67                EMS服务

    --------------------------------------------------------------------------

    当你知道了什么是中断后,你就会认识到:当计算机处于空闲状态时,它每秒可能要处理几十个中断;而当计算机紧张工作时,它每秒经常要处理数百个中断。在20.12中有一个例子程序,你可以参照该程序写出自己的中断处理程序,从而使两个程序通过中断进行交流。如果你觉得有意思,不妨试一下。

    展开全文
  • 文章目录第八章 中断系统8.1 中断的基本概念8.1.1 中断概念的引入及描述中断方式示意(以输入中断为例)**中断**的定义8.1.2 中断源及中断分类中断的分类8.1.3 中断类型码中断类型码中断向量中断向量表中断向量表的...
  • MCS-51单片机的中断系统

    千次阅读 2021-01-05 22:44:03
    单片机中断技术概述 在任何一款事件驱动型的CPU里面都应该会有中断系统,因为中断就是为响应某种事件而存在的。...单片机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。 如果单片机没有中
  • 系统中断介绍

    2021-08-01 21:12:31
    1、介绍: 中断:是指计算机程序...软中断通常要运行一个切换CPU至内核态的子例程,它常被用作实现系统调用。 3、功能: 3.1、提高计算机系统效率: 计算机系统中处理机的工作速度远高于外围设备的工作速度。通过中断
  • STM32系统嘀嗒定时器实现1ms中断事件

    千次阅读 2021-03-19 16:09:02
    滴答定时器中断
  • 中断概念是50年代中期提出的,在这以前,计算机虽然能自动运行程序,但有两个问题不能很好解决: 不能自动处理异常情况或特殊请求,如电源掉电等。 CPU与外设串行工作,CPU得不到充分利用。CPU是电子设备,基本...
  • STM32中断系统

    多人点赞 2021-04-19 15:04:39
    10.1 Cortex-M3 的中断和优先级 正常情况下,微处理器根据代码内容,按顺序执行指令。执行过程中,如果遇到其它紧急的事件需要处理,则先暂停当前任务,执行紧急事件,待紧急事件处理完后,再恢复到刚才暂停的地方...
  • 2.21实例功能前面例子中分别介绍了按键控制发光二极管的亮...单片机中除了具有基本输入输出功能的作用外,还有专门检测外界信号并作出响应的中断系统。在本例中,通过利用外部中断实现单片机对按键事件的响应和处理...
  • F28335中断系统

    2021-04-09 19:34:14
    中断:是当CPU执行原来程序时,由于发生某种随机的事件(内部或外部),引起CPU暂时中断正在运行程序,转去执行一段特殊的服务程序(中断服务子程序或者中断处理程序),当执行完特殊的服务程序,CPU则返回继续执行原来...
  • 改进系统的结构,开发系统的并行性 并行:包含同时性和并发性两方面。 同时性指两个或多个事件在同一时刻发生,并发性指两个或多个事件在同一时间段发生。 在同一时刻或同一时间段内完成两种或两种以上性质相同或...
  • 中断系统 概述 引起中断的各种因素 人为设置的中断,如转管中断 程序性故障,例如溢出、操作码不能识别、除法非法 硬件故障 I/O 外部事件,例如用 键盘中断 现行程序 中断系统需解决的问题 各中断源如何向 CPU ...
  • STM32 中断原理及外部中断实现

    千次阅读 2021-01-18 15:39:09
    NVIC 中断配置 Nested Vectored Interrupt Controller,嵌套向量中断控制器。 CM3支持256个中断,16个内核中断,240个外部中断,256级可编程中断设置。 STM32使用了其中一部分,16个内核中断,107系列有68个可屏蔽...
  • 操作系统的课程实验,C++编程实现模拟中断处理
  • 本发明实施例涉及通信技术领域,尤其涉及一种PCIe中断方法和系统。背景技术:PCIe(Peripheral Component Interconnect Express,高速外围组件互联)是最新的总线和接口标准,这个新标准将全面取代现行的PCI和AGP,...
  • 51单片机中断级别中断源默认中断级别序号(C语言用)INT0---外部中断0最高0T0---定时器/计数器0中断第21INT1---外部中断1第32T1----定时器/计数器1中断第43TX/RX---串行口中断第54T2---定时器/计数器2中断最低5中断...
  • 中断优先级

    千次阅读 2021-07-25 04:32:43
    为使系统能及时响应并处理发生的所有中断系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪...
  • 中断装置和中断处理程序统称为中断系统中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统中断系统的应用大大提高了计算机效率。不同的计算机其硬件结构和...
  • IE 中断允许控制寄存器,CPU对 中断系统 所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。 EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断0允许位; ET1...
  • linux 串口中断实现

    2021-05-12 04:31:07
    我在linux系统下写的串口程序,需要实时的读取串口来的数据,但串口来的数据又是不定时的,想用中断的方式响应,看了一些资料,总觉的还所有些不妥。首先,select函数,他需要一直在while中检测读文件描述符是否有...
  • 51单片机的中断系统

    2021-03-21 14:43:50
    一、中断的概念 中断是指:CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断...80C51的中断系统有5个中断源(80C52有 6个) ,2个优先级,可实现二级中断嵌套 。(而80C52单片机有四个中断优先级,即
  • 基于JAVA超市自助购物系统的设计与实现

    千次阅读 多人点赞 2021-08-03 20:34:06
    基于RFID的自动识别技术,通过无线射频方式实时获得磁卡对超市物品的电子标签进行读取,然后将数据通过网络传输至服务器,在应用层开发一个管理系统,对超市物品信息、店内消费等各种行为进行管理和显示。系统需有...
  • 每按一下按键(外部 0 中断 P3.2),8 个 LED 从下向上流水 1 次。 电路图: 代码: #include<reg51.h> #include<intrins.h> void delay(unsigned int m) { unsigned int i; for(;m>0;m--) { ...
  • 计算机系统(1) 实验五 中断实验一、实验目的二、实验背景及要求(一)实验背景:(二)实验要求:实现三部分程序1.用户程序:2.键盘中断处理程序:3.操作系统使能代码:三、实验要求四、实验思路五、汇编代码(仅...
  • 系统结构-3-3中断级屏蔽位设置   中断响应次序的基本规则:一般在处理某级的某个中断请求时,是不能被与它同级的或比它低一级的中断请求所...中断响应的次序用排队器硬件实现,次序是由高到低固定的,不便于改动。
  • 操作系统(Operating System,OS)是控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其它软件方便的接口和环境,它是计算机系统中最基本的系统软件。...
  • DSP28335笔记 ———— 中断系统 之 外部中断 我用的开发板是“硬汉DSP28335开发板”,文中对于硬件的描述可以说是没有,而且我还没有附上电路图希望在看的朋友不要喷我。 然后,我个人感觉普中的DSP28335开发手册...
  • 本文内容:广义分类狭义分类(x86分类)概念 广义的中断概念硬件中断中断BIOS中断 广义的陷阱概念 优先级 外部中断/中断(Interrupt)非屏蔽中断可屏蔽中断可编程中断控制器8259A高级可编程中断控制器(APIC) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 436,622
精华内容 174,648
关键字:

中断系统是由什么实现的