精华内容
下载资源
问答
  • 中断和异常,陷阱区别和联系

    万次阅读 2017-02-20 11:05:05
     中断,异常和陷阱区别和联系   对CPU来说是 当前CPU所执行的指令的关系 CPU接下来的事情 程序员用户的态度 中断 被动的 异步的 没关系 跳转到对应的ISR 希望有对应的中断,...


    对于中断,异常和陷阱的各种关系,总结如下:

    表 2.1. 中断,异常和陷阱的区别和联系

      对CPU来说是 和当前CPU所执行的指令的关系 CPU接下来的事情 程序员和用户的态度
    中断 被动的 异步的 没关系 跳转到对应的ISR 希望有对应的中断,以使得CPU可以响应对应的中断,执行对应的ISR
    异常 被动的 同步的 有关系,因为就是当前指令执行出问题,才有的异常 跳转到对应的异常处理 不希望出现异常,如果出现了,那往往是指令执行出现某些错误了
    陷阱 主动的 同步的 有关系,就是执行当前软中断指令,才进入的软中断 执行对应的软中断处理函数 对于想要实现调试功能的程序员,有需要此陷阱的必要,其他人不用关心此点

    下面,用图表总结了,中断,陷阱和异常的区别:

    图 2.1. 中断,陷阱和异常的区别

    中断,陷阱和异常的区别

    [注意] 注意

    无论是中断,还是异常和陷阱,对应的处理函数,一般都可以称其为中断服务程序ISR,都只是一个函数

    具体函数里面要做什么事情,是由你写程序的人决定的

    比如中断中处理对应的事情,异常中自己决定如何响应出现的异常,陷阱中决定做什么事情。

    展开全文
  • 中断和陷阱区别(转载)

    万次阅读 2011-01-06 09:59:00
    外部中断,就是我们通常所说的中断(interrupt)。对于执行的系统来说,这种中断发生完全是"异步"的,根本无法预测到此类中断会在什么时候发生。因此,CPU(或者软件)对于此类外部中断完全是"被动"的。不过,软件可以...
    外部中断,就是我们通常所说的中断(interrupt)。对于执行的系统来说,这种中断发生完全是"异步"的,根本无法预测到此类中断会在什么时候发生。因此,CPU(或者软件)对于此类外部中断完全是"被动"的。不过,软件可以通过关中断的形式来关闭对中断的响应,把它"反映情况"的途径掐断,这样就眼不见心不烦了。
    
     
    
    软件产生的中断则不同,它是由专设的指令,如Intel X86的"INT n",在程序中有意地产生,所以是主动的,"同步"的。只要CPU一执行一条int指令,就知道在开始执行下一条指令之前一定要先进入中断服务程序,这种主动的中断我们称之为"陷阱"。
    
     
    
    此外,还有一种与中断相似的机制称之为"异常"(exception),一般也是异步的,多半是由于"不小心"犯了规才发生的。例如,当你在程序中发出一条除法指令div,而除数为零时就会发生一次异常。这多半是由于不小心,而不是故意的,所以这也是被动的。当然,我们的确可以故意除以零,呵呵,这个就有点强词夺理了。
    
     
    
    我终结一下,中断和异常有个比较大的共同点就是"不可预知性",所以是被迫的;而陷阱有"有意为之"的含义。其实,这种东西了解即可,做系统编程的时候身边备上一本Intel手册即可。

     

    展开全文
  • 在阅读操作系统概念圣经书导论部分中,学习到了中断和陷阱,同时联系到高级语言中的异常处理,下面我们介绍他们的概念。   陷阱 计算机有两种运行模式:用户态, 内核态。 其中操作系统运行在内核态,在内核态中...

    在阅读操作系统概念圣经书导论部分中,学习到了中断和陷阱,同时联系到高级语言中的异常处理,下面我们介绍他们的概念。

     

    陷阱

    计算机有两种运行模式:用户态, 内核态。 其中操作系统运行在内核态,在内核态中,操作系统具有对所有硬件的完全访问权限,可以使机器运行任何指令;相反,用户程序运行在用户态,在用户态下,软件只能使用少数指令,它们并不具备直接访问硬件的权限。这就出现了问题,假如软件需要访问硬件或者需要调用内核中的函数该怎么办呢,这就是陷阱的作用了。陷阱指令可以使执行流程从用户态陷入内核(这也就是为什么叫做陷阱,而不是捕猎的陷阱)并把控制权转移给操作系统,使得用户程序可以调用内核函数和使用硬件从而获得操作系统所提供的服务,比如用视频软件放一个电影,视频软件就发出陷阱使用显示器和声卡从而访问硬件。

    操作系统有很多系统调用接口供用程序调用。陷阱的发生时间是固定的,比如第一次用视频软件时,在加载视频时软件会向操作系统发送陷阱指令,第二次播放时,软件仍然会在同样的时刻发送陷阱指令。这一点是和中断的明显的差别之一。下面介绍中断。

    中断

    中断是由外部事件导致并且它发生的时间是不可预测的,这一点和陷阱不同。外部事件主要是指时钟中断,硬件中断等。由于CPU一次只能运行一条指令,所以在一个时刻只能有一个程序运行,但我们感觉在我们的计算机中明明可以同时运行很多程序啊,这是由于CPU在多个进程之间快速切换所导致的伪并行。如果某一个程序运行了足够长用完了分配给它的时间片,CPU决定切换到另一个进程运行,就会产生一个时钟中断,切换到下一个进程运行。

    硬件中断顾名思义就是由硬件引起的中断,比如一个程序需要用户输入一个数据,但用户一直没有输入,操作系统决定是一直等待用户输入还是转而运行别的进程,一般情况是转而运行别的进程,如果用户的输入到来了,那么键盘驱动器会产生一个中断通知操作系统,操作系统保存正在运行的程序的状态,从而切换到原来的进程处理到来的数据。

    所以中断发生是随机的且主要作用是完成进程间切换,从而支持CPU和设备之间的并行。
    中断和异常的另一个重要差别是,CPU处理中断的过程中会屏蔽中断,不接受新的中断直到此次中断处理结束。而陷阱的发生并不屏蔽中断,可以接受新的中断。

    异常

    异常就是程序执行过程中的异常行为。比如除零异常,缓冲区溢出异常等。不同的操作系统定义了不同种类和数量的异常并且每个异常都有一个唯一的异常号,异常会扰乱程序的正常执行流程,所以异常是在CPU执行指令时本身出现的问题,比如除数为零而出现的除零异常。异常的产生表示程序设计不合理,所以在编程的时候要尽量避免异常的产生。

    展开全文
  • 中断 陷阱中断

    2014-08-16 21:20:44
    中断即外中断,指来自处理机内存外部的中断,包括 I/O 设备发出的 I/O中断、外部信号中断、各种定时器引起的时钟中断以及...中断和陷阱的主要区别: 1 、陷阱通常由处理机正在执行的现行指令引起,而中断则是由与

    中断即外中断,指来自处理机和内存外部的中断,包括 I/O 设备发出的 I/O中断、外部信号中断、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。

    陷阱即内中断,主要指在处理机和内存内部产生的中断。它包括程序运算引起的各种错误。软中断是通信进程之间用来模拟硬中断的一种信号通信方式。
    中断和陷阱的主要区别:
    1 、陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
    2 、陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
    3 、CPU 在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。
    4 、在有的系统中,陷入处理程序被规定在各自的进程上下文中执行,而中断处理程序则在系统上下文中执行。
    软中断与硬中断的比较:
    相同点:其中断源发中断请求或软中断信号后, CPU 或接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。

    不同点:接收软中断信号的进程不一定正好在接收时占有处理机,而相应的处理必须等到该接收进程得到处理机之后才能进行


    外部中断,就是我们通常所说的中断(interrupt)。对于执行的系统来说,这种中断发生完全是"异步"的,根本无法预测到此类中断会在什么时候发生。因此,CPU(或者软件)
    对于此类外部中断完全是"被动"的。不过,软件可以通过关中断的形式来关闭对中断的响应,把它"反映情况"的途径掐断,这样就眼不见心不烦了。 软件产生的中断则不同,
    它是由专设的指令,如Intel X86的"INT n",在程序中有意地产生,所以是主动的,"同步"的。只要CPU一执行一条int指令,就知道在开始执行下一条指令之前一定要先进入
    中断服务程序,这种主动的中断我们称之为"陷阱"。 此外,还有一种与中断相似的机制称之为"异常"(exception),一般也是异步的,多半是由于"不小心"犯了规才发生的。
    例如,当你在程序中发出一条除法指令div,而除数为零时就会发生一次异常。这多半是由于不小心,而不是故意的,所以这也是被动的。当然,我们的确可以故意除以零,
    呵呵,这个就有点强词夺理了。 我终结一下,中断和异常有个比较大的共同点就是"不可预知性",所以是被迫的;而陷阱有"有意为之"的含义。其实,这种东西了解即可,
    做系统编程的时候身边备上一本Intel手册即可

    展开全文
  • 中断和陷阱门的区别

    千次阅读 2012-11-27 22:27:36
    对于中断门,在转移过程中把IF置为0,...对于陷阱门,在转移过程中保持IF位不变,即如果IF位原来是1,那么通过陷阱门转移到处理程序之后仍允许INTR中断。 因此,中断门最适宜于处理中断,而陷阱门适宜于处理异常。
  • 中断,由硬件产生,比如时钟中断 陷阱,由软件故意产生的,比如系统调用 异常,软件运行过程中产生,比如除零,缺页异常 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想...
  • 中断陷阱、软中断之间的异同

    千次阅读 2016-06-28 15:09:34
    中断即外中断,指来自处理机内存外部的中断,包括 I/O 设备发出的 I/O中断、外部信号中断、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的...中断和陷阱的主要区别: 1 、陷阱通常由处理机正在执
  • 陷阱中断和异常

    2020-08-19 10:04:48
    在操作系统中,陷阱中断和异常是常见的术语,它们贯穿操作系统学习的始终,这篇文章主要区分它们之间的不同。 陷阱 计算机有两种运行模式:用户态, 内核态。 其中操作系统运行在内核态,在内核态中,操作系统...
  • 异常 中断 陷阱

    2020-01-23 15:30:31
    就研究了一下中断的分类,还有异常和陷阱。下面是我百度之后的一些总结: 中断的分类:外中断和内中中断 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同...
  • 异常、中断陷阱

    2019-09-30 23:38:46
    就研究了一下中断的分类,还有异常和陷阱。下面是我百度之后的一些总结: 中断的分类:外中断和中断 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的...
  • Linux 中断和陷阱

    千次阅读 2013-11-18 22:12:26
    一直没有搞清楚,记在博客里省的再去查资料 ...DPL0 陷阱门: 用于CPU异常,DPL为0,不允许用户态直接使用int指令访问,硬件中断免去这一判断,因此可以在用户产生CPU异常,见 set_trap_gate。 DPL3陷阱
  • 陷阱 计算机有两种运行模式:用户态, 内核态。 其中操作系统运行在内核态,在内核态中,操作系统具有对所有硬件的完全访问权限,可以使机器运行任何指令;相反,用户程序运行在用户态,在用户态下,软件只能使用...
  • 上一篇文章学习了中断与异常的概念:【OS学习笔记】三十四 保护模式十:中断和异常区别 本片文章接着学习以下内容: 中断描述符表 中断陷阱门 1 中断描述符表 我们前面讲了无数次,在实模式下,是由位于低地址...
  • [OS]中断陷阱区别

    千次阅读 2007-10-06 16:21:00
    1.引起的中断源不同陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的;2.中断处理程序服务的对象不同陷阱处理程序为当前进程服务,而中断处理程序则不是为当前进程服务; 
  • 在操作系统中,陷阱中断和异常是常见的术语,它们贯穿操作系统学习的始终,这篇文章主要区分它们之间的不同。 陷阱 计算机有两种运行模式:用户态, 内核态。 其中操作系统运行在内核态,在内核态中,操作系统具有...
  • 中断陷阱

    千次阅读 2006-01-08 20:08:00
    通过中断门的转移通过陷阱门的转移之间的差别只是对IF标志的处理。对于中断门,在转移过程中把IF置为0,使得在处理程序执行期间屏蔽掉INTR中断(当然,在中断处理程序中可以人为设置IF标志打开中断,以使得在处理...
  • Intel X86中的中断陷阱和异常

    千次阅读 2012-08-10 09:39:29
    中断有两种,一种是CPU外部产生的,一种是CPU内部执行程序时产生的。...CPU内部产生的中断也分为两种,一种是软件主动产生的中断,通常称为陷阱,例如执行int 0x80指令,还有一种是CPU检测到异常,通常称为异常,例如除
  • 中断门&陷阱

    2021-04-26 01:05:42
    陷阱门也和中断门类似调用什么都类似就是构造一样 跟调用门类似,但是不能往里面传参,所以高32位的前4位一定为0,同时TYPE位也有细微的改动,其他的并没有太大的改动。 执行流程 直接int 然后根据编号查IDT表,...
  • 中断门与陷阱门在使用上的区别 并不在于中断是由外部产生的或是由cpu本身产生的, 而是在于通过中断门进入中断服务程序时cpu会自动将中断关闭,也就是将cpu中eflags寄存器中IF标志复位,防止嵌套中断的发生;而...
  • http://blog.csdn.net/cloud_apex/archive/2006/01/08/573795.aspx<br />  通过中断门的转移通过陷阱门的转移之间的差别只是对IF标志的处理。对于中断门,在转移过程中把IF置为0,使得在处理程序执行...
  • 中断陷阱、异常

    2010-08-21 23:50:35
    外部中断,就是我们通常所说的中断(interrupt)。对于执行的系统来说,这种中断发生完全是"异步"的,根本无法预测到此类中断会在什么时候发生。因此,CPU(或者软件)对于此类外部中断完全是"被动"...
  • 浅评中断 陷阱 异常 转
  • 陷阱 计算机有两种运行模式:用户态, 内核态。 其中操作系统运行在内核态,在内核态中,操作系统具有对所有硬件的完全访问权限,可以使机器运行任何指令;相反,用户程序运行在用户态,在用户态下,软件只能使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,770
精华内容 5,908
关键字:

中断和陷阱的区别