问题标签 [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 投票
1 回答
2031 浏览

linux-kernel - 多个排队和工作队列

我正在学习工作队列以在 linux 内核中编写下半部分代码。我想知道:如果中断处理程序被执行两次(因此调用schedule_work了两次),工作队列处理程序是被调用一次还是两次?

0 投票
5 回答
21273 浏览

interrupt-handling - 禁用中断是什么意思?

进入中断处理程序时,我们首先在该 cpu 上“禁用中断”(使用类似于 x86 上的 cli 指令的东西)。在中断被禁用期间,假设用户按下键盘上的字母“a”,这通常会导致中断。但是由于中断被禁用,这是否意味着:

  1. 永远不会调用“a”的中断处理程序,因为在临界区中禁用了中断或
  2. 中断将由操作系统处理但延迟,直到再次启用中断。具体来说,如果用户第一次按下“a”是在中断被禁用的时候,用户是否需要再次按下“a”?
0 投票
1 回答
780 浏览

linux - Perl:如何添加一个中断处理程序,以便可以通过 system() 控制 mpirun 执行的代码?

我们使用带有Perceus (warewulf) 软件的集群来进行一些计算。该软件包具有wwmpirun准备主机文件并执行的程序(Perl 脚本)mpirun

我们使用此脚本在多个节点上运行数学程序 (CODE),通常应该通过 Ctrl+C 停止 CODE,并提供一个带有选项的简短菜单:状态、停止和暂停。但是,使用 MPI 运行时,按 Ctrl+C 会严重杀死 CODE 并丢失数据。

CODE 的开发人员提出了一种解决方法 - 可以通过创建一个名为 的文件来停止程序stop%s,其中%s是 CODE 正在执行的任务文件的名称。这允许停止,但我们无法获得计算状态。有时需要很长时间才能恢复此功能,我们将不胜感激。

您怎么看 - 问题出在 CODE 还是mpirun

有人能找到一种与 CODE 执行的通信的方法mpirun吗?

更新1

在单次运行中,通过按 Ctrl+C 并status通过输入在提供的菜单中选择选项来获取计算状态s。CODE 在 STDOUT 中打印状态信息并继续进行计算。

0 投票
2 回答
3743 浏览

multithreading - 在java中停止线程的最佳方法是什么?

我想在执行过程中停止一个线程。通过阅读,我认为我将不得不检查一个局部变量以确定线程是否应该继续或清理并退出 run()。有什么干净地实现这个的想法吗?

0 投票
3 回答
6648 浏览

microcontroller - 如果我在其 ISR 中禁用中断会发生什么?

如果在中断的 ISR 中禁用中断会发生什么?
例如,如果我通过 USART 从缓冲区传输数据并且该缓冲区用完数据,那么我想暂时停止传输,因此在发送缓冲区中的最后一个字节后,我禁用中断。

(这是在 PIC18F4580 上)

PIC18F4580 的数据表指出,如果在 ISR 内禁用中断,则“可能会出现异常行为”。

0 投票
2 回答
2663 浏览

interrupt-handling - 软件中断和信号的区别

“使用信号传递软件中断”

这是否总是正确的,如果不是那么

a) 两者有什么区别

如果是,除了传递信号之外,是否还有其他机制可以引发软件中断。

0 投票
2 回答
4838 浏览

c - 引脚变化中断 - 带内部中断的外部中断

在程序中,我正在使用定时器中断循环通过 LED,如果有人按下开关,它应该停止第一个中断并触发第二个中断,该中断应该根据按下的开关点亮 LED。在这里,我有点困惑正在调用哪个中断。我参考了一些关于 Pin Change Interrupt 的书,并写了几行来设置 PCMSK2。得到的输出是“最初所有的 LED 都在循环,当按下开关时...... LED 的循环停止并重新开始(这意味着程序正在读取输入,只是没有触发第二个中断)。它不会停止或暂停 & 不点亮后续的 LED。” 有人可以帮忙吗?

感谢您的支持。

0 投票
1 回答
132 浏览

interrupt - 分布式中断

我只是在寻找有关操作系统如何处理分布式环境中的中断的信息。

0 投票
1 回答
3041 浏览

interrupt-handling - Blocking or sleeping an interrupt handler

Assume:
1) Multi-cpu environment
2) Process that gets interrupted, is the same process that executes the interrupt handler, so I guess technically nothing gets interrupted except what the process was doing before, but it is still executing as it is executing the handler.
3) There is no top or bottom half, when an interrupt takes place the handler is invoked, executes, then return from interrupt, simple as that.

Why would sleeping the handler (puts in sleep queue, context switch to next runnable process) be a bad idea?

0 投票
2 回答
306 浏览

operating-system - 有人可以帮我解决一些我无法掌握的操作系统概念 - 重新中断

抱歉,我不确定这是不是一个合适的地方问这个问题,但我希望它是可以接受的,如果不是很抱歉!:)

我目前正在做一个操作系统理论的模块,但我有一些我无法掌握的概念——这是提问的正确地方吗?

我的主要问题是关于中断。当 CPU 检测到有中断发生时,我明白它必须找出这个中断的来源。我的理解如下,谁能告诉我这是否正确,并解释我的知识空白?

为了让 CPU 检测中断的来源,它可以查询所有对象以识别源,但这些基于 I/O 的问题需要很长时间。相反,它使用中断周期,并期望数据总线上有一个中断标识符。如果是8位数据总线,则有256个中断级(即2^8)。(为什么是这样?)

因此,为每个可能的中断级别编写中断服务程序 (ISR),并将其存储在由处理器标准化的固定位置(中断向量)的表中。在我的笔记中说“在获取地址之前必须知道位置”(这是什么意思?)

作为中断周期的一部分接收到的中断级别标识符用作中断向量的索引(有人可以分解一下吗?)。我的理解是一个值,中断级别标识符被传递给CPU并用于指向中断向量。

另外,当一个中断被称为“服务”时是什么意思?

非常感谢您,对于长篇大论感到抱歉,我对此的许多方面感到有些困惑!