【问题标题】:Software traps vs Hardware Traps软件陷阱与硬件陷阱
【发布时间】:2011-01-27 20:09:54
【问题描述】:

根据我的理解,陷阱和中断之间的基本区别在于,陷阱是同步的并且由异常生成(div by 0 等),而中断是异步的(多个设备可以尝试同时中断,尽管谁赢了比赛是首先获得工作队列锁的人)。有两种类型的中断:硬件和软件。硬件检测到 div by zero 异常,因此可以作为硬件陷阱的示例。

我有两个问题。

  1. 我对方案的理解是否正确,是否还有其他差异?
  2. 有没有一种叫做软件陷阱的东西?如果是这样,一个例子会很有帮助!

【问题讨论】:

    标签: linux unix operating-system


    【解决方案1】:

    syscall 指令可被视为软件陷阱。它会导致陷阱/中断处理的所有元素(上下文切换到执行完全特权的中断服务例程),但在软件控制下触发。

    中断也不是完全异步的,因为屏蔽和取消屏蔽是同步发生的。因此,虽然不可能同时发生两个异步事件,但可以同时取消屏蔽多个中断,在这种情况下,中断优先级,而不是发生顺序,控制服务顺序。

    【讨论】:

    • 我一直认为系统调用是一个软件中断..出于一些奇怪的原因!!你会举什么软件中断的例子?
    • @Karthick:所有的软件指令都是同步的,所以根据你对陷阱和中断的区分,它会被归类为陷阱。
    • true.. 系统调用可能被认为是陷阱......我一直在想象系统调用是一个软件中断......出于一些奇怪的原因!您能否举一个软件中断的例子?如果我问你中断和陷阱之间的区别,你会怎么回答?这听起来不错“可以同时发生多个中断,但一次只能发生一个陷阱”?或者“硬件中断是由设备本身产生的,而硬件陷阱是由于设备上运行的软件而产生的?”
    • “中断是由外部刺激产生的”。正如我所说,“软件中断”是同步的并且是内部生成的,因此它们将被归类为陷阱。术语“软件中断”意味着中断和陷阱之间没有区别。
    • 中断会产生陷阱来强制执行上下文切换吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 2016-12-18
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多