精华内容
下载资源
问答
  • 中断是一种什么技术
    千次阅读
    2017-11-21 20:04:28

    目录

    一、什么是CPU中断?

    二、CPU中断的作用

    三、CPU中断的类型

    四、CPU中断的过程

    五、多核CPU对中断的处理

    一、什么是CPU中断?

      使用计算机的过程中,经常会遇到这么一种情景:

      1. 你正在看电影

      2. 你的朋友发来一条QQ信息

      3. 你一边回复朋友的信息,一边继续看电影

      这个过程中,一切是那么的顺其自然。但理论上来说,播放电影的时候,CPU正在一丝不苟的执行着一条又一条的指令,它是如何在维持电影播放的情况下,及时接收并响应你的键盘输入信息呢?

      这就是CPU中断技术在起作用。

    CPU中断技术的定义如下:

    1. 计算机处于执行期间
    2. 系统内发生了非寻常或非预期的急需处理事件
    3. CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序
    4. 处理完毕后返回原来被中断处继续执行

        在这里,“非寻常或非预期的事件”指的就是你回复朋友的QQ时,用键盘键入信息。为了及时响应你键入的信息,CPU将正在执行的任务“播放电影”暂时中断,处理完你键入的信息后,继续执行“播放电影”的任务。由于这个“中断当前任务->响应键盘输入->继续当前任务”的执行周期非常短(一般都是微秒级),所以一般人感觉不出来。

    *  举个现实中的例子:*

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

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

    二、CPU中断的作用

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

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

    *  中断模式的作用和优点在于:*

    **  **1. 可以使CPU和外设同时工作,使系统可以及时地响应外部事件。

      2. 可允许多个外设同时工作,大大提高了CPU的利用率,也提高了数据输入、输出的速度。

      3. 可以使CPU及时处理各种软硬件故障(比如计算机在运行过程中,出现了难以预料的情况或一些故障,如电源掉电、存储出错、运算溢出等等。计算机可以利用中断系统自行处理,而不必停机或报告工作人员。)

    三、CPU中断的类型

      在计算机系统中,根据中断源的不同,通常将中断分为两大类:

      1. 硬件中断

      2. 软件中断

    *  硬件中断*

    *  *硬件中断又称外部中断,主要分为两种:可屏蔽中断、非屏蔽中断。

      可屏蔽中断:

      1. 常由计算机的外设或一些接口功能产生,如键盘、打印机、串行口等

      2. 这种类型的中断可以在CPU要处理其它紧急操作时,被软件屏蔽或忽略

    *  非屏蔽中断:*

      1. 由意外事件导致,如电源断电、内存校验错误等

      2. 对于这种类型的中断事件,无法通过软件进行屏蔽,CPU必须无条件响应

      在x86架构的处理器中,CPU的中断控制器由两根引脚(INTR和NMI)接收外部中断请求信号。其中:

      1. INTR接收可屏蔽中断请求

      2. NMI接收非屏蔽中断请求

    *  典型事例:*

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

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

    *  软件中断*

      软件中断又称内部中断,是指在程序中调用INTR中断指令引起的中断。比如winAPI中,keybd_event和mouse_event两个函数,就是用来模拟键盘和鼠标的输入(这个仅为笔者本人的猜测)。

    四、CPU中断的过程

    *  中断请求*

      中断请求是由中断源向CPU发出中断请求信号。外部设备发出中断请求信号要具备以下两个条件:

      1. 外部设备的工作已经告一段落。例如输入设备只有在启动后,将要输入的数据送到接口电路的数据寄存器(即准备好要输入的数据)之后,才可以向CPU发出中断请求。

      2. 系统允许该外设发出中断请求。如果系统不允许该外设发出中断请求,可以将这个外设的请求屏蔽。当这个外设中断请求被屏蔽,虽然这个外设准备工作已经完成,也不能发出中断请求。

      中断响应、处理和返回

    *  *当满足了中断的条件后,CPU就会响应中断,转入中断程序处理。具体的工作过程如下:

      1. 关闭中断信号接收器

      2. 保存现场(context)

      3. 给出中断入口,转入相应的中断服务程序

      4. 处理完成,返回并恢复现场(context)

      5. 开启中断信号接收器

      中断排队和中断判优

    **  **1. 中断申请是随机的,有时会出现多个中断源同时提出中断申请。

      2. CPU每次只能响应一个中断源的请求。

      3. CPU不可能对所有中断请求一视同仁,它会根据各中断源工作性质的轻重缓急,预先安排一个优先级顺序。当多个中断源同时申请中断时,即按此优先级顺序进行排队,等候CPU处理。

      了解了CPU中断处理的过程,就不难理解下面一种常见的情景:

      正在拷贝文件时,往某个文本框输入信息,这个文本框会出现短暂的假死,键盘输入的数据不能及时显示在文本框中,需要等一会儿才能逐渐显示出来。

      这是因为该中断操作(往文本框输入信息)在中断队列的优先级比较低,或者CPU认为正在处理的操作(拷贝文件)进行挂起的代价太大,所以只有等到CPU到了一个挂起代价较低的点,才会挂起当前操作,处理本次中断信息。

    五、多核CPU对中断的处理

      多核CPU的中断处理和单核有很大不同。多核的各处理器核心之间需要通过中断方式进行通信,所以CPU芯片内部既有各处理器核心的本地中断控制器,又有负责仲裁各核之间中断分配的全局中断控制器。

      现今的多核处理器在中断处理和中断控制方面主要使用的是APIC(Advanced Programmable Interrupt Controllers),即高级编程中断控制器。它是基于中断控制器两个基础功能单元——本地单元以及I/O单元的分布式体系结构。在多核系统中,多个本地和I/O APIC单元能够作为一个整体通过APIC总线互相操作。

    *  APIC的功能有:*

      1. 接受来自处理器中断引脚的内部或外部I/O APIC的中断,然后将这些中断发送给处理器核心进行处理

      2. 在多核处理器系统中,接收和发送核内中断消息

      对于外部设备发出的中断请求,由全局中断控制器接收请求并决定交给CPU的哪一个核心处理。也可针对APIC编程,让所有的中断都被一个固定的CPU处理。

    原文链接:http://www.cnblogs.com/funeral/archive/2013/03/06/2945485.html

    更多相关内容
  • 中断屏蔽技术

    千次阅读 2022-03-19 15:29:00
    【README】 本文转自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐; 【1】中断屏蔽 ...3,中断屏蔽的具体原理是: 每个中断源都有中断屏蔽字(如16个bit); 当该中断

    【README】

    本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐;


    【1】中断屏蔽

    1,中断屏蔽的意思是,在中断1的服务程序执行过程中,不允许被其他中断打扰;

    2,按理,对于不同中断源,它有中断响应优先级,但这个是硬件决定的,无法修改;而如果要修改各个中断的优先级(即是否可以被打扰),可以通过中断屏蔽寄存器(人工设置该寄存器的值)来实现;这是提出中断屏蔽技术的原因所在;

    3,中断屏蔽的具体原理是: 每个中断源都有一个中断屏蔽字(如16个bit); 当该中断被响应或执行该中断的服务请求时,对应中断源的屏蔽字设置到中断屏蔽寄存器;在中断响应时,cpu会根据屏蔽寄存器的值来判断是否响应该中断;

    【1.1】屏蔽技术介绍

    1 中断屏蔽技术

    • 1.1 通过设置中断屏蔽字来改变中断服务优先级,从而提高系统设计和响应的灵活性;
    • 1.2 中断屏蔽字是通过中断屏蔽触发器来设置的;INTR 是中断请求寄存器;MASK 是中断屏蔽触发器(MASK=0,非门输出1时表示未屏蔽);

    2 如何提出中断请求?

    • 触发器D在完成后,提出中断请求,能够提出中断的条件是,这个中断源没有被屏蔽掉;

    3 右图第2种方式实现中断屏蔽

    • 中断屏蔽字的长度等于中断源的个数,屏蔽字的每个bit对应到每个mask的取值上
    • 若maski等于1,则表示第i个中断源的中断请求不会被响应(或被屏蔽);当然也无法提出中断请求;

    中断屏蔽触发器的作用是 屏蔽某个中断源发出中断请求,也不能参加中断请求优先级的排队;

    【1.2】中断屏蔽字

    屏蔽触发器对应的值是屏蔽字;
    如,16个中断源,每个中断源都对应一个屏蔽字;
    每个屏蔽字表示当中断源的中断服务程序在执行过程中,是否允许其他中断源提出中断请求
    进入到排队器进行排队(即是否允许其他中断源提出中断请求);对应的bit位为1表示屏蔽,0表示不屏蔽;

    如:1号中断源的中断服务程序在执行过程中,无论是1号还是2.。。。16号中断源提出的中断请求都不会进入中断排队器中排队(即1号中断源屏蔽其他中断源的中断请求);
    但2号中断服务程序的执行过程中,允许1号中断源提出中断请求并被1号打断;


    【2】 屏蔽技术可以改变中断处理优先级

    【2.1】中断响应优先级与处理优先级

    1,中断优先级分为响应优先级,处理优先级;

    • 响应优先级,属于中断硬件给定,无法修改;
    • 处理优先级,可以通过屏蔽技术进行修改;

    2,处理优先级是可以改变的,通过重置屏蔽字,让低优先级的中断无法进入排队器排队;通过中断屏蔽字让某一个中断源的处理优先级被提高

    【例】在执行C的中断服务程序的过程中,对应的中断屏蔽字(中断屏蔽寄存器)被设置为0110,只有A或D的中断请求可以进入中断排队器中排队;

     【2.2】例子,屏蔽技术修改中断处理优先级

    响应优先级为 A B C D,降序排列, 无法修改;处理优先级修改为, A D C B,降序排列;

    【例子】加入屏蔽技术后的多中断处理步骤

    • 步骤1:ABCD同时提出中断服务请求,因为主程序屏蔽字(即中断屏蔽寄存器)为0000(不会屏蔽任何中断),所以4个中断都会进入排队器;
    • 步骤2:又A的响应优先级最高,所以cpu先响应A,转而执行A的中断服务程序;在执行A中断服务程序过程中,因A的屏蔽字为1111,故它会把中断屏蔽字设置为1111,这会屏蔽其他中断源(ABCD)的中断请求;
    • 步骤3:A的中断服务程序执行后,返回主程序,这时主程序屏蔽字是0000,所以中断屏蔽字寄存器为0000; 即主程序随时可以被打断,DCB都可以进入中断排队器进行排队;
    • 步骤4:又B的响应优先级最高,所以先响应B,执行B的中断服务程序;又B的中断屏蔽字为0100,所以B允许被CD中断源打断;
    • 步骤5:在执行B的中断服务程序过程中,CD均可以提出中断请求,并进入中断排队器排队;
    • 步骤6:又C的响应优先级高于D,所以先响应C,转而执行C的中断服务程序(C中断B);响应C后, C的中断屏蔽字设置到中断屏蔽字寄存器,即0110;那么C的中断服务程序可以被AD中断源打断;
    • 步骤7:在执行C的中断服务程序过程中,D提出中断请求,进入排队器进行排队;又D的处理优先级高于C,所以中断C,转而执行D(D中断C);
    • 步骤8:执行D完成后,回到C的中断服务程序的断点,继续执行C,因为D中断的是C(中断谁就返回谁);
    • 步骤9: C执行完成后,再返回到B,因为C中断的是B;
    • 步骤10:B执行完成后,整个执行就结束了;

    【3】新屏蔽字的设置

    新屏蔽字的设置步骤:

    序号

    步骤

    描述

    1

    保护现场

    Push指令,把要用到的寄存器的值保存起来,以便从中断恢复后使用;

    2

    置屏蔽字

    设置中断屏蔽字;

    3

    开中断

    提前开中断,目的是实现多重中断;设置EINT=1

    4

    执行中断服务程序

    5

    关中断

    因为恢复现场,恢复中断屏蔽字的过程不能被打断;设置EINT=0

    6

    恢复现场

    把之前被保护的现场数据从内存恢复到寄存器;

    7

    恢复中断屏蔽字

    把中断屏蔽寄存器的值设置为主程序的屏蔽字(0000),允许被任何中断打断;

    8

    开中断

    允许中断;设置EINT=1

    9

    中断返回

    从中断中恢复到主程序;

    展开全文
  • 中断机制是操作系统中极为重要的个部分。操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断机制进行处理。所以也有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”的。 由于中断机制...

    中断机制是操作系统中极为重要的一个部分。操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断机制进行处理。所以也有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”的。

    由于中断机制的实现必须依靠相关的硬件支持,所以硬件中断装置是操作系统运行环境中的一个极为重要的组成部分。中断的实现是硬件中断装置和相应的中断处理软件共同完成的。在本节中,首先介绍中断的概念,然后叙述中断系统的工作原理,最后分析中断处理的过程。

    一、中断与异常的概念

    1、中断与异常

    (1)中断的概念

    所谓中断是指处理器对系统中或系统外发生的异步事件的响应。异步事件是指无一定时序关系的随机发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等。

    “中断”这个名称来源于:当发生某个异步事件后,中断了处理器对当前程序的执行,而转去处理该异步事件(称作执行该事件的中断处理程序)。在该异步事件处理完了之后,处理器再转回原程序的中断点继续执行。这种情况很像我们日常生活中的一些情况。例如,某人正在看书,此时电话响了(异步事件),于是用书签记住正在看的那一页(中断点),再去接电话(响应异步事件并进行处理),接完电话后再从被打断那页继续向下看(返回原程序的中断点执行)。

    最初,中断技术是用于向处理器报告某个“设备已完成操作”的一种手段,以免处理器不断地测试设备状态而消耗大量宝贵的处理器时间,后来,中断技术的应用越来越广泛。中断是所有要打断处理器的正常工作次序,并要求其去处理某一事件的一种常用手段。我们把引起中断的事件称为中断事件或中断源;中断源向处理器发出的请求信号称为中断请求;而把处理中断事件的程序称为中断处理程序;发生中断时正在执行的程序的暂停点叫作中断断点;处理器暂停当前程序转而处理中断的过程称为中断响应中断处理结束之后恢复原来程序的执行被称为中断返回

    一个计算机系统提供的中断源的有序集合一般被称为中断字,这是一个逻辑结构,在不同的处理器有着很不相同的实现方式。在一台计算机中有多少中断源,是根据各个计算机系统的需要安排的。 Intel的x86微处理器能处理256种不同的中断。

    为了使得中断装置可以找到恰当的中断处理程序,专门设计了中断处理程序入口地址映射表,又称中断向量表。表中的每一项称为一个中断向量,主要由程序状态字PSW和指令计数器PC的值组成。不同性质的中断源需要用不同的中断处理程序来处理,也就是对应不同的中断向量。通过中断向量,可以找到中断处理程序在内存中的位置。

    中断技术解决了主机和外设并行工作的问题,消除了因外设的慢速而使得主机等待的现象,为多机操作和实时处理提供了硬件基础。一般来说中断具有以下作用。

    能充分发挥处理器的使用效率。因为输入输出设备可以用中断的方式同处理器通信,报告其完成处理器所要求的数据传输的情况和问题,这样可以免除处理器不断地査询和等待,从而大大提高处理器的效率。

    提高系统的实时能力。因为具有较高实时处理要求的设备,可以通过中断方式请求及时处理,从而使处理器立即运行该设备的处理程序(也是该中断的中断处理程序)。所以目前的各种微型机、小型机及大型机均有中断系统。

    从用户的角度来看,中断正如字面的含义,即正常执行的程序被打断,当完成中断处理后再恢复执行。这完全由操作系统控制,用户程序不必做任何特殊处理。这一过程可以用图24示意。

    (2)异常

    最早中断和异常并没有区分,都把它们叫作中断。随着它们的发生原因和处理方式的差别愈发明显,才有了现在的中断和异常之分。

    中断是由外部事件引发的,而异常则是由正在执行的指令引发的

    2、中断与异常的分类

    无论是哪种计算机都有很多中断源,不同的系统依据这些中断源引起的中断特点等方面的不同,划分为若干个不同中断类型。这种分类在不同的系统中往往差异比较大。

    典型的中断包括

    1)时钟中断,由处理器内部的计时器产生,允许操作系统以一定规律执行函数,如时间片到时、硬件实时钟到时等;

    2)输人输出(IO)中断,由LO控制器产生,用于通知一个L/O操作的正常完成或者发生的错误;

    3)控制台中断,如系统操作员通过控制台发出命令等;

    4)硬件故障中断,由掉电、存储器校验错等硬件故障引起等

    异常发生的时间以及位置具有确定性,典型的异常包括:

    1)程序性中断,在某些条件下由指令执行结果产生,例如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、虚拟存储中的缺页等;

    2)访管指令异常,目的是要求操作系统提供系统服务。

    由于中断与异常的硬件机制工作原理类似,为方便起见,之后的叙述中以中断涵盖两个概念

    二、中断系统

    中断系统是现代计算机系统的核心机制之一,它不是单纯的硬件或者软件的概念,而是硬件和软件相互配合、相互渗透而使得计算杋系统得以充分发挥能力的计算模式。

    中断的发生会激活很多事件,这包括硬件和软件的方面的事件,所以对于整个中断事件的接收、响应和处理需要有计算机的硬件和软件两方面的配合,共同完成。

    可以把中断系统分为两大组成部分:中断系统的硬件中断装置和软件中断处理程序。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序。中断处理程序则针对对中断事件的性质而执行相应的系列操作。

    1、中断请求的接收

    中断系统如何接收中断源的中断请求,这往往因机器而异。不过从原理上讲,它们是通过在计算机硬件的中断逻辑线路和中断寄存器实现的

    中断逻辑线路用于接收中断信号,并把收到的中断信号寄存在线路中的硬件触发器中。在中断逻辑线路中有若干个专门接受中断信号的触发器,每个触发器称为一个中断位。通常规定,一个触发器的值为1时,表示该触发器收到中断信号,为0时表示无中断信号。这些触发器的全体称为中断寄存器,所以中断寄存器是由若干个中断位组成的。

    在有的计算机中,为了不丢失和区分每个中断信号,对每个中断源都用一个固定的触发器来寄存中断信号。而在有的计算机中,对某些没有得到响应的、不重要的中断信号,就不予保存下来,而把它丢弃掉。

    2、中断响应

    中断请求的响应机制如下。处理器的控制部件中设置有中断信号扫描结构,它在每条指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号到来。若无中断信号,处理器就继续执行下一条指令。若有中断到来,处理器接收由硬件中断装置发来的中断向量代号。

    接着,处理器开始为后续的软件处理中断做必要的准备工作:保存中断点的程序执行上下文环境(又称保存现场)。这是因为中断处理结束之后,处理器还要继续被中断程序的执行,所以原有中断点程序执行的所有必要信息都必须保存下来。这个上下文环境通常包括程序状态字PSW、程序计数器PC中的下一条指令位置和一些寄存器的值。它们一般保存在个专门的系统堆栈中。处理器状态此时被切换到管态。

    处理器根据中断向量代号查询中断向量表,获得与该中断源相联系的中断处理程序的入口地址,并将PC置成该地址。随后控制权转移到中断处理程序。

    整个中断请求的响应过程,如图25所示。

    图25中的中断请求响应的工作过程是:

    ①处理器接收中断信号;

    ②保护现场,将中断断点的程序状态字PSW和程序计数器PC值存入系统堆栈;

    ③分析中断向量,取得中断处理程序的入口地址;

    ④将处理器的PC值置为中断处理程序的入口地址;

    ⑤调用中断处理程序。

    3、中断处理

    这里讨论在中断信号已经被中断系统的硬件中断装置接收和响应之后,对应的软件中断处理程序进行中断处理的具体过程

    在处理器的控制权转移到中断处理程序之后,中断处理程序开始工作,其中包括检查I/O相关的状态信息,操纵I/O设备或者在设备和内存之间传送数据等。具体的中断处理程序的内容,完全是依据中断请求的类别和要求的不同,而分别设计的。

    在中断处理程序结束工作之后,处理器会检测到一条中断返回指令。在执行中断返回指令时,处理器会把原先被中断的程序的上下文环境从系统堆栈中恢复。处理器状态也从管态恢复成被中断时的目态。整个中断处理结束。处理器开始一个新的指令周期,继续执行原来被中断的程序。

    上述整个中断信号的接收、响应和处理过程,可以简要地归纳为:接收和响应中断,保护中断断点现场,分析中断向量,调用中断处理程序,中断处理结束恢复现场,原有程序继续执行

    4、几种典型中断的处理

    这里介绍几种计算机系统中比较典型的中断处理,包括I/O中断、时钟中断、硬件故障中断、程序性中断和系统服务请求(自愿性中断)

    (1)I/O中断

    I/O中断一般由I/O设备的控制器或者通道发出。I/0中断通常可分成两大类:I/O操作正常结束以及I/O异常。对于前者来说,如果要继续进行I/O操作,则需要在准备好以后重新启动I/O。若请求I/O的程序正处于等待I/O的状态,则应该将其唤醒。对于后者,常常需要重新执行失败的I/O操作,不过这个重试的次数常常有一个上限,因为错误可能由硬 件损伤引起,当重试次数过大的时候,系统将判定硬件故障,并通知管理员。

    比如,我们平常在PC上用 CD-ROM观看VCD或DVD的碟片时,有时会碰到读碟出错。在重复读碟几次之后,如果读碟岀错继续,系统就会停止读碟,并报告岀错,甚至退岀碟片。

    (2)时钟中断

    时钟中断是计算机系统多道能力的重要条件之一(有关时钟的概念,参看本章的后面部分)。时钟中断处理程序通常要做较多的与系统运转、管理和维护相关的工作,它们对于整个系统是非常重要的,主要内容如下。

    维护软件时钟。系统有若干个软件时钟,控制着定时任务以及进程的处理器时间配额,时钟中断需要维护,定时更新这些软件时钟。

    处理器调度。维护当前进程的时间片软件时钟,并在时间片到时后运行调度程序选择下一个被调度的进程。

    控制系统定时任务。通过软件时钟和调度程序定时激活一些系统任务,例如监测死锁、进行系统记账、对系统状况进行审计等。

    实时处理,例如产生系统“心跳”,激活系统看门狗等。

    当然,在不同的操作系统设计中,时钟中断处理的内容也不一样。很多系统的时钟中断通常只处理软件时钟,并在一定条件下激活系统调度程序。

    一般来说,调度程序并不在时钟中断里,因为时钟中断的优先级往往比较高,而且频繁发生,如果时钟中断处理时间过长,就会使一些较低优先级的中断丢失。

    (3)硬件故障中断

    硬件故障一般是由硬件的问题引起的,排除此类故障通常需要人工的干预,例如复位硬件或者更换设备等。

    硬件故障中断处理程序需要做的工作是保存现场,使用一定的手段警告管理员并提供些辅助的诊断信息。此外在高可靠的系统中,中断处理程序还需要评估系统的可用性,并尽可能地恢复系统。

    例如,使用 WindowsXP的系统在关键硬件发生故障时,会出现系统蓝屏死机。这时操作系统实际上进入了相应的故障处理程序,并发现这个故障是不可恢复的,于是在屏幕上打印出了发生故障时的程序位置(通常在某个管态驱动程序中),并且开始进行内存转储(将定范围的内存内容写到磁盘上去,实际上是系统发生故障时的全系统“快照”),以备日后进行程序调试级故障诊断。

    (4)程序性中断

    程序性中断多数是程序指令出错、指令越权或者指令寻址越界而引发的系统保护。它的处理方法可以依据中断是否可以被用户程序自行处理,而分成两类。

    第一类为程序性中断,只能由操作系统完成。这种情况多为程序试图做自己不能做的操作引起的系统保护,例如访问合法的但是不在内存的虚地址引发的缺页中断等。这时候的处理一般由操作系统的相关扩展功能模块完成。

    第二类为程序性中断,可以由程序自己完成。例如一些算术错误。因为不同的程序可能有不同的处理方法,所以很多操作系统提供由用户自行处理这类中断的“绿色通道”。一般来说,系统调试中断,如断点中断、单步跟踪等,用以支持各种程序的调试,是可以被用户程序处理的。

    (5)系统服务请求(自愿性中断)

    系统服务请求一般由处理器提供的专用指令(又称访管指令)来激发。例如x86处理器提供int指令,用来激发软件中断,其他的不少处理器则专门提供系统调用指令 syscall执行这些指令的结果是系统被切换到管态,并且转移到一段专门的操作系统程序处开始执行。这种指令的格式通常是指令名加上请求的服务识别号(有时是中断号)。操作系统利用处理器提供的这种接口建立自己的系统服务体系。处理器一般不负责定义系统调用所传递的参数格式。因为不同的系统会提供不同的系统调用,而不同的系统调用需要不同的参数,所以给系统服务例程传递什么样的参数,以及如何传递这些参数都由操作系统规定。

    这方面的实例可以看一下 MS-DOS定义的2h号中断的系统服务功能以及参数列表,这可以在有关MS-DOS程序设计的书的附录中查到。

    现代操作系统一般不会提供直接使用系统调用指令的接口,通常的做法是提供一套方便、实用的应用程序函数库(又称为应用程序设计接口API。这些函数从应用的较高层面重新封裝了系统调用,一方面屏蔽了复杂的系统调用传参问题(用汇编语言传参),另一方面是高级语言接口,有助于快速开发。还有的系统在更高层面提供了系统程序设计的模板库和类库。

    三、中断优先级、中断屏蔽与中断嵌套

    1.多级中断与中断优先级

    现代的微处理器都提供有多级中断系统,从硬件上看,多级中断系统表现为有多根中断请求线从不同设备连接到中断逻辑线路上。连接在不同中断请求线上的中断信号,表示它们有不同的中断级别。中断信号的级别代表了该中断信号是否具有被优先处理的特权,以及这个特权的大小。可见,在多级中断系统中,硬件决定了各个中断的优先级别。

    多级中断的第一个作用是,对各类中断信号依据其紧急程度和重要性划分级别。在需要处理的各类中断信号中,它们的紧急程度和重要性是不同的。系统当然应该优先处理最紧急的或者最重要的中断信号。而中断信号本身的紧急或重要性,则由该中断的级别的高低来标识。在多级中断系统中,在同时有多个中断请求时,处理器接收中断优先级为最高的中断(如果其中断优先级高于当前运行程序的中断优先级时),而忽略其中断优先级较低的中断。比如,计算机的电池即将没有电了,这种掉电中断显然应该有非常高的优先级别。

    多级中断的第二个作用是,解决如果有重要程度相当的多个中断信号同时到达时,如何选择首个被处理的中断信号的问题。比如,在一套计算机系统上接有一台打印机和一台扫描仪,在打印机发出了打印完毕的信号的同时,扫描仪也发出了扫描完毕的信号。在一般情况下,这两个中断信号具有同等的优先级。

    如果在同一中断级中的多个设备接口中同时都有中断请求时,一般有两种办法可以采用

    1)固定的优先数:给每个设备接口安排一个不同的、固定的优先顺序。比如以该设备在总线中的位置来定优先顺序,离处理器近的设备,其优先数高于离处理器远的设备。

    2)轮转法:用一个表格,依次轮转响应,这是一个较为公平合理的方法。

    2、中断屏蔽

    在整个中断系统中,可以允许或者禁止中断系统对某些类别中断的响应。我们已经知道,在程序状态字PSW中设计有中断屏蔽位,主机是否允许响应或禁止某些中断,则由PWS中的中断屏蔽位决定,这些屏蔽位标识了被屏蔽的中断类或者中断。

    一旦某个I/O中断被程序状态字PSW中的中断屏蔽位加以屏蔽,那么此时即使有I/O中断信号,处理器也不予响应。

    对于被屏蔽的中断信号,通常仍然保存在中断寄存器中,有些可以在以后继续响应,而有些将被简单地丢弃。

    很显然,有了中断屏蔽,中断系统中原先由硬件事先给定的中断优先级,就可能发生改变。例如,在一个计算机系统中,由CD-ROM到硬盘的数据传送的优先级别低于硬盘内部的数据操作。但是,如果一旦机器正在进行 CD-ROM到硬盘的数据传送,对硬盘内部的其它数据操作就被暂时屏蔽,这些硬盘操作必须在该 CD-ROM到硬盘的数据传送结束之后才能进行。换句话说,此时 CD-ROM到硬盘的数据传送的优先级别高于硬盘内部的数据操作。

    还有一类中断信号是不可屏蔽的,一般这类中断信号属于机器故障中断。比如内存奇偶校验错,以及掉电等使得机器无法继续操作一类的故障。一旦发生这类不可屏蔽的中断,不管管程序状态字中的屏蔽位是否建立,处理器都要立即响应这类中断,并进行处理。

    3、中断嵌套

    一般的计算机系统中都有多个中断源,在这样的系统中,如果一个中断的处理过程中又发生了中断,那么将引起多个中断处理问题。对多个中断的处理策略一般有如下两种。

    对于多个中断进行处理的第一种策略是,正当处理一个中断时禁止其他中断,此时系统将对任何新发生的中断置之不理。在这期间发生的中断将保持挂起状态。当处理器再次允许中断时,这个新的中断信号会被处理器检测到,并做出处理。

    这种处理方法可以用软件简单地实现,只要在任何中断处理之前使用禁止中断指令,在处理结束之后,再使用开放中断指令就可以了。这样,所有的中断将严格地按照发生的顺序被处理。不过,这样的处理策略没有考虑到中断信号的紧急程度,无法达到比较严格的中断处理时间要求。

    对于多个中断进行处理的第二种策略是中断嵌套。即中断按照优先度分级,允许优先级较高的中断打断优先级较低的中断处理过程,于是引起中断处理的嵌套,如图26所示。

    只要合适地定义中断的优先级别,第一种策略的弊端大都可以被第二种中断嵌套策略所克服。

    由于在中断嵌套中优先级较高的中断可以打断优先级较低的中断处理过程,因此必须把优先级较低的中断处理过程的现场也保存起来。这些被保护现场的次序,与恢复现场的次序正好相反,所以应该采用堆栈作为现场保护区 域。堆栈应该处于系统空间中,以防止被破坏,又称为系统堆栈。

    在中断发生时,硬件中断装置将程序状态字PSW、指令计数器PC的值以及其他重要现场信息压入系统堆栈。如果发生中断嵌套,被中断的处理的程序状态字PSW、指令计数器PC的值,以及其他重要现场信息也被压入系统堆栈。

    每发生中断嵌套一次,就保护一次被中断的处理过程的现场,进行相关的压栈操作。而每结束一层嵌套的处理时,就从系统堆栈中弹出对应的程序状态字PSW、指令计数器PC的值以及其他重要现场信息,逐层恢复现场。

    作为中断嵌套策略的一个例子,考虑在一个系统中存在总线、硬盘以及扫描仪三个设备同时操作时的处理情况。假定三者的中断优先级依次分别为9、5、3,其中数字大的具有较高的优先级。扫描动作的处理从某个时间开始,它的处理时间较长,其间发生了一次网络数据的传送请求,于是扫描仪中断处理被打断,处理器转而去处理网络通信时的总线服务请求。在处理网络通信的总线服务请求期间,用户恰好提交了一个硬盘存储文件的请求。但是因为硬盘中断优先级较低,于是硬盘中断的处理就被推迟到总线请求处理完之后,同时由于它的优先级高于扫描仪的中断,所以对硬盘中断的处理优先于对扫描仪中断的处理。在硬盘中断处理完毕之后,处理器才回到原先对扫描仪中断处理的程序上。这个中断处理的过程中发生了三重中断嵌套。

     

    展开全文
  • 中断优先级

    千次阅读 2021-07-25 04:32:43
    在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( ...

    为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。

    在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority ),又称优先权,先响应优先级最高的中断请求。另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。

    中文名

    中断优先级

    外文名

    Interrupt priority

    解决方法

    软件、硬件优先级排队作    用

    及时响应并处理发生的所有中断

    排序方法

    引起中断事件的重要性和紧迫程度

    依    据

    优先级

    中断优先级简介

    编辑

    语音

    微机系统中有多个中断源,有可能出现两个或两个以上中断源同时发出中断请求的情况。多个中断源同时请求中断时,CPU必须先确定为哪一个中断源服务,要能辨别优先级最高的中断源并进行响应。CPU在处理中断时也要能响应更高级别的中断申请,而屏蔽掉同级或较低级的中断申请,这就是中断优先级问题。[1]

    中断系统中,CPU一般根据各中断请求的轻重缓急分别处理,即给每个中断源确定一个中断优先级别,系统自动对它们进行排队判优,保证首先处理优先级别高的中断请求,待级别高的中断请求处理完毕后,再响应级别较低的中断请求。对多个中断源进行识别和优先级排队的日的就是要确定出最高级别的中断源,并形成该中断源的中断服务程序入口地址,以便CPU将控制转移到该中断服务程序去。[1]

    一般指以下两层含义:[2]

    ①若有2个或2个以上的中断源同时提出中断请求,微处理器先响应哪个中断源,后响应哪个中断源;[2]

    ②若一个中断源提出中断请求,微处理器给予响应并正在执行其中断服务程序时,又有1个中断源提出中断请求,后来的中断源能否中断前一个中断源的中断服务程序。[2]

    中断优先级分类

    编辑

    语音

    中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。最初引入硬件中断,只是出于性能上的考量。如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等待(Busy waiting),反复轮询该设备是否完成了动作并返回结果。这就造成了大量处理器周期被浪费。引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。这样,在设备进行处理的周期内,处理器可以执行其他一些有意义的工作,而只付出一些很小的切换所引发的时间代价。后来被用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面,并产生通过软件方式进入中断处理(软中断)的概念。[3]

    中断可分为如下几种:

    中断优先级硬件中断

    (Hardware Interrupt)[3]可屏蔽中断(maskable interrupt)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。[3]

    非可屏蔽中断(non-maskable interrupt,NMI)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。[3]

    处理器间中断(interprocessor interrupt)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。[3]

    伪中断(spurious interrupt)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。[3]

    中断优先级软件中断

    (Software Interrupt)软件中断也叫内部中断,它是CPU执行中断指令INT n产生的中断。中断指令提供了直接调用中断服务程序的软件手段。[4]

    软件中断是以INT n指令的形式出现在程序中的,中断指令占用两个字节,第一个字节为指令码CDH,第二个字节为指令操作数n,即中断类型码。当软件中断时,CPU从指令流中读取中断类型码;当可屏蔽中断时,要在发出中断响应信号ITA后,才能从数据总线上读取中断类型码。可见,软件中断与外部中断有许多不同之处,它具有自身的一些特点,表现在以下几个方面。[4]

    (1)软件中断是以一条指令INT n而进入中断服务程序的,并且其中断类型码由指令的第二字节提供。[4]

    (2)软件中断不受中断允许标志IF的禁止,即无论正=1或0,对任何一个软件中断都不影响。其中,只有单步中断受单步标志TF的影响,即只有当TF=1时,才能执行单步中断。[4]

    (3)由于CPU从指令流中读取软件中断的中断类型码,因此,在软件中断进入中断后,不需要执行中断响应总线周期,也不必从数据总线上读取中断类型码。[4]

    (4)软件中断除类型0(除数为0的中断)外,都没有随机性,因为软件中断是以INT n指令的形式出现在程序中的,该指令放在程序的何处何时执行都是预先定好的,这就使得软件中断不会出现随机性。[4]

    中断优先级中断源种类

    编辑

    语音

    (1)设备中断:如键盘、打印机等设备的数据传送请求等。[1]

    (2)指令中断:为了方便用户使用系统资源或调试软件而设置的中断指令,由程序预先安排的中断指令(INT n)引起,如BIOS及DOS系统功能调用的中断指令等。[1]

    (3)故障中断:计算机内部设有故障自动检测装置,如电源掉电、奇偶校验错或协处理器中断请求等意外事件,都要求CPU进行相应的中断处理。[1]

    (4)实时时钟中断:在自动控制系统中,常遇到定时检测与时间控制,这时可采用外部时钟电路进行定时。CPU可发出命令启动时钟电路开始计时,待定时时间到,时钟电路就会向CPU发出中断申请,由CPU进行处理。[1]

    (5) CPU内部运算产生的某些错误所引起的中断:如除法出错、运算溢出、程序调试中设置断点等。[1]

    中断优先级中断响应原则

    编辑

    语音

    响应不同优先级中断的原则是:[5]CPU首先响应高优先级的中断请求;

    如果优先级相同,CPU按查询次序响应排在前面的中断;

    正在进行的中断过程不能被新的同级或低优先级的中断请求所中断;

    正在进行的低优先级中断过程,能被高优先级中断请求所中断。

    中断优先级响应流程

    编辑

    语音

    CPU在执行每一条指令的后期,要对所有的中断源进行检测。[5]

    在检测到中断请求前,程序计数器PC中存储的是下一条指令码的地址。如果CPU检测到某一中断请求并将响应该中断时,它要跳转到该中断服务程序处,即把PC的当前内容保存起来,再把该中断服务程序的入口地址送给PC,则其后CPU就执行该中断服务程序了。[5]

    b7240e5016ab5eacdf7d8c1f303e9f9b.png

    图1 CPU响应中断流程

    [5]在退出中断服务程序前,CPU要执行中断返回指令RETI,该指令把进入中断服务程序前保存的PC内容再写入PC,则其后CPU就从进入中断服务程序前的断点处向下执行指令,其流程如图1所示用C51编写中断服务函数时,并不需要在中断服务函数的最后编写RETI指令,该指令由编译器在编译中断服务函数时自动添加。

    中断优先级优先级排队

    编辑

    语音

    在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority),又称优先权,先响应优先级最高的中断请求。另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。[6]

    中断源的优先级判别一般可采用软件优先级排队和硬件优先级排队两种方法。[7]

    中断优先级软件优先级排队

    948d699fb96c8f5dfd92f8ded619a179.png

    图2 软件査询接口电路如图2所示,优先级由查询顺序决定,先查询的中断源具有最高的优先级。[8]

    软件优先级排队是指各个中断源的优先权由软件安排。若干个外设的中断请求信号相“或”后,送至CPU的中断接收引脚(如INTR)。这样,只要任一外设有中断请求,CPU便可响应中断。在中断服务子程序前可安排一段优先级的查询程序,即CPU读取外设中断请求状态端口,然后根据预先确定的优先级级别逐位检测各外设的状态,若有中断请求就转到相应的Uo处理程序入口,为该外设服务。[7]

    71af1de55d112643a2b592e6e864456d.png

    软件查询程序流程用软件査询方法确定中断优先级是一种最简单的解决方法,主要依靠软件方法实现,不需要专门的优先级排队电路,可以通过修改查询顺序来修改中断优先级,不必更改硬件。但是当中断源个数较多时,由逐位检测査询到转入相应中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。[7]

    中断优先级硬件优先级排队

    dd8ec7437355aa01df587d6a172b5863.png

    菊花链优先级排队电路为提高中断处理效率,通常采用硬件处理中断优先权问题,即采用优先级排队电路或专用中断控制器等硬件电路来管理中断。其中,硬件优先权排队电路形式众多,有采用编码器组成的,有采用链式电路的。[1]

    利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先级最高,排在最后面的优先级最低。[6]

    中断优先级改变并发中断优先级的方法

    编辑

    语音

    在PC环境下,要改变并发中断优先级,实现理想的中断处理顺序,要从以下两个方面着手。

    (1)使低优先级的中断可中断高优先级的中断服务程序。

    通过研究发现,8259A 中的中断服务寄存器ISR。对中断处理顺序的改变起了非常重要的作用。当中断服务寄存器的相应位置 1时,8259A 自动禁止同级和较低级的中断请求。因此要改变中断的处理顺序,必须在CPU响应中断后,将8259A中的相应位清零的。这样,如果有新的中断请求,不论它的级别高低,只要CPU处于开中断状态,芯片就会马上再向CPU发出中断请求,即低优先级的中断就可能会中断高优先级的中断服务程序。而实现CPU响应中断后,将中断服务寄存器8259A中的相应位清零,有3种解决的办法。[9]

    (2)在中断处理程序中设置新的中断屏蔽字。

    为了能根据需要,改变实际的中断处理次序,很多机器都设置了中断屏蔽寄存器硬件,以决定是否让某级中断请求进入中断优先权电路进行优先权比较。级别高的中断请求优先得到响应。只要将每一类中断处理程序的各级中断屏蔽位设置成不同的状态,就可以得到所希望的中断处理次序。[9]

    中断优先级单级中断与多级中断

    编辑

    语音

    根据计算机系统对中断处理策略的不同,中断系统可以分为单级中断系统和多级中断系统,单级中断系统是中断结构中最基本的形式。[1]

    在单级中断系统中,所有的中断源都属于同一级,所有中断请求触发器排成一行,其优先次序是离CPU越近优先级越高。当响应某一中断请求时,CPU执行该中断源的中断服务程序,在此过程中,中断服务程序不允许被其他中断源所打断,即使优先级比它高的中断源也不例外,只有当该中断服务程序执行完毕之后,才能响应其他中断。[1]

    多级中断系统是指计算机系统中的多个中断源,根据中断事件的轻重缓急程度不同而分成若干个级别,每一个中断级分配一个优先级。一般而言,优先级高的中断级可以打断优先级低的中断服务程序,以中断嵌套方式进行工作。[1]

    在中断优先级已定的情况下,CPU总是首先响应优先级最高的中断请求。当CPU正在响应某一中断源的请求,即正在执行某个中断服务程序时,若有优先级更高的中断源申请中断,为使级别更高的中断源能及时得到服务,CPU就应暂停当前正在服务的级别较低的服务程序而转入新的中断源服务,等新的级别较高的中断服务程序执行完后,再返回到被暂停的中断服务程序继续执行,直至处理结束返回主程序,这种过程称为中断嵌套。CPU允许高优先级中断请求可以打断低优先级中断服务,使CPU对于急需处理的事件立即做出响应。[1]

    中断嵌套的出现,扩大了系统中断功能,进一步加强了系统处理紧急事件的能力。中断嵌套可以商多级。具体级数(即嵌套深度)原则上不限制,只取决于堆栈深度,实际上与要求的中断响应速度有关。[1]

    词条图册

    更多图册

    参考资料

    1.

    杨立,邓振杰,荆淑霞等编著.微型计算机原理与接口技术:中国铁道出版社,2016.02:第219页

    2.

    袁志勇,王景存主编;章登义,刘树波副主编.嵌入式系统原理与应用技术:北京航空航天大学出版社,2014.01:第146页

    3.

    张自军,蒋军,叶爱芹.微机原理与接口技术:中国科学技术大学出版社,2012.08:第205页

    4.

    李育贤.微机接口技术及其应用:西安电子科技大学出版社,2007.06:第73页

    5.

    王普斌.单片机接口与应用:冶金工业出版社,2016.04:第61页

    6.

    刘显荣主编;张元涛,吴云君副主编;汪德彪,常继彬,叶文,范苏参编.微机原理与嵌入式接口技术:西安电子科技大学出版社,2016.08:第129页

    7.

    万晓东,陈则王,孔德明编著.计算机硬件技术基础:南京航空航天大学,2013.01:第275页

    8.

    刘显荣主编;张元涛,吴云君副主编;汪德彪,常继彬,叶文,范苏参编.微机原理与嵌入式接口技术:西安电子科技大学出版社,2016.08:第130页

    9.

    陈燕俐, 洪龙, CHENYan-li, et al. 自由调整中断优先级的研究和实现[J]. 南京邮电大学学报(自然科学版), 2005, 25(6):35-39.

    展开全文
  • 中断的定义 二 ,中断处理的过程 三,8086/8088CPU可以处理256不同类型的终端 四,中断服务程序的设计方法 五中断向量表的建立
  • 什么需要中断?

    千次阅读 2019-04-11 21:59:09
    什么需要中断? 如果让内核定期对设备进行轮询,以便处理设备,那会做很多无用功,因为外设的处理速度一般慢于CPU,而CPU不能一直等待外部事件。所以能让设备在需要内核时主动通知内核,会是个聪明的方式,这便...
  • 汇编语言之中断技术

    千次阅读 2020-05-13 13:37:38
    中断技术 1、中断的定义 计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,而转去执行对异常事件或者外部请求的处理操作。当处理完毕后,CPU再返回到被暂停执行的...
  • 文章目录§8.1 中断8.1.1 中断概念和分类1.中断的定义和功能2.中断源和中断分类8.1.2 中断的响应与处理过程1.中断响应过程2.8086的中断响应与处理§8.2 8259A的工作原理8.2.1 8259A的引脚信号和内部结构8.2.2 8259A...
  • 1,中断类型:共256种中断中断号00H—0FFH 2,按是否允许屏蔽分为可屏蔽中断和不可屏蔽中断 3,按中断请求来源分为内部中断和外部中断 4,内部中断不可屏蔽,外部中断可以分为可屏蔽中断和不可屏蔽中断,来自于...
  • 这里写目录标题先验知识回顾控制寄存器回顾1、8086中断类型1、外部可屏蔽中断2、外部不可屏蔽中断3、除法错中断4、单步中断5、断点中断6、溢出中断7、软中断2、8086中断向量表3、8086中断响应1、外部可屏蔽中断响应2...
  • 51单片机中断基本概念

    千次阅读 多人点赞 2020-07-31 10:11:47
    3.你希望在中断之后做什么? 可以边看边思考,文章最后给出答案 中断概念 为什么引入中断中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部...
  • 中断向量 每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断中断服务程序入口地址构成一个表,称为中断...是指一种识别中断源的技术或方式。识别中断源的目的就是...
  • 中断是CPU处理外部突发事件的个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的
  • 看门狗(Watch Dog)是嵌入式系统中一常用的保证系统可靠性的技术,()会产生看门狗中断。 A. 软件喂狗 B. 处理器温度过高 C. 外部中断 D. 看门狗定时器超时 解析: 思考方式: 每个看门狗系统都会设置一套定时器...
  • 中断详解

    千次阅读 2018-10-24 01:28:04
    1.中断的基本概念 程序中断是指在计算机执行现行程序的过场中,出现某些急需处理的异常情况或特殊请求,CPU暂停中断现行程序,而专区对这些异常情况或特殊情况进行处理,在处理完毕后CPU又自动返回到现行程序的断点...
  • CPU中断

    万次阅读 2019-08-31 21:03:36
    CPU共256个中断类型型号: 0~31:对应于异常和非屏蔽中断,不使用中断控制器;... cpu的数学模型是图灵机,图灵机是个线性运行指令的机器,它的执行序列是完全确定的,中断机制是使得cpu具有异步处理...
  • 中断的作用

    万次阅读 2018-05-15 10:31:36
    计算机更是如此,依靠时钟发生器,人为的设置没几个时钟周期做个任务,不管是否做完,一旦规定的时间到了,那么就要强制“中断”,以作下个任务……就这样,直道所有的任务都作过了(但不一定都做完毕),再接着做...
  • 网卡与中断

    千次阅读 2019-10-29 14:47:30
    .中断 1.1 中断概念 指CPU在运行期间,由于外部或由预先... 在个特定中断的时候,内核会执行个函数,该函数叫中断服务例程。要是既想中断服务例程运行的快,又想中断例程完成的任务多,我们把中断处理成...
  • linux内核学习10:中断和异常

    千次阅读 2021-10-12 16:14:54
    中断 1.1 中断的概念 中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的 CPU 暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续...
  • 【STM32】NVIC中断优先级管理(中断向量表)

    万次阅读 多人点赞 2018-04-08 19:55:22
    STM32F1xx官方资料: ...但是,STM32并没有使用CM3内核的全部东西,而是只用了它的部分。STM32有84个中断,包括16个内核中断(异常)和68个可屏蔽中断,具有16级可编程的中断优先级。而STM32F10...
  • 【计算机组成原理】CPU中断系统

    千次阅读 2022-02-07 12:51:08
    中断系统概述 1、引起中断的各种因素 (1)人为设置的中断 这种中断一般称为自愿中断,因为它是程序中人为设置的,故一旦机器执行这种人为中断,便自愿停止现行程序而转入中断处理。 (2)程序性事故 如...
  • Arduino 定时器中断 外部中断

    万次阅读 多人点赞 2019-04-09 17:29:31
    中断(Interrupt)是计算机的个重要概念,现代计算机普遍采用中断技术. 什么是中断呢? CPU执行时原本是按照程序指令条向下执行的.但如果此时发生了某件事件B请求CPU迅速去处理(中断发生),CPU暂时中断当前...
  • 断点是什么,断点有哪几类型?

    万次阅读 2022-06-30 15:53:51
    挂起状态:挂起状态有两种类型,第一种是挂起全部线程,第二种是只挂起当前线程。当断点状态设置成了第二种方式后,只有当前线程会被堵塞,其他线程(程序)会正常执行,这在Spring Boot程序的测试中十分有用。 ...
  • linux定时中断的三实现

    千次阅读 2018-08-04 22:25:46
    本文主要讲述linux应用层三定时中断实现的方法。我们可以利用定时中断在linux应用层实现一些对时间频率要求不是很高的驱动,虽然有些不规范,但是也是有其适用的场合的。因为应用层不涉及到硬件,不同平台可移植性...
  • Cortex-M3的咬尾中断技术

    千次阅读 2016-10-12 20:27:16
    Cortex—M3在中断控制系统上的...想学习ARM的童鞋不能错过),看到了他的中断咬尾技术,觉得好熟悉,才想起在学习TI的M4系列开发板时听过这个东西,当时根本不懂,糊里糊涂就把单片机用起来了。今天仔细看了这个所谓高大
  • Linux性能优化(十六)——中断绑定

    千次阅读 2022-02-20 15:39:11
    计算机中,中断一种电信号,由硬件产生并直接送到中断控制器上,再由中断控制器向CPU发送中断信号,CPU检测到信号后,中断当前工作转而处理中断信号。CPU会通知操作系统已经产生中断,操作系统就会对中断进行处理...
  • 计算机中断机制

    千次阅读 2018-01-26 15:07:21
    浅析CPU中断技术 前一阵子忽然蛋疼菊紧,对计算机硬件的工作原理产生了些许兴趣。故查阅了一些资料,加上本人的总结...什么是CPU中断? 二、CPU中断的作用 三、CPU中断的类型 四、CPU中断的过程 五、多核
  • 线程中断详解

    万次阅读 多人点赞 2018-07-05 19:01:44
    中断线程线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为...它并不像stop方法那样会中断一个正在运行的线程。判断线程是否被中断判断某个线程是否已被发送过中断请求,请使用Threa...
  • 进程上下文是一种内核所处的操作模式,此时内核代表进程执行——例如, 执行系统调用或运行内核线程。在进程上下文中,可以通过current宏关联当前进程。此外,为进程是以进程上下文的形式连接到内核中的,因此,进程...
  • 实验 外部中断实验

    万次阅读 2019-01-18 11:01:23
    1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。 三、实验原理 当89C51的CPU正在处理某件事情(如正在执行主程序)时,单片机外部或内部发生的某事件(如外部设备产生的个电平变化或...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 255,761
精华内容 102,304
关键字:

中断是一种什么技术