精华内容
下载资源
问答
  • While debugging SQL statements, if I accidentally execute a query in using the mysql command line that outputs at lot of results (even if the query itself executes in reasonable time), the only way I....

    While debugging SQL statements, if I accidentally execute a query in using the mysql command line that outputs at lot of results (even if the query itself executes in reasonable time), the only way I know of to stop the endless stream of output is CTRL-C.

    Unfortunately this puts me back in the shell, forcing me to login and select the database again.

    To avoid this I've started running mysql with the --sigint-ignore option so that CTRL-C is ignored.

    Now I'd like a way to interrupt the output of those long queries.

    Is there a keyboard shortcut that will do this?

    解决方案

    You can use --pager to have your output passed to a pager such as less which will give you control over the output. Not just killing it, but also paging, searching and even storing the output better than your terminal window gives you.

    There's also the --safe-updates or -U switch aka --i-am-a-dummy which protects you from clauseless updates and deletes and also auto limits selects to 1000 (modifyable with select_limit).

    All of this can be set by default in ~/.my.cnf.

    [mysql]

    pager

    safe-updates

    展开全文
  • 以下是由学习啦小编整理关于什么是时钟中断的内容,希望大家喜欢!时钟中断的电路一种时钟中断检测电路,包括:对输入时钟以不同分度值进行分频并输出多个分频时钟的分频器电路;对输入时钟和多个分频时钟进行“与”...

    在单片机程序设计中,设置一个好的时钟中断,将能使一个CPU发挥两个CPU的功效,大大方便和简化程序的编制,提高系统的效率与可操作性。那么你对时钟中断了解多少呢?以下是由学习啦小编整理关于什么是时钟中断的内容,希望大家喜欢!

    时钟中断的电路

    一种时钟中断检测电路,包括:对输入时钟以不同分度值进行分频并输出多个分频时钟的分频器电路;对输入时钟和多个分频时钟进行“与”操作的“与”电路;将具有最大分度值的分频时钟反相的反相器;对输入时钟中其余分频时钟和反相器输出进行“与”操作的“与”电路;第一和第二开关,具有被提供以各个“与”电路输出的控制端,控制第一和第二电容器放电路径的开/关;第一和第二波形形成缓冲器电路,被提供以第一和第二电容器的端电压;根据延迟电路中使反相器输出延迟预定时间长度所得的选择控制信号选择第一和第二波形形成缓冲器电路的一个输出的选择电路。其通过单输入时钟系统使时钟中断能被检测,集成更容易,并使时钟中断时间能精确地检测。

    时钟中断的举例

    定时器初值与中断周期 时钟中断无需过于频繁,一般取20mS(50Hz)即可。如需要百分之一秒的时基信号,可取10mS(100Hz)。这里取20mS,用定时器T0工作于16位定时器方式(方式1)。T0的工作方式为:每过一个机器周期自动加1,当计满0FFFFh,要溢出时,便会产生中断,并由硬件设置相应的标志位供软件查询。即中断时比启动时经过了N+1个机器周期。所以,我们只要在T0中预先存入一个比满值0FFFFh小N的数,然后启动定时器,便会在N个机器周期后产生中断。这个值便是所谓的“初值”。下面计算我们需要的初值:时钟为6MHz,12个时钟周期为一个机器周期,20mS中有10000个机器周期。(10000)10=(2710)16,则0FFFFh-2710h+1=0D8F0h。由于响应中断、保护现场及重装初值还需要7~8个机器周期,把这个值再加上7,即T0应装入的初值是0D8F7h。每次中断进入后,先把A及PSW的值压入堆栈,然后即把0D8F7h装入T0。

    设置一个单元,每次中断加1 我们可以取内部RAM中一个单元,取名为INCPI(Increase Per Interrupt),在中断中,装完T0初值后,用INC INCPI指令将其加一。从这个单元中,无论中断程序还是主程序,都可以从中获得20mS的1~256之间任意整数倍的信号。例如:有一段向数码管送显的程序,需要每0.5秒执行一次以便刷新显示器,便可以设一单元(称为等待单元)W_DISP,用/MOV A,INCPI/ADD A,#25/MOV W_DISP,A/语句让其比当前的INCPI值大25,然后在每次中断中检查是否于INCPI值相等。若相等,说明已过了25个中断周期,便执行送显程序,并且让W_DISP再加上25,等待下个0.5秒。我们可以设置多个等待单元,以便取出多个不同的时基信号。让中断程序在每次中断时依次查询各个等待单元是否与INCPI相等,若相等,则执行相应的处理,并重新设置该等待单元的值,否则跳过。例如:用0.5秒信号刷新或闪烁显示器,用1秒信号产生实时时钟,或输出一定频率的方波,以一定间隔查询输入设备等。

    在中断中读键 通常,我们在主程序中读键盘,步骤为:扫描键盘,若有键按下,则延时几十毫秒去抖动,再次确认此键确实按下,然后处理该键对应的工作,完成后再次重上述步骤。但这有两点不足:1.处理相应工作时无法锁存按键的输入,即可能漏键。2.延时去抖时CPU无法做其它事情,效率不高。如果把读键放入时钟中断中,则可避免上述不足。方法为:如果两次相邻的中断中都读到同一个键按下,则这个键是有效的(达到了去抖目的),并将其锁存到先入先出(队列)的键盘缓冲区,等主程序来处理。这样,主程序处理按键的同时,仍可响应键盘的输入。缓冲区深度通常可设为8级,若锁存的键数多于8个,则忽略新的按键,并报警提示用户新的按键将无效。若键盘缓冲队列停滞的时间大大长于主程序处理按键所需要的最大时间,说明主程序已出错或跑飞,可以在中断用指令将系统复位,起到了看门狗的目的。

    主程序中的延时 由于有常开的时钟中断,所以当主程序中有需要时间较短、精度较高的延时时,应暂时把时钟中断关闭。而程序中需要时间较长、精度不高的延时时,便可仿照下需的写法,避免多层嵌套的循环延时。

    例:在P1.1输出1秒的高电平脉冲

    MOV A,INCPI

    INC A

    CJNE A,INCPI$ ;等待一次中断处理完成

    SETB P1.1 ;设P1.1为H,脉冲开始

    ADD A,#50 ;50个20mS为1秒

    CJNE A,INCPI,$ ;等中断将INCPI加一50次

    CLR P1.1 ;设P1.1为L,脉冲结束

    下面用MCS-51为例:

    MCS-51的中断响应过程:

    1、中断响应的条件:讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“――眼、耳可以接受不同的信息,计算机是如何做到这点的呢?其实说穿了,一点都不希奇,MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是“1“,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。。。。很蠢,不是吗?可计算机本来就是这样,它根本没人聪明。

    了解了上述中断的过程,就不难解中断响应的条件了。在下列三种情况之一时,CPU将封锁对中断的响应:

    CPU正在处理一个同级或更高级别的中断请求。 现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。

    当前正执行的指令是返回批令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才可以响应中断。

    2、中断响应过程

    CPU响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入堆栈,然后根据中断标记,将相应的中断入口地址送入PC,PC是程序指针,CPU取指令就根据PC中的值,PC中是什么值,就会到什么地方去取指令,所以程序就会转到中断入口处继续执行。这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了8个单元,如0003-000B,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了吗?

    一个完整的主程序看起来应该是这样的:

    ORG 0000H

    LJMP START

    ORG 0003H

    LJMP INT0 ;转外中断0

    ORG 000BH

    RETI ;没有用定时器0中断,在此放一条RETI,万一 “不小心“产生了中断,也不会有太大的后果。

    中断程序完成后,一定要执行一条RETI指令,执行这条指令后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行了。注意:CPU所做的保护工作是很有限的,只保护了一个地址,而其它的所有东西都不保护,所以如果你在主程序中用到了如A、PSW等,在中断程序中又要用它们,还要保证回到主程序后这里面的数据还是没执行中断以前的数据,就得自己保护起来。

    时钟中断的评价

    要灵活地应用时钟中断,将任务合理分配给中断和主程序,并且二者要分工明确,接口简单。这其中的技巧还需要大家在实践中多多摸索与体会。另外要注意:应尽量缩短中断处理程序的执行时间,更不要长于20mS。

    看过“时钟中断的举例”的人还看了:

    展开全文
  • **中断方式:**是事件触发的,换訖只要有事件产生都会进入中断,組取得最优运行,因此响应更快,及时。 **查询方式:**就是在主函数里面不停循环,查询端C ]状态,明显其弊端在于响应速度,在处理事件多, 处理流程复杂...

    **中断方式:**是事件触发的,换訖只要有事件产生都会进入中断,組取得最优运行,因此响应更快,及时。
    **查询方式:**就是在主函数里面不停循环,查询端C ]状态,明显其弊端在于响应速度,在处理事件多,
    处理流程复杂,函数嵌套执行的情况下,于处理不过来容易丢失事件。
    CPU比作人,定时器比作闹钟的。
    ①中断就相当于是人设定的时间到了闹钟自己响起的过程,此时人放下手中的事去做另一件事。
    ②查询就是人发现自己有充足的计划支配权,看一下钟,确定是否到了做计划上的某件事的最佳时间。总而言之, 中断时CPU是被动的用于处理计划外的紧急情况而具有
    电路层面上的优先级,查询时CPU是主动的用于处理计划内的普通情况仅在软件上自己设定优先级。
    这里的计划外应指不可预测事件发生,计划内应指可预测事件发生,有些事我们不知道什么时候会发生但知道该怎么应对所以以中断触发发出应对措施,计划内的可预测事件其实就是计算编程时的选择执行过程。

    展开全文
  • 什么是中断

    2021-11-15 15:21:57
    文章目录什么是中断中断分类外部中断可屏蔽中断不可屏蔽中断内部中断引发内部中断引发异常参考文献 什么是中断 之前博主的博客里面反复使用了中断这个词汇,可能我是明白这是啥的。但是对于读者来说可能还有些陌生,...

    什么是中断

    之前博主的博客里面反复使用了中断这个词汇,可能我是明白这是啥的。但是对于读者来说可能还有些陌生,所以今天就好好来讲讲什么是中断。

    一个宏观的中断定义如下:由于CPU获知了计算机中发生了某件事,CPU暂停正在执行的程序,转而去执行处理该事件的程序。当这段程序执行完毕后,CPU继续执行刚才的程序。这个过程就叫中断。

    一般来说,操作系统是一个死循环。那么它是如何进行并发运行的呢?原因就是中断。中断虽然会打断当前系统的运行,但是它却是提升整个系统利用率最有效的方式,也是操作系统并发运行的基石

    中断分类

    一般来说,来自CPU外部的中断就称为外部中断,来自CPU内部的中断就被称之为内部中断。再细分一点,外部中断可用按照是否会导致宕机分为可屏蔽中断和不可屏蔽中断两种;内部中断又可按照中断是否正常分为软中断和异常。

    外部中断

    外部中断的来源一般是某个硬件,所以外部中断又被称之为硬件中断。比如说,往来接收到了来自网络的数据包,这个时候网卡就会通知CPU,CPU的到通知就会将数据放到内核缓冲区。而CPU收到信号这个过程就是通过提供统一的接口作为中断信号的公共线路,所有来自外设的中断信号都功能公共线路连接到CPU

    CPU会为外设提供两条信号线:

    • 一根是INTR,从这引脚收到的中断都是不影响系统运行的,可用随时处理甚至不处理;
    • 另外一根是NMI,这个引脚收到的信号都是致命错误,不得不处理甚至没办法处理。

    在这里插入图片描述
    CPU在收到中断后,会通过传入的中断向量号在中断向量表中进行查询。而这个中断向量号就是通过这两个引脚之一被传入的。

    可屏蔽中断

    可屏蔽中断就是通过我们刚刚所说的INTR引脚触发的。这里的可屏蔽的意思是此外部设备发出的中断,CPU可以不理会,因为它不会让系统宕机,所以可以通过寄存器eflags寄存器的IF位将所有的这些外部设备的中断屏蔽。

    即使CPU理会这些中断,也可以只执行中断处理程序的上半部分。

    :中断处理程序分为上半部分和下班部分,把中断处理程序中需要立即执行的部分划分为上半部分,这部分是需要紧急执行的;而中断处理程序中那些不紧急的部分则被推迟到下半部分中去执行。

    一般来说,当上半部分执行完之后,就把中断打开了;所以说,中断处理程序的下半部分是处于开中断情况下执行的。

    不可屏蔽中断

    不可屏蔽中断是通过NMI引脚触发的,它表示系统中发生了致命的错误,计算机的本次执行就到此为止了。

    内部中断

    内部终端分为软中断异常

    • 软中断:是由软件主动发起的中断,因为来自于软件,所以称之为软中断。
    • 异常:异常时另外一种内部中断,是指令执行期间CPU内部产生的错误引起的

    引发内部中断

    以下指令是可以发起中断的指令:

    • int + 8位立即数:系统调用常用指令
    • int3:其为调试断点指令,其所触发的中断向量号为3。我们常用的gdb调试程序的时候,实际上就是调试器fork了一个子进程,子进程用于运行被调试的程序。调试器中经常要设置断点,其原理就是父进程修改了子进程的指令,将其用int3指令替换,从而子进程调用int3指令触发中断。之后会保存当前的一个状态,这个时候调用print便可以查看变量信息了。
    • into:中断溢出指令,触发的中断向量号为4
    • bound:检查数组索引越界指令,触发5号中断
    • ud2:未定义指令,触发6号指令。该指令表示指令无效,CPU无法识别

    引发异常

    • fault:故障,其是一种可以被修复的异常。最常见的就是 page fault 缺页异常了。
    • trap:陷阱,这个异常会导致程序停下来,其实也就是刚刚的int3指令。
    • abort:终止,最严重的异常类型,一旦出现就表示错误已经无法被修复了。系统为了自保会 kill 此进程。

    以下是常用的异常和中断表:
    在这里插入图片描述

    中断处理过程

    中断的处理过程一般来说分以下几部分:

    1. 中断信号的接收:
      • CPU外:中断代理芯片接收外部中断,之后将该终端的中断向量号发送到CPU
      • CPU内:CPU执行该中断向量号对应的中断处理程序
    2. 在收到中断向量号之后,CPU根据其取定位中断处理程序。
    3. 处理器进行特权级检查
    4. 执行中断处理程序

    在这里插入图片描述
    而在执行完程序之后,这个时候我们需要用到iret命令返回。它会从栈中弹出数据到cs、eip、eflags等等。

    中断时的压栈

    当当前进程被中断打断后,为了从中断返回后能继续运行该进程,处理器自动把CS、EIP、EFLAGS的当前值保存到中断处理程序使用的栈中。另外,如果涉及到特权级的编号,我们处理器还会压入SS和ESP这两个寄存器。

    我们细说一下这个过程:
    1) 之前说到会进行一个特权级的检查,如果当前的特权级CPL数值上比将要执行的中断处理程序的特权级DPL大的话,这表示要向高特权转移。于是处理器就会先保存当前旧栈的SS和ESP的值。
    在这里插入图片描述
    2)在栈中压入EFLAGS寄存器
    在这里插入图片描述
    3)因为涉及到远段间转移,所以需要压入CS和EIP寄存器
    在这里插入图片描述
    4)某些异常会有错误码,其会跟着EIP进行入栈
    在这里插入图片描述

    参考文献

    [1] 操作系统真相还原
    
    展开全文
  • 什么是中断中断的作用?

    千次阅读 多人点赞 2020-12-28 09:43:04
    中断使得计算机系统具备应对对处理突发事件的能力,提高了CPU的工作效率,如果没有中断系统,CPU就只能按照原来的程序编写的先后顺序,对各个外设进行查询和处理,即轮询工作方式,轮询方法貌似公平,但实际工作效率...
  • 程序中断方式比程序查询方式提高了CPU的工作效率,消除了“踏步”现象。 DMA方式 DMA方式中CPU的工作效率是这三种之中最高的一个。CPU启动I/O后,不必查询I/O是否准备好,当I/O准备就绪后,发出DMA请求,此时CPU不...
  • 使能ADC全局中断 参考视频 【STM32】超简单的开发方法-基础篇(ADC模数转换) https://player.bilibili.com/player.html?aid=715022775 参考文章:https://blog.csdn.net/as480133937/article/details/99627062 ...
  • 中断是指CPU在执行当前程序时系统出现了某种状况,使得CPU必须停止当前程序,而去执行另一段程序来处理的出现的紧急事务,处理结束后CPU再返回到原先暂停的程序继续执行,这个过程就称为中断
  • 中断方式和查询方式,也叫轮询方式,有什么区别,就要知道 什么是中断方式,什么是轮询 方式. 中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为 什么需要“阻隔、停顿和断开”呢? 举个...
  • 程序查询、程序中断、DMA之间特点

    千次阅读 2021-02-01 16:37:48
    程序查询方式是由CPU不断查询I/O设备是否已做好准备,从而控 制I/O设备与主机交换信息。 2、程序中断方式: CPU在启动I/O设备后,不查询设备是否已准备就绪,继续执行原 来的程序,只是当I/O设备准备就绪并向CPU发出...
  • 程序查询方式:当主机进行I/O操作时,首先发出询问信号,读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传输还是等待。这种控制下,CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段...
  • 查询方式:发送数据——先发后查; 接收数据——先查后收。 中断方式:发送数据——发送、等待中断中断中发送; 接收数据——等待中断、在中断中接收。 下面让我们通过两个列子进一步看一下两者的区别: /...
  • 本文主要介绍以下三种I/O方式和中断系统: 程序查询方式 中断系统 程序中断方式 DMA方式 1.程序查询方式 (1)程序查询方式 —— 流程 (2)例题 2.中断系统 (1)中断的基本概念 (2)中断工作流程 ...
  • 展开全部中断程序是在...因为中断是由系统调用的,不知道什么时候中断,所以你可以选择允许中断或者不允许中断,这就好比你正在干工作时,电话铃响了,你可以选择接电话也可以选择不接电话,中断就好比电话铃,你不...
  • 查询方式:CPU与设备串行工作、数据传送与主程序串行工作; 中断方式:CPU与设备并行工作、数据传送与主程序串行工作; DMA方式:CPU与设备并行工作、数据传送与主程序并行工作。 适用范围: 查询方式:适合于工作不...
  • 方法一: 采用查询工作方式,编程如下: ORG0000H AJMPMAIN ORG0100H MAIN:CLRP1.0 MOVTMOD , #00H;设定T0的工作方式 MOVTH0 , #0DDH;给定时器T0送初值 MOVTL0 , #18H SETBTR0;启动T0工作 LOOP:JNBTF0 , $;$为...
  • 中断——read会休眠,唤醒,但是不会返回 poll——需要指定超时时间 一、查询方式 传出4个字节的数组,分别表示4个按键的当前状态 static ssize_t _drv_read(struct file *file, char __user *buf,...
  • STM32实现UART串口通信有两种:中断发和查询法 拍自《STM32单片机应用与全案例实践》P112
  • (1)程序查询、程序中断方式的数据传送主要依赖软件,DMA 主要依赖硬件。 (2)程序查询、程序中断传送数据的基本单位为字或字节,DMA 为数据块。 (3)程序查询方式传送时,CPU 与 I/O 设备串行工作;程序中断方式...
  • 中断标志的作用 响应中断条件是:中断使能和中断标志同时成立. ...单片机要靠查询中断标志来判断是否要进入中断,如果你不清除中断标志,本次中断退出,单片机又会检测到中断标志,因此重复进入中断。 ...
  • 中断优先级

    千次阅读 2021-07-25 04:32:43
    为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪...
  • 程序中断方式能提高CPU利用率,所以在设置了中断方式后就没有再应用程序查询的必要了? 不正确。程序查询方式接口简单,可用于外设与主机速度相差不大,且外设数量很少的情况下 DMA方式能处理高速外部设备与主存间的...
  • 但是需要专用的I/O指令 I/O接口的类型 程序查询方式 CPU不断检查I/O设备的状态其实是CPU在执行一个程序 这个程序执行的流程如下 程序查询接口结构 例题 中断系统 中断分类 中断请求标记 中断判优 中断隐指令 中断...
  • 查看linux 中断

    千次阅读 2021-05-14 17:22:13
    涉及linux软中断原理部分请参考:http://book.51cto.com/art/200912/168622.htm一、利用sysstat 中的工具包mpstatps:图片是截取个人电脑,所以没什么压力:16时32分48秒 CPU %usr %nice %sys %iowait %irq %soft %...
  • Linux软中断原理浅析

    2021-05-17 22:36:01
    Linux软中断原理浅析Linux软中断原理浅析Linux中的软中断机制用于中对时间要求最严格以及最重要的中断下半部进行使用。在系统设计过 程中,大家都清楚中断上下文不能处理太多的事情,需要快速的返回,否则很容易导致...
  • 一、程序查询方式1、程序查询方式的接口电路2、符号说明&与非门B工作触发器D完成触发器3、程序查询工作过程(输入)(1)当CPU通过I/O指令启动输入设备时,该指令的设备码将通过地址线传入设备选择电路;(2)若该设备...
  • 4.2 51单片机-中断

    2021-10-28 16:49:20
    当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完完后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断,实现这种功的部件称为...
  • 中断

    2021-03-10 18:05:59
    中断(Interruption)也称外中断,指来自CPU执行指令以外的事件的发生,如设备发出I/O结束中断,表示设备输入/输出处理已经完成,希望处理机能够及时响应。
  • 2.中断模式:相比查询模式大大释放了cup,提高了cup的利用率。 3.DMA模式:该模式下基本不占用cup,能直接将ADC采集的数据存储到存储器。 二、ADC的转换方式 转换方式需要根据情况搭配使用,分为扫描模式(Scan ...
  • MIPS中断总结

    2021-08-19 18:31:47
    2. 什么是中断 在MIPS体系结构中,中断是异常的一种,和其他异常如系统调用采用同样处理机制,这篇文章将着重介绍外部事件引起的中断,例如各种外设。中断是唯一由CPU正常指令流以外的事件引起的异常条件。 3. 异常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 180,372
精华内容 72,148
关键字:

中断查询查询的是什么