问题标签 [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.
linux - 在中断时获取 current->pid
我正在linux调度程序上写一些东西,我需要知道在我的中断到来之前哪个进程正在运行..当前结构是否可用?如果我在中断处理程序中执行 current->pid,我会得到我中断的进程的 pid 吗?
assembly - 为什么我的中断处理程序没有触发?
我正在尝试在Bochs中安装中断处理程序,但由于某种原因,我的中断处理程序没有触发。
首先我设置了一个断点:
然后我尝试执行int 3
.
但是,当我这样做时,错误显示int_trap_gate(): selector null
,这似乎告诉我某个表中的选择器为空。
但是,GDT 如下所示:
IDT 也是如此:
在我看来,IDT 条目具有有效的 GDT 选择器,所以我不明白执行中断时导致问题的原因:
问题是什么?
ada - Ada 中断处理程序
在使用 Ada 中断处理程序时,到目前为止,我已经隔离了一些需要在代码中才能使它们工作的特定内容。
使用 Ada.Interrupts:
假设这一切都是正确的并且我已经在寄存器中启用了中断,我还需要添加其他与中断相关的代码吗?特别是,我是否需要直接与寄存器交互以以某种方式“链接”我的处理程序代码,或者我可以只设置寄存器的记录表示,直接向它们输出必要的设置,然后让 rip?
谢谢!
assembly - 当你禁用中断时会发生什么,你如何处理你不知道如何处理的中断?
当您禁用中断(使用cli
x86 中的指令)时,究竟会发生什么?
PIC 是否等待您打开中断,并在发生这种情况时触发中断?(如果是这样,它等待多长时间,如果时间“到期”会发生什么?)
从设备的角度来看,中断是否会被发送到“黑洞”而没有响应?
PIC 是否以某种方式告诉设备“CPU 很忙”之类的?
还是发生了其他事情?
另外,您如何处理您不知道如何处理的中断?
有什么方法可以告诉 PIC(或设备,如果您不知道设备是什么),“是的,我收到了您的消息,但我不知道如何处理它”?
x86 - 为 x86 中的设备内存副本提供服务的页面错误的中断处理
我正在尝试在 x86 CPU 上计算中断的控制流程,特别是页面错误。到目前为止,这是我能弄清楚的:
- IDT 填充有服务例程地址。
- 发生中断。
- CPU 将 EFLAGS、CS 和 EIP 保存到堆栈。
- EIP 设置为从 IDT 获取的 ISR 地址,即
mov eip, [idtr+interruptNum*4]
- 中断例程执行。
- 中断例程以一条
iret
指令完成。
现在,假设中断实际上是与 NIC 缓冲区相关的页面错误。ISR 会out
用来告诉 DMA 控制器从系统内存向设备发出副本(反之亦然),还是我在这里偏离了基础?
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() 来解决它。
ios - AVAudioPlayer 中断问题
我有AVAudioPlayer
中断问题。
而且我不是在谈论来电期间的中断。我可以很好地处理这种情况。通话 -> 中断开始 -> 通话结束 -> 中断结束。
问题出在设备上的摄像头上。情况是:
我的播放器应用正在后台播放。我想做一张照片。我打开相机拍了张照片。完全没有中断!但是,如果我想捕捉一些视频,中断就会开始,播放器会变得安静。同时中断结束!(我在两个设备的帮助下检查了它NSLog
- 我觉得很奇怪)但是播放器没有继续播放歌曲,因为摄像机仍然打开。我关闭相机,现在我预计中断会结束,但它提前结束了,玩家保持沉默。
问题是:如何处理这种情况?
c - 如何为中断注册和取消注册事件
它不在标准 C 上,我试图在 C 中开发应用程序。这是场景:它就像处理器的电源模式实现,这样当处理器从睡眠中唤醒时,会产生一个中断,这样如果我那时有一个事件回调,我可以唤醒我的其他模块来完成它的进程。为此,我正在尝试使用静态分配来实现链表来访问内存池,这样当注册回调时,它就会存储在内存池中. 因此,当触发回调时,它会向已注册的模块发送事件通知。
但我不确定如何实现它。请提供一种实现方式
linux-kernel - 抢占式中断处理程序会发生什么?
即使在一些写得很好的内核书籍中,我也找不到以下问题的正确答案:
他们说 ISR 不能休眠,因为它无法重新调度 ISR,因为它没有与任何进程连接,那么当更高优先级的中断抢占正在执行的中断时会发生什么?中断的 ISR 不会再次重新安排(执行)?如果是,如何以及谁来做这项工作?
很多时候我们会禁用中断(例如:1.在临界区 2. 当一个快速中断正在执行时,它将禁用当前处理器中的所有中断),那么当中断被禁用时发生的中断会发生什么?他们只是被丢弃了?还是将存储在某个地方以供以后执行?如果是,在哪里以及如何?
当一个 ISR 正在执行时,它将禁用当前 IRQ 行中的中断以避免重入(防止同一行上的另一个 ISR 被执行),但是为什么呢?如果 ISR 是可重入的,那有什么问题?
*ISR=中断服务程序
*他们=书的作者
clock - CPU不调用IRQ0?
我正在编写一个操作系统并尝试使用 PIT。我编写了一个处理程序,并为 IRQ0(中断 32)编写了一个 ISR 条目。处理程序根本没有被调用。我很确定我没有正确输入 ISR。有什么建议么?这是我的 ASM 代码
我初始化 PIT 的代码是
处理程序是
哪个被称为