![就中断的定义而言,“异步”和“同步”这两个术语是什么意思?](https://linux22.com/image/1285052/%E5%B0%B1%E4%B8%AD%E6%96%AD%E7%9A%84%E5%AE%9A%E4%B9%89%E8%80%8C%E8%A8%80%EF%BC%8C%E2%80%9C%E5%BC%82%E6%AD%A5%E2%80%9D%E5%92%8C%E2%80%9C%E5%90%8C%E6%AD%A5%E2%80%9D%E8%BF%99%E4%B8%A4%E4%B8%AA%E6%9C%AF%E8%AF%AD%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
答案1
当维基百科文章提到异步中断,他们使用了适用于数字电路的经典时钟与非时钟同步定义。
当逻辑的每个部分都连接到一个公共时钟(例如 CPU 中的时钟)时,数字电路被称为同步电路。在每个时钟周期的上升或下降时,电路的状态都会更新。另一方面,异步数字电路不是时钟控制,而是下一个状态取决于当前状态(并将尽快切换)。从其他电路读取逻辑不共享同一个公共时钟也可以定义为异步的,但是相对于另一条电路。
如果触发了异步中断,则意味着处理器将(很可能在下一个时钟周期)保存其当前执行环境并处理中断请求。这是硬件中断(由与处理器的外部连接触发的中断)的一个例子。正如文章中提到的,所有软件中断在技术上都是同步的,因为它们是由 CPU 本身发起的 - 这是一个同步电路。
由于没有外部设备与 CPU 共享同一个时钟,因此所有外部中断都可以说是异步的。即使触发中断的设备可能是一个同步电路,从 CPU 的角度来看,这些中断是异步触发的(因为它不与设备共享公共时钟信号)。
实际的外部中断信号本身是异步的,但所有 CPU 中断处理程序都是同步的,它们只会检测中断在下一个时钟滴答声,因为这就是同步系统的意义所在(只允许系统状态一起改变)。如果你对处理器如何处理中断感兴趣,请参阅来自英特尔的这一宝贵资源(具体来说,第 3 卷,第 1 部分)。
答案2
摘自词源词典Synchronous
,
1660年代,“同时存在或发生”,
来自 LL 同步“同时,”
源自 希腊语 synchronos“同时发生”
从同步- “一起” +克罗诺斯“时间”。
意思是“在连续的同一时刻重复出现”,从 1670 年开始被证实
asynchronous
意思是“不同步”。
现在您可以再次在上下文中阅读所有这些内容interrupts
。
异步中断与手头的活动没有直接关系——想象一下,你正在阅读这篇文章,突然听到身后有声音;你转过身——这是因为你被异步中断了:-)
现在,如果你正在阅读维基百科上关于中断的页面,并且看到了这个词asynchronous
,你就可以查找它(如上所示)——这是你思维流中的同步中断;造成这种中断的原因就是你所读到的内容——结果,你停止阅读,查找这个词,最后回来阅读这篇文章。
答案3
基本上,它是一种引起内核或程序注意的方法。
举个例子:假设我有一个程序正在下载一个文件。我希望我的程序在文件下载时仍然能够响应,并且我需要告诉我的程序我已经完成了。然而,与此同时,我的程序应该继续做它想做的事情,直到它被下载文件的完成所中断。然后它做它需要做的任何事情。它是异步的,因为它不会在预定义的时间或按预定义的顺序发生。
同步意味着您预计它接下来会发生。异步意味着您不知道它何时发生或是否会发生。
答案4
简而言之
同步:定时中断。取决于时钟周期。预期。也称为陷阱。
异步:基于事件发生的中断。它取决于当前状态,并且活动会导致下一个状态不同。不是预期的。