中断和查询
中断方式和查询方式,也叫轮询方式,有什么区别,就要知道什么是中断方式,什么是轮询方式.
中断的汉语解释是半中间发生阻隔、停顿或故障而断开。
那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢?
举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。
等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事,于是慌慌张张的冲向水管,三下两下关了龙头,声音又传到耳边,“怎么干什么都是这么马虎?”。
伸伸舌头,这件小事就这么过去了,我落寞的眼神又落在了水壶上。
门外忽然又传来了铿锵有力的歌声,我最喜欢的古装剧要开演了,真想夺门而出,然而,听着水壶发出“咕嘟咕嘟”的声音,我清楚:除非等到水开,否则没有我享受人生的时候。
这个场景跟中断有什么关系呢?
如果说我专心致志等待水开是一个过程的话,那么叫声、电视里传出的音乐不都让这个过程“半中间发生阻隔、停顿或故障而断开”了吗?这不就是活生生的“中断”吗?
在这个场景中,我是唯一具有处理能力的主体,不管是烧水、关水龙头还是看电视,同一个时间点上我只能干一件事情。
但是,在我专心致志干一件事情时,总有许多或紧迫或不紧迫的事情突然出现在面前,都需要去关注,有些还需要我停下手头的工作马上去处理。
只有在处理完之后,方能回头完成先前的任务,“把一壶水彻底烧开!”
中断机制不仅赋予了我处理意外情况的能力,如果我能充分发挥这个机制的妙用,就可以“同时”完成多个任务了。
回到烧水的例子,实际上,无论我在不在厨房,煤气灶总是会把水烧开的,我要做的,只不过是及时关掉煤气灶而已,为了这么一个一秒钟就能完成的动作,却让我死死地守候在厨房里,在10分钟的时间里不停地看壶嘴是不是冒蒸气,怎么说都不划算。
我决定安下心来看电视。
当然,在有生之年,我都不希望让厨房成为火海,于是我上了闹钟,10分钟以后它会发出“尖叫”,提醒我炉子上的水烧开了,那时我再去关煤气也完全来得及。
我用一个中断信号——闹铃——换来了10分钟的欢乐时光,心里不禁由衷地感叹:中断机制真是个好东西。
正是由于中断机制,我才能有条不紊地“同时”完成多个任务,中断机制实质上帮助我提高了并发“处理”能力。
它也能给计算机系统带来同样的好处:如果在键盘按下的时候会得到一个中断信号,CPU就不必死守着等待键盘输入了;如果硬盘读写完成后发送一个中断信号,CPU就可以腾出手来集中精力“服务大众”了——无论是人类敲打键盘的指尖还是来回读写介质的磁头,跟CPU的处理速度相比,都太慢了。
没有中断机制,就像我们苦守厨房一样,计算机谈不上有什么并行处理能力。
跟人相似,CPU也一样要面对纷繁芜杂的局面——现实中的意外是无处不在的——有可能是用户等得不耐烦,猛敲键盘;有可能是运算中碰到了0除数;还有可能网卡突然接收到
了一个新的数据包。
这些都需要CPU具体情况具体分析,要么马上处理,要么暂缓响应,要么置之不理。
无论如何应对,都需要CPU暂停“手头”的工作,拿出一种对策,只有在响应之后,方能回头完成先前的使命,“把一壶水彻底烧开!”
然后说下轮询模式
刚才中断已经解释了,硬件跟 CPU 通信的大致原理,
但是如果中断信号过于频繁,而且中断后处理的数据过于小.比如一个网卡遭到小IP 包的攻击,每秒10万个包,都是64字节的小包,
这个时候再强的 CPU 也会累死的,
因为 CPU 的发展一直在提升处理数据的能力上,中断机制从来没有改变过.
所以早期的时候,UNIX 系统提出了软中断的概念,类似与硬件的信号缓存,
在内存为每一个使用中断的硬件都开辟一个缓存,
当需要中断处理的时候,信号是被放在缓存里,而不是直接交给CPU ,当缓存差不多快满的时候,让CPU 一次来处理完,而不用一个中断处理一次,大大减少了 CPU 的压力.
所以 FREEBSD 4.11的时候,有人做过攻击试验.100M 流量的攻击包,在 BSD 系统没开轮询的时候,CPU 占用 85%,开了轮询后,CPU 占用 3%--5%。
《计算机控制技术》习题答案
《计算机控制技术》(机械工业出版社范立南、李雪飞)习题参考答案第1章1.填空题(1) 闭环控制系统,开环控制系统(2) 实时数据采集,实时决策控制,实时控制输出(3) 计算机,生产过程(4) 模拟量输入通道,数字量输入通道,模拟量输出通道,数字量输出通道(5) 系统软件,应用软件2.选择题(1) A (2) B (3) C (4) A (5) B3.简答题(1) 将闭环自动控制系统中的模拟控制器和和比较环节用计算机来代替,再加上A/D转换器、D/A转换器等器件,就构成了计算机控制系统,其基本框图如图所示。
计算机控制系统由计算机(通常称为工业控制机)和生产过程两大部分组成。
工业控制机是指按生产过程控制的特点和要求而设计的计算机,它包括硬件和软件两部分。
生产过程包括被控对象、测量变送、执行机构、电气开关等装置。
(2)操作指导控制系统:其优点是控制过程简单,且安全可靠。
适用于控制规律不是很清楚的系统,或用于试验新的数学模型和调试新的控制程序等。
其缺点是它是开环控制结构,需要人工操作,速度不能太快,控制的回路也不能太多,不能充分发挥计算机的作用。
直接数字控制系统:设计灵活方便,经济可靠。
能有效地实现较复杂的控制,如串级控制、自适应控制等。
监督计算机控制系统:它不仅可以进行给定值的控制,还可以进行顺序控制、最优控制、自适应控制等。
其中SCC+模拟调节器的控制系统,特别适合老企业的技术改造,既用上了原有的模拟调节器,又可以实现最佳给定值控制。
SCC+DDC的控制系统,更接近于生产实际,系统简单,使用灵活,但是其缺点是数学模型的建立比较困难。
集散控制系统:又称分布式控制系统,具有通用性强、系统组态灵活,控制功能完善、数据处理方便,显示操作集中,调试方便,运行安全可靠,提高生产自动化水平和管理水平,提高劳动生产率等优点。
缺点是系统比较复杂。
计算机集成制造系统:既能完成直接面向过程的控制和优化任务,还能完成整个生产过程的综合管理、指挥调度和经营管理的任务。
5.5中断查询
5.5
计算机在处理中断的过程中,有可能出现新的中断请求,此时如果CPU暂停现 行的中断服务程序,转去处理新的中断请求,这种现象称为“中断嵌套”或 “多重中断”。
单重 中断 不允许中断 现行的 中断服务程序 多重 中断 允许级别更高 的中断源 中断 现行的 中断服务程序
3. 单重中断和多重中断的服务程序流程
启动 打印机
传送 数据 发 中 断 请 求 接收 数据 打印
发 中 断 请 求
准备
打印机
打印
空闲
接收 数据
中断的其它应用
• 异常处理
– 如:掉电处理、电路故障等
• 实时控制
– 如:CPU响应外来信号的请求。
• 总之,为了提高计算机的整机效率,为了 应付突发事件,为了实时控制的需要,在 计算机技术的发展过程中产生的“中断” 技术
Q
D
受设备本身控制
D 完成触发器
2. 排队器
中断优先级:
5.5
当多个中断源同时向CPU提出请求时,CPU只能按中断源的不同性质对 其排队,给予不同等级的优先权,并按优先等级的高低予以响应。 就I/O中断而言,速度越高的I/O设备,优先级越高,因为若CPU不及时响 应高速I/O的请求,其信息可能会立即丢失
2. 排队器
排队 软件 详见第八章
INTP1 1 & INTR1 INTP1´ 1 & INTP2´ 1 & 1 & INTR2 INTP3´ 1 & INTP2 1 & INTR3 INTP4´ 1 INTP3 1
5.5
硬件 在 CPU 内、在接口电路中(链式排队器)
INTP4
& INTR4
第5章 MCU与外设之间数据传送方式
MCU与外设之间的数据传送方式
主机与外设之间数据传送的控制方式有以下四种:直接控制方式、查询方式、中断方式和直接存储器存取(DMA,Direct Memory Access)。
1.直接控制方式
直接控制方式适用于总是处于准备好状态的简单外设,例如:开关、发光器件(如发光二极管、7段数码管、灯泡等)、继电器、步进电机。
优点:软件及接口硬件简单。
缺点:只适用于简单外设,适应范围较窄。
2.查询方式
查询方式适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。
CPU在与外设交换数据前必须询问外设状态——“准备好了没有?”
查询方式对外设的要求:应提供设备状态信息;对接口的要求:需要提供状态端口。
优点:软件比较简单。
缺点:CPU效率低,数据传送的实时性差,速度较慢。
3.中断方式
中断方式下,CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。
即CPU在没有外设请求时可以去做更重要的事情,有请求时才去传输数据,从而大大提高了CPU的利用率。
优点:CPU效率高,实时性好,速度快。
缺点:程序编制较为复杂。
4.DMA传输
DMA传输一般用于外设和内存之间直接传送,不经过CPU,即外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU 要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。
优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)。
中断和轮询到底区别在哪?
中断和轮询到底区别在哪?
CPU要和外设进⾏通信,可以采⽤轮询和中断两种⽅式。
因为轮询⽅式需要CPU轮询外设,查询外设是否发⽣中断,效率不⾼显⽽易见。
于是增加了如下图的中断系统来减轻CPU负担,但是这样做效率就⾼了吗?本质上,采⽤中断系统后,CPU仍然需要每隔⼀⼩段时间去查询中断控制寄存器TCON的各位状态,以判断是否有外设中断发⽣,否则CPU仍旧⽆法知道外设的当前状态。
如上所述,中断和轮询,好像⼜没啥区别,CPU仍旧摆脱不了查询的命运。
但是你知道让CPU直接和各个外设逐⼀沟通,和让CPU只与中断控制系统机构沟通,效率是完全不⼀样的。
为了证明我的推断,我们假设,CPU外接20个不同的设备,这20个外设中在某⼀刻有两个外设同时中断,正好这个时候CPU来查看外设的状态,如果是轮询⽅式,CPU需要⼀⼀遍历20种不同的外设控制器,才能判断哪些外设刚才申请过中断,哪些外设没有申请中断。
如果采⽤中断⽅式处理呢?CPU只需查询⼀下中断标志位,处理最⾼优先级的那个中断,其他的事情全交给中断系统去处理,效率提⾼了20倍!
从中,我们也可以发现⼀个现象,不论硬件设计如何巧妙,软件产品如何复杂,在设计原则上仍然是在不断的做加法。
图1. 89C51单⽚机中断系统的硬件框图
备注: 从上图中,我们看到89C51只有五个中断源,外接的设备⽐较少。
现代CPU对中断系统进⾏了扩展,中断系统的中断寄存器也更加丰富了。
单片机原理及应用A-题库
单片机原理及应用A-题库1、单片机就是把(CPU)、( 输入输出)、和( 存储器 )等部件都集成在一个电路芯片上,并具备一套功能完善的( 指令系统 ),有的型号同时还具备( AD )和( DA )等功能部件,其简称为( 微处理器 )或(微控制器)。
2、当扩展外部存储器或I/O口时,P2口用作(地址线的高8位)。
3、MCS-51单片机内部RAM区有(4)个工作寄存器区。
4、MCS-51单片机内部RAM区有128个位地址5、若不使用89C51片内的程序存储器,引脚()需要接地。
6、当MCS-51引脚(ALE)信号有效时,表示从P0口稳定地送出了低8位地址.7、在单片机的RESET端出现(2)个机器周期以上的高电平时,便可以可靠复位8、MCS-51系列单片机有:(外部中断0), (外部中断1), (定时/计数器T0溢出中断),(定时/计数器T1溢出中断), (串行口)等5个中断请求源。
9、C51中“!”运算符的作用是(取反)10、所谓的单片机,就是将CPU、存储器、定时计数器、中断功能以及I/O设备等主要功能部件都集成在一块超大规模集成电路的微型计算机。
(正确)11、8051单片机,程序存储器数和数据存储器扩展的最大范围都是一样的。
(正确)12、8位二进制数构成一个字节,一个字节所能表达的无符号数的范围是0-255。
(正确)13、8051中的工作寄存器就是内部RAM中的一部份。
(正确)14、使用89C51且 =0时,可外扩64KB的程序存储器。
(错误)15、因为MCS-51 可上电复位,因此,MCS-51系统也可以不需要复位电路。
(错误)16、一个函数利用return可同时返回多个值。
(错误)17、89C51每个中断源相应地在芯片上都有其中断请求输入引脚。
(错误)18、中断初始化时,对中断控制器的状态设置,只可使用位操作指令,而不能使用字节操作指令。
(错误)19、89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
CPU中断与查询方法的区别
中断与查询的区别解释一、中断方式,是事件触发的,换言之只要有事件产生都会进入中断,并且取得最优运行,因此响应更快,及时。
查询方式,就是在主函数里面不停循环,查询端口状态,明显其弊端在于响应速度,在处理事件多,处理流程复杂,函数嵌套执行的情况下,由于处理不过来容易丢失事件。
举个例子,在电话用户接入系统里面,一个单片机管理1个电话端口的摘挂机,执行周期要求8ms,用查询的方式足够了,但是当电话增加到16个,用查询方式,效果就差了,曾出现过电话响起的时(12个电话齐呼),拿起话筒,电话还在振铃,明显处理不过来。
这个时候,有两个办法,一个采用中断方式,另一个采用更高效的CPU,明显前者只需要修改软件,后者需要增加硬件成本,还延长开发时间。
解释二、把CPU比作人,定时器比作闹钟的话,中断就相当于是人设定的时间到了闹钟自己响起的过程,此时人放下手中的事去做另一件事,而查询就是人发现自己有充足的计划支配权,看一下钟,确定是否到了做计划上的某件事的最佳时间。
总而言之,中断时CPU是被动的用于处理计划外的紧急情况而具有电路层面上的优先级,查询时CPU是主动的用于处理计划内的普通情况仅在软件上自己设定优先级。
(这里的计划外应指不可预测事件发生,计划内应指可预测事件发生,有些事我们不知道什么时候会发生但知道该怎么应对所以以中断触发发出应对措施,计划内的可预测事件其实就是计算编程时的选择执行过程。
)解释三、UART(Universal Asynchronous Receiver )是通用异步收发接口,在很多芯片中都有应用。
一般UART的收与发共用一个数据寄存器(8bit),通过相应的状态寄存器来判断UART的工作情况。
接收可以有两种方式:一种是查询,另一种是中断。
通常使用中断方式。
接收查询方式是通过CPU不停读取UART的状态寄存器,当有数据到来时,读取数据,此方法占用太多的CPU时间,很少使用,在CPU只做数据转发时可以考虑使用。
单片机原理与接口技术复习题1
单片机原理与接口技术复习题复习一选择题1. 有如下程序段:MOV R0,#30H ;(R0)=30HSETB C ; CY=1CLR A ; (A)=00HADDC A,#00H ;(A)= 01HMOV ﹫R0,A ;(A)-> 30H (30H)=01H执行结果是( )。
A. (30H )=0 0HB. (30H )=0 1HC. (00H )=0 0HD. (00H )=0 1H2. 在CPU 内部,反映程序运行状态或运算结果特征的寄存器是( )。
CY AC OV PA. PCB. PSWC. AD. SP3. 各中断源发出的中断请求信号,都会标记在( )寄存器。
A. TMOD/SCONB. TCON/PCONC. IE/TCOND. TCON/SCON6. 执行返回指令,退出中断服务子程序,则返回地址来自( )。
A. ROMB. 程序计数器C. 堆栈区D. CPU寄存器7. 中断查询,查询的是( ).A. 中断请求信号B. 中断标志C. 外中断方式控制位D. 中断允许控制位10. 外部中断1的中断入口地址为( )。
A. 0003HB. 000BHC. 0013HD. 001BH11. 下列指令中正确的是( )。
A. MOV ,AB. JBC TF0 ,L1C. MOVX B ,@DPTRD. MOV A ,@R315. 执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序,从堆栈弹出的断点地址送( )。
A. DPTRB. PCC. CYD. A17. 在定时器操作中,选择其工作方式的寄存器是( )。
A. TMODB. TCONC. IED. SCON18. 当标志寄存器P S W 的R S 0 和R S 1 分别为1 和0 时,系统选用的工作寄存器组为( )。
01A. 组0B. 组1C. 组2D. 组319. 8051 单片机中,唯一一个用户可使用的16 位寄存器是( )。
中断查询的概念
中断查询的概念中断查询是计算机中一种重要的处理机制。
它是指在一个程序执行过程中,由于某些特殊的事件或条件发生,系统会临时中断当前程序的执行,去执行处理这个事件或条件的相关程序,然后再返回到被中断的程序继续执行。
中断查询的概念是中断式输入输出与查询方式输入输出两种输入输出方式中的一种。
中断查询是指在进行输入输出操作时,由于设备的响应时间不确定,无法确定需要等待的时间长度,而采用反复查询设备状态来确定设备是否就绪以及输出是否完成等。
当设备就绪或输出完成时,系统会发出中断请求,CPU在中断发生时会暂停当前的执行任务,转而执行中断服务程序,待中断服务程序执行完毕后,CPU再返回到原来的任务继续执行。
这种方式能够提高系统并发能力,避免了CPU的空闲等待,提高了系统的效率。
中断查询的过程一般包含以下几个步骤:1. 首先,程序向设备发送查询请求,询问设备的状态是否为就绪状态。
2. 然后,程序暂停当前任务,等待设备的响应。
在这个等待的过程中,CPU可以执行其他的任务或者进入休眠状态。
3. 当设备响应就绪时,会产生一个中断请求,通知CPU中断服务程序。
4. CPU接收到中断请求后,保存当前任务状态,并且跳转到中断服务程序的入口地址。
5. 中断服务程序会执行一系列的操作,包括处理设备输入输出、保存现场、加载中断服务程序等。
6. 中断服务程序执行完毕后,CPU会返回到原来中断发生的地方继续执行当前任务,并且恢复之前保存的现场。
中断查询的优点是可以提高系统的并发能力,减少CPU的空闲等待时间。
在查询设备状态时,CPU可以进行其他任务的执行或者休眠等待,而不需要一直等待设备响应。
这样可以提高整个系统的吞吐率和响应速度,提高系统的效率。
另外,中断查询方式相对简单,不需要额外的硬件支持,适用于各种不同的系统结构和硬件环境。
然而,中断查询也存在一些缺点。
首先,中断查询需要CPU不断地查询设备的就绪状态,这样会占用一定的CPU时间和资源。
3中断
中断1,中断的概念(见ppt)在计算机中,由于计算机内外部原因,或者由于软硬件原因,使CPU从当前正在执行的程序中暂停下来,而自动转去执行预先安排好的为处理该原因所对应的服务程序。
执行完服务程序后,再返回被暂停的位置继续执行原理的程序,这个过程称为中断。
2,中断的意义(1)使用中断,可以使单片机内部的资源并行工作,从而提高处理效率。
(2)使用中断可以及时且高效的处理紧急事件3,中断方式与查询方式的比较(中断的特点)(1)中断方式时,事件发生后,由外设主动向CPU提出申请;而查询方式下,则由CPU一直检测查询事件是否发生。
(2)中断方式可以使CPU与其他资源并行工作,而查询方式则会浪费CPU的资源。
(3)中断方式下,无论什么样的外围事件,无论在何时何地向CPU提出申请,CPU都能对其正确服务。
4,中断源的概念(ppt)产生中断请求信号的事件、原因称为中断源。
5,中断优先级的概念(ppt)在实际系统中,往往根据中断源的重要程度给不同的中断源设定优先等级。
当多个中断源提出中断请求时,优先级高的先响应,优先级低的后响应。
6,中断的屏蔽与开放(ppt)7,51单片机的中断分为哪三类?(1)外部中断(外部事件触发的,通过外部中断引脚输入的)(2)定时器/计数器中断(3)串口中断8,51单片机一共有哪五个中断?(1)INT0中断(2)INT1中断(3)定时器/计数器T0中断(4)定时器/计数器T1中断(5)串口中断9,51单片机的五个中断的中断标志位分别是什么?int0——IE0;int1——IE1;T0——TF0;T1——TF1;串口——RI(接收标志位)和TI(发送标志位)10,中断的机制(1)外部中断如何提出中断申请?通过外部中断引脚INT0(INT1)提出,如果在该引脚上出现了下降沿(边沿检测时)或者出现了低电平(电平检测时),则意味着有中断请求输入。
(2)中断请求如何被保存?每个中断都对应有各自的中断标志位,没有中断请求时,相应的中断标志位为0;如果一旦有中断请求发生,则对应的中断标志位会被硬件自动设置为1. (3)单片机如何获知中断请求?单片机在每个机器周期都会按序检测一遍中断标志位,如果检测到某位为1,则获知该中断请求存在,并获得了中断号。
轮询和中断
中断的基本概念程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预选安排或发生了各种随机的内部或外部事件,使CPU中断正在运行的程序,而转到为相应的服务程序去处理,这个过程称为程序中断。
询方式的基本概念轮询(Polling)I/O方式或程序控制I/O方式,是让CPU以一定的周期按次序查询每一个外设,看它是否有数据输入或输出的要求,若有,则进行相应的输入/输出服务;若无,或I/O处理完毕柏,CPU就接着查询下一个外设。
所需硬件:外设接口提供状态端口、数据端口软件机制:应用程序必须定时查询各个接口的状态端口,判断是否需要输入、输出数据,如果需要,则通过数据端口进行数据操作。
特点:CPU通过执行指令主动对外部设备进行查询,外部设备处于被动地位。
轮询方式与中断方式的比较速度程序控制方式:硬件的速度指标:由于“程序控制方式”完全采用软件的方式对外设接口进行控制,所以它的硬件操作只是普通的端口读写,并无特别之处,其速度指标由总线传输速度、端口的响应速度共同决定。
对于这种外设控制方式,速度指标关键在于软件。
中断处理方式:中断处理方式本身所作的原子操作解释和程序控制方式是一致的。
只不过因为加入了中断请求和响应机制,对状态端口的读取变成了在中断响应过程中对中断号的读取,对状态端口的判断变成了对中断入口地址的确定。
从本质上来说,中断处理方式和程序控制方式本身的速度指标一致,没有大的差别。
可靠性程序控制方式:由于硬件不支持中断方式,因此操作系统把CPU控制权交给应用程序后,只要应用程序不交还CPU控制权,操作系统就始终不能恢复对CPU的控制(无定时中断)。
应用程序与操作系统都是软件模块,操作系统属于核心模块,它们之间存在交接CPU控制权的关系。
正是由于这样的关系,一旦使用对外设的“程序控制方式”时,应用程序出现死锁,则操作系统永远无法恢复对系统的控制。
应用程序的故障通过外设控制方式波及到作为核心模块的操作系统,因此,根据关联可靠性指标的计算可知,“程序控制方式”的关联可靠性指标很低。
