就中断的定义而言,“异步”和“同步”这两个术语是什么意思?

就中断的定义而言,“异步”和“同步”这两个术语是什么意思?

引自http://en.wikipedia.org/wiki/Interrupt

中断是异步表示需要注意的信号或同步软件中的事件表明需要改变执行。

我想知道“异步”和“同步”是什么意思?

答案1

维基百科文章提到异步中断,他们使用了适用于数字电路的经典时钟与非时钟同步定义。

当逻辑的每个部分都连接到一个公共时钟(例如 CPU 中的时钟)时,数字电路被称为同步电路。在每个时钟周期的上升或下降时,电路的状态都会更新。另一方面,异步数字电路不是时钟控制,而是下一个状态取决于当前状态(并将尽快切换)。从其他电路读取逻辑共享同一个公共时钟也可以定义为异步的,但是相对于另一条电路

如果触发了异步中断,则意味着处理器将(很可能在下一个时钟周期)保存其当前执行环境并处理中断请求。这是硬件中断(由与处理器的外部连接触发的中断)的一个例子。正如文章中提到的,所有软件中断在技术上都是同步的,因为它们是由 CPU 本身发起的 - 这是一个同步电路。

由于没有外部设备与 CPU 共享同一个时钟,因此所有外部中断都可以说是异步的。即使触发中断的设备可能是一个同步电路,从 CPU 的角度来看,这些中断是异步触发的(因为它不与设备共享公共时钟信号)。


实际的外部中断信号本身是异步的,但所有 CPU 中断处理程序都是同步的,它们只会检测中断在下一个时钟滴答声,因为这就是同步系统的意义所在(只允许系统状态一起改变)。如果你对处理器如何处理中断感兴趣,请参阅来自英特尔的这一宝贵资源(具体来说,第 3 卷,第 1 部分)。

答案2

摘自词源词典Synchronous

1660年代,“同时存在或发生”,
来自 LL 同步“同时,”
源自 希腊语 synchronos“同时发生”
同步- “一起” +克罗诺斯“时间”。
意思是“在连续的同一时刻重复出现”,从 1670 年开始被证实

asynchronous意思是“不同步”。

现在您可以再次在上下文中阅读所有这些内容interrupts

异步中断与手头的活动没有直接关系——想象一下,你正在阅读这篇文章,突然听到身后有声音;你转过身——这是因为你被异步中断了:-)

现在,如果你正在阅读维基百科上关于中断的页面,并且看到了这个词asynchronous,你就可以查找它(如上所示)——这是你思维流中的同步中断;造成这种中断的原因就是你所读到的内容——结果,你停止阅读,查找这个词,最后回来阅读这篇文章。

答案3

基本上,它是一种引起内核或程序注意的方法。

举个例子:假设我有一个程序正在下载一个文件。我希望我的程序在文件下载时仍然能够响应,并且我需要告诉我的程序我已经完成了。然而,与此同时,我的程序应该继续做它想做的事情,直到它被下载文件的完成所中断。然后它做它需要做的任何事情。它是异步的,因为它不会在预定义的时间或按预定义的顺序发生。

同步意味着您预计它接下来会发生。异步意味着您不知道它何时发生或是否会发生。

答案4

简而言之

同步:定时中断。取决于时钟周期。预期。也称为陷阱。

异步:基于事件发生的中断。它取决于当前状态,并且活动会导致下一个状态不同。不是预期的。

相关内容