gpt4 book ai didi

operating-system - 中断和事件的区别

转载 作者:行者123 更新时间:2023-12-03 13:24:54 26 4
gpt4 key购买 nike

中断和事件有什么区别?

最佳答案

这两个概念都为“系统/程序”提供了处理在某些程序正常展开期间发生的各种“条件”的方法,这些“条件”可能需要“系统/程序”在返回(或不是...)到原来的任务。但是,除了这种功能相似性之外,它们是在不同上下文中使用的非常不同的概念,在不同的级别 .

中断 提供低级设备来中断 CPU 在给定时间内正在处理的任何程序的正常展开,并让 CPU 从另一个地址开始处理指令。中断可用于处理需要 CPU 立即处理的各种情况(例如处理击键或串行通信 channel 中新数据的到达)。

许多中断是由硬件产生的(通过某些电子设备改变 CPU 的一个引脚上的极性),但也有由程序本身调用特定指令引起的软件中断。 (或者也可以通过 CPU 检测到某些东西与自身或正在运行的程序有关)。

一个非常著名的中断是INT 0x21,它程序invoke[d] 从MS-DOS 调用服务。

中断通常通过向量表进行分派(dispatch),其中 CPU 在内存中具有包含地址数组的特定位置[特定中断处理程序所在的位置]。通过修改中断表的内容[如果允许的话……],程序可以重新定义对于给定的中断号将调用哪个特定的处理程序。

事件 ,另一方面,是 系统/语言级“消息”可用于表示各种硬件或软件情况(我会使用事件一词),例如鼠标点击、键盘输入,也可以用于表示应用程序级别的情况,例如“新记录插入数据库”或高度消化的请求和消息, 在模块化程序中用于程序各个部分之间的通信/请求。

与具有完全由 CPU 定义的 [相对简单] 行为的中断不同,存在各种事件系统系统,在操作系统级别以及各种框架(例如:MS Windows、JavaScript、.NET、GUI 框架,如QT 等)。所有事件系统虽然在实现上有所不同,但通常具有共同的属性,例如

  • 处理程序的概念,它是程序的特定功能/方法,被指定用于处理来自特定事件源的特定类型的事件。
  • 事件的概念,它是一个[通常很小的] 结构,包含有关事件的信息:其类型、来源、自定义参数(其语义取决于事件类型)
  • 一个队列,其中事件由源插入并由消费者/处理程序轮询(或更准确地说,由调度程序,取决于系统......)
  • 关于operating-system - 中断和事件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1781415/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com