什么是中断,我们从生活中的例子引入。 看书的例子:你新
- 格式:ppt
- 大小:591.01 KB
- 文档页数:62
中断的基本概念
中断是计算机系统中的一种机制,用于处理来自外部设备或其他软件的异步事件。
当发生某个特定事件时,计算机会立即中断正在执行的程序,并转而执行一段称为中断处理程序(或中断服务程序)的代码。
处理完中断事件后,计算机会回到原来被中断的程序继续执行。
中断的基本概念包括以下几个要素:
1. 中断源:引起中断的事件或信号的来源,可以是硬件设备(如键盘、鼠标、定时器等)的输入,或者是软件发起的中断请求。
2. 中断控制器:用于控制和管理中断请求的硬件设备,将中断源的信号转发给处理器。
3. 中断请求(IRQ):中断源产生中断信号时向处理器发送的请求,表明有中断事件需要处理。
4. 中断向量表:存储了各个中断处理程序的入口地址信息。
当中断发生时,处理器会根据中断源的IRQ编号,在中断向量表中查找对应的处理程序的入口地址。
5. 中断处理程序:也称为中断服务程序,是一段特定的代码,用于处理中断事件。
中断处理程序通常会保存被中断程序的上下文状态,处理中断事件,然后恢复被中断程序的上下文,使其继续执行。
6. 中断屏蔽:为了避免繁忙的处理器被频繁中断,可以通过设置中断屏蔽位来屏蔽某些中断请求的响应。
只有当中断请求的中断屏蔽位被解除时,相应的中断才会被处理。
中断机制的引入可以提高计算机系统的响应能力和处理效率,使处理器能够及时响应外部设备的需求,并优先处理紧急的中断事件。
#1楼主贴:快捷共享《删繁就简-单片机入门到精通》之中断文章发表于:2010-04-01 20:591.10.方便实用的中断每个周末丁丁小朋友的父母会要求他独立完成一些家务,来培养他的劳动习惯,家务是固定的三件事情:烧两壶开水、炖一锅排骨、将家里的地板拖一遍。
如果单独完成这些事情,烧一壶开水大概需要十分钟,炖排骨大概二十五分钟,拖地板大概需要三十分钟,烧开水只要等水开了倒进保温瓶里,排骨炖好后关掉火就行。
第一周,丁丁小朋友先开始烧水和炖排骨,然后去拖地板,为了看水有没有烧开和排骨有没有炖好,拖一会地板就要停下来跑到厨房去看一看,这样看一次需要一分钟,总共看了十次,四十分钟后三样家务全部做完。
虽然四十分钟把家务全部做完,但丁丁小朋友是隔几分钟才去看一下水有没有烧开,于是水被烧开了一会丁丁小朋友才发现,水烧开后从壶里溢出流到煤气灶上,有点危险,显然从家务完成的质量来看不是很理想。
第二周,丁丁小朋友吸取了上周的经验,烧水换用水烧开后可以自动鸣笛的壶,排骨有上周的经验知道炖二十五分钟火候差不多,于是炖的时候用一个闹钟定时二十五分钟,接下来专心开始拖地板。
大约十分钟后,第一壶水烧开鸣笛,丁丁小朋友停下拖地板去把水倒进保温瓶接着烧第二壶,继续拖地板;又过了大约十分钟,第二壶水烧开,丁丁小朋友同样处理;二十五分钟时间到,闹钟响起,丁丁小朋友过去看排骨,已经炖好于是关火,接着拖地板;三十三分钟,地板拖完,家务全部完成。
和第一周对比,时间少用了七分钟,而且水一开就去倒掉,消除了潜在危险,完成的质量自然要好一些,看来日常生活中的一些事情,不同的处理方法做出来的效果也会有明显差异。
丁丁小朋友做家务的例子对应单片机同时需要处理几个工作任务的两种基本方法:轮流查询和中断响应。
开水烧开了不马上处理就会有危险,拖地板被打断有延时不会发生什么意外,但烧开水只要把水倒进壶里烧就行,烧的过程中并不需要做其它事情,拖地板则需要一直拖到全部地板拖完。
什么是中断?中断就是让cpu中断当前的正常指令而转去执行另一处特点的代码的一种机制。
什么是中断向量表?中断向量表就是对应的中断号所对应的内存内址,某一中断发生后,CPU就去查这个表,从中取出一个地址,然后转去执行该地址处的指令。
中断的类型一般有哪些?中断的类型有硬件中断,如计时器中断,DMA中断,串口中断,和软件中断,如int指令 .有中断了,cpu一定要会中断当前的执行吗?不一定,有些中断是可以屏蔽的,比如一次时钟中断产生,cpu跳去执行中断入口处的程序,在进入中断后,为了不引起混乱,中断程序通过指令设置屏蔽标志,这样,以后的时间中断就不会再引起CPU的中断了,在时钟中断程序执行完毕任务后,再次通过指令取消屏蔽标志,以后的时间中断就可以引起CPU中断,并再次进入时钟中断程序。
CPU是通过设置时间中断来实现抢占机制的,在进入保护模式之前先初始化中断向量表,在时钟中断入口处放置任务切换代码。
然后设置好时钟中断的时间。
当某一线程的执行用光了时间片时,时钟中断产生,cpu转去执行中断处的任务切换代码,保存当前线程的状态,得到并灰复下一个线程的状态,然后转去执行那个线程,依此类推。
为了尽可能的提高CPU的利用率,当某一线程必须转入等待状态,如要获取某一低速外设的数据时,这里的读操作程序会主动放弃当前没有用光的时间片,主动调用任务切换中断代码,把CPU的时间让给其它已经准备好可以继续的线程。
1.中断zhōngduàn [interrupt;discontinue;suspend;come to stop;break down (off)] 半中间发生阻隔、停顿或故障而断开交通中断2.是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。
待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。
中断是单片机实时地处理内部或外部事件的一种内部机制。
中断的概念及案例一、概念中断是指在计算机运行过程中,当发生某种特定事件时,由硬件或软件强制暂停正在执行的程序,转而去执行另一个程序或服务的过程。
它是计算机系统中非常重要的一种机制,可以使得系统在处理多个任务时更加高效和灵活。
二、硬件中断硬件中断是由计算机硬件控制器发出的一种信号,用于通知CPU当前有某种事件需要处理。
比如,当用户按下键盘上的某个键时,键盘控制器就会向CPU发送一个中断信号,告诉它有一个键被按下了。
CPU 接收到信号后会立即停止正在执行的程序,并跳转到相应的中断处理程序中去执行。
三、软件中断软件中断也叫做系统调用(system call),是由操作系统内核提供给用户程序使用的一种接口。
通过调用这些接口函数,用户程序可以请求操作系统内核帮助它完成某些任务。
比如,在Linux系统中,用户可以通过调用open()函数来打开一个文件,在read()函数来读取文件内容,在write()函数来写入文件内容等等。
当用户程序调用这些函数时,操作系统内核会自动进行相应的处理,并返回结果给用户程序。
四、案例分析1. 硬件中断案例假设我们正在玩一款游戏,此时突然有人拔掉了电源线,导致电脑突然关机。
这时候,电脑的硬件会检测到电源被拔掉的事件,并向CPU发送一个中断信号。
CPU接收到信号后会立即停止正在执行的程序,并跳转到相应的中断处理程序中去执行。
在这个中断处理程序中,操作系统会对当前的状态进行保存,并关闭所有正在运行的进程。
然后,操作系统会将系统恢复到安全状态,并提示用户重新启动电脑。
2. 软件中断案例假设我们想要在Linux系统中创建一个新文件。
为了实现这个目标,我们可以使用open()函数来打开一个文件描述符,并使用write()函数来写入文件内容。
当我们调用open()函数时,操作系统内核会自动进行相应的处理,并返回一个文件描述符给我们。
当我们调用write()函数时,操作系统内核也会自动进行相应的处理,并将数据写入到指定的文件中。
什么是中断?我们经常听到中断这个词,到底什么是中断?在这之前我先讲给大家一个故事。
从前有两位班主任A和B,A老师带一班,B老师带二班。
这两位老师平时都很忙,平时除了为学生们备课改作业,当某个同学提出问题时,还要为他们解答疑问。
A老师生怕遗漏每一位同学提出的问题,每隔一段时间就放下手头的工作,不断轮流寻问每一位同学:“你有问题吗”。
也许被寻问的这位同学恰好有问题要咨询老师,可这毕竟是少数;而当A老师继续批改作业的时候又出现了一些同学提出问题,可是这个时候还没到A老师轮流寻问同学的时间。
就这样,A老师的宝贵时间经常被浪费。
B老师和A老师有所不同,他认为完全没有必要这样死板的寻问每一位同学是否有问题。
他对全班同学说:“谁有问题就主动来找我“。
即便他可能正在改作业,但是完全可以暂时放下手头那些重要的工作,先为这位迷惑的同学解决问题。
因此,B老师既可以改作业,又可以在学生主动提出问题的时候为那个学生解决问题。
显然B老师的工作效率比A老师提高了很多。
故事看懂了,那么恭喜你,你也懂了什么是中断。
上面的两位老师分别代表系统中对设备进行管理的两种典型的方式。
A老师的那种工作方式属于早期的程序查询控制方式(或称为轮询),内核定期对设备的状态进行查询;而B老师则属于中断控制方式,I/O设备需要服务时,可主动向内核发出中断请求并打断CPU当前正在执行的任务。
前者内核为主动;而后者变内核主动为被动,由设备主动向内核发出中断请求。
从物理角度来看,中断请求是由外部硬件设备产生的一种电信号,外部设备首先将这种电信号发给中断控制器,接着中断控制器将此电信号发送给CPU。
CPU检查到该中断信号后再通知内核,然后由内核完成后续的一些列处理工作。
显然,内核不需要定期去检查设备,从而提高了CPU 利用率。
通过以上的描述,你应该对中断有了一个大致的了解,不过想要更具体的了解中断必须搞清楚以下的知识点。
1.中断的分类早期以及一般情况下,我们所说的中断即指由外设所产生的中断。
第五章1、什么是中断?答:所谓中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。
2、可屏蔽中断处理的一般过程是什么?答:可屏蔽中断处理的一般过程为:①外设径8259A提出中断请求,如果IF=1且无DMA请求,LOCK无效,则8259A的中断请求信号INTR才能送到CPU。
②CPU发INTA信号响应,在第二个INTA周期中,外部中断控制器送中断类型号。
③STACKOLDFLAG→④STACKOLDCS→⑤获取CS并赋值⑥①STACKLDTP→⑦给IP赋值⑧执行CS、IP处的外设中断服务程序⑨中断返回,执行IRET中断返回指令·OLDTP退线·OLDCS退线·OLDFLAG退线⑩继续执行当前程序中的下条指令其中②~⑦步为中断响应及处理过程。
4、什么是中断嵌套?答:中断嵌套是指当CPU正在处理某个中断源即正在执行中断服务程序时,会出现优先级更高的中断源申请中断,为了使更急的中断源及时得到服务,需要暂时中断(挂起)当前正在执行的级别较低的中断服务程序,去处理更高级别的中断源,待执行完毕后再返回来执行波中断3的中断服务程序。
但中断级别桢或更低的中断源不能中断级别高的中断服务,这就是中断嵌套,并且称这种中断嵌套方式为完全嵌套方式。
5、什么是中断向量,它是如何装入中断向量表的?答:中断向量是中断服务程序的入口地址,它包括中断服务程序的段其址CS和偏移地址IP。
中断向量的装入分系统自动装入和用户自动装入两种。
其中系统配置和使用的中断所对应的中断向量由系统软件负责装入。
若系统中未配置系统软件就要由用户自行装入。
这时可用MOV指令来装入中断向量。
6、什么是中断型号?它的作用是什么?答:中断类型号是系统分配给每个中断源的代号。
系统中的外部中断与内部中断,硬中断与软中断一律统一编号,共256个号,中断类型号的作用是在采用向量中断方式的中断交流中,CPU只有通过它才可以找到中断服务程序的入口地址,实现程序的转移。