问题标签 [interrupt-handling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2385 浏览

linux - 在中断时获取 current->pid

我正在linux调度程序上写一些东西,我需要知道在我的中断到来之前哪个进程正在运行..当前结构是否可用?如果我在中断处理程序中执行 current->pid,我会得到我中断的进程的 pid 吗?

0 投票
1 回答
708 浏览

assembly - 为什么我的中断处理程序没有触发?

我正在尝试在Bochs中安装中断处理程序,但由于某种原因,我的中断处理程序没有触发。

首先我设置了一个断点:

然后我尝试执行int 3.

但是,当我这样做时,错误显示int_trap_gate(): selector null,这似乎告诉我某个表中的选择器为空。

但是,GDT 如下所示:

IDT 也是如此:

在我看来,IDT 条目具有有效的 GDT 选择器,所以我不明白执行中断时导致问题的原因:

问题是什么?

0 投票
1 回答
1213 浏览

ada - Ada 中断处理程序

在使用 Ada 中断处理程序时,到目前为止,我已经隔离了一些需要在代码中才能使它们工作的特定内容。

使用 Ada.Interrupts:

假设这一切都是正确的并且我已经在寄存器中启用了中断,我还需要添加其他与中断相关的代码吗?特别是,我是否需要直接与寄存器交互以以某种方式“链接”我的处理程序代码,或者我可以只设置寄存器的记录表示,直接向它们输出必要的设置,然后让 rip?

谢谢!

0 投票
2 回答
3355 浏览

assembly - 当你禁用中断时会发生什么,你如何处理你不知道如何处理的中断?

当您禁用中断(使用clix86 中的指令)时,究竟会发生什么?

  • PIC 是否等待您打开中断,并在发生这种情况时触发中断?(如果是这样,它等待多长时间,如果时间“到期”会发生什么?)

  • 从设备的角度来看,中断是否会被发送到“黑洞”而没有响应?

  • PIC 是否以某种方式告诉设备“CPU 很忙”之类的?

  • 还是发生了其他事情?

另外,您如何处理您不知道如何处理的中断?
有什么方法可以告诉 PIC(或设备,如果您不知道设备是什么),“是的,我收到了您的消息,但我不知道如何处理它”?

0 投票
1 回答
1183 浏览

x86 - 为 x86 中的设备内存副本提供服务的页面错误的中断处理

我正在尝试在 x86 CPU 上计算中断的控制流程,特别是页面错误。到目前为止,这是我能弄清楚的:

  1. IDT 填充有服务例程地址。
  2. 发生中断。
  3. CPU 将 EFLAGS、CS 和 EIP 保存到堆栈。
  4. EIP 设置为从 IDT 获取的 ISR 地址,即mov eip, [idtr+interruptNum*4]
  5. 中断例程执行。
  6. 中断例程以一条iret指令完成。

现在,假设中断实际上是与 NIC 缓冲区相关的页面错误。ISR 会out用来告诉 DMA 控制器从系统内存向设备发出副本(反之亦然),还是我在这里偏离了基础?

0 投票
1 回答
1042 浏览

c++ - 为什么 boost::barrier 等待不是中断点?

调用 boost::thread Interrupt() 时,使用 boost::barrier wait() 等待的线程不会被中断。例如 http://www.justsoftwaresolutions.co.uk/threading/thread-interruption-in-boost-thread-library.html

这有充分的理由吗?

当然,我们可以手动放置一个 boost::this_thread::interruption_point() 来解决它。

0 投票
0 回答
476 浏览

ios - AVAudioPlayer 中断问题

我有AVAudioPlayer中断问题。

而且我不是在谈论来电期间的中断。我可以很好地处理这种情况。通话 -> 中断开始 -> 通话结束 -> 中断结束。

问题出在设备上的摄像头上。情况是:

我的播放器应用正在后台播放。我想做一张照片。我打开相机拍了张照片。完全没有中断!但是,如果我想捕捉一些视频,中断就会开始,播放器会变得安静。同时中断结束!(我在两个设备的帮助下检查了它NSLog- 我觉得很奇怪)但是播放器没有继续播放歌曲,因为摄像机仍然打开。我关闭相机,现在我预计中断会结束,但它提前结束了,玩家保持沉默。

问题是:如何处理这种情况?

0 投票
1 回答
201 浏览

c - 如何为中断注册和取消注册事件

它不在标准 C 上,我试图在 C 中开发应用程序。这是场景:它就像处理器的电源模式实现,这样当处理器从睡眠中唤醒时,会产生一个中断,这样如果我那时有一个事件回调,我可以唤醒我的其他模块来完成它的进程。为此,我正在尝试使用静态分配来实现链表来访问内存池,这样当注册回调时,它就会存储在内存池中. 因此,当触发回调时,它会向已注册的模块发送事件通知。

但我不确定如何实现它。请提供一种实现方式

0 投票
4 回答
3642 浏览

linux-kernel - 抢占式中断处理程序会发生什么?

即使在一些写得很好的内核书籍中,我也找不到以下问题的正确答案:

  1. 他们说 ISR 不能休眠,因为它无法重新调度 ISR,因为它没有与任何进程连接,那么当更高优先级的中断抢占正在执行的中断时会发生什么?中断的 ISR 不会再次重新安排(执行)?如果是,如何以及谁来做这项工作?

  2. 很多时候我们会禁用中断(例如:1.在临界区 2. 当一个快速中断正在执行时,它将禁用当前处理器中的所有中断),那么当中断被禁用时发生的中断会发生什么?他们只是被丢弃了?还是将存储在某个地方以供以后执行?如果是,在哪里以及如何?

  3. 当一个 ISR 正在执行时,它将禁用当前 IRQ 行中的中断以避免重入(防止同一行上的另一个 ISR 被执行),但是为什么呢?如果 ISR 是可重入的,那有什么问题?

*ISR=中断服务程序

*他们=书的作者

0 投票
1 回答
444 浏览

clock - CPU不调用IRQ0?

我正在编写一个操作系统并尝试使用 PIT。我编写了一个处理程序,并为 IRQ0(中断 32)编写了一个 ISR 条目。处理程序根本没有被调用。我很确定我没有正确输入 ISR。有什么建议么?这是我的 ASM 代码

我初始化 PIT 的代码是

处理程序是

哪个被称为