问题标签 [interrupt]

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 回答
23898 浏览

python - Python 多处理 atexit 错误“atexit._run_exitfuncs 中的错误”

我正在尝试在 Python 中运行一个简单的多进程应用程序。主线程产生 1 到 N 个进程并等待它们都完成处理。每个进程都运行一个无限循环,因此它们可能会在没有用户中断的情况下永远运行,所以我输入了一些代码来处理 KeyboardInterrupt:

问题是,当使用 CTRL-C 退出时,即使进程似乎立即退出,我也会收到一个额外的错误:

我在 Windows 上运行 Python 2.6。如果有更好的方法在 Python 中处理多处理,请告诉我。

0 投票
2 回答
1051 浏览

operating-system - 装配 OUTB 功能如何导致三重故障?

在我的系统编程课上,我们正在研究一个小型、简单的爱好操作系统。我个人一直在研究 ATA 硬盘驱动程序。我发现一行代码似乎会导致错误,然后立即重新启动系统。有问题的代码位于我的 IDE 中断中断服务程序的末尾。由于我使用的是 IDE 通道,因此它们是通过从 PIC(通过主 PIC 级联)发送的。最初我的代码只是将中断结束字节发送到从站,但后来我的教授告诉我,我也应该将它发送到主 PIC。

所以这是我的问题,当我取消注释将 EOI 字节发送到主 PIC 的行时,系统会出现三重故障,然后重新启动。同样,如果我留下评论,系统将继续运行。

在没有看到系统的其余部分的情况下,是否有人可以解释这里可能发生的事情?

注意:就像在黑暗中拍摄一样,我用另一个 _outb() 调用替换了 _outb() 调用,这只是确保为 IDE 控制器启用了中断,但是,生成的程序集几乎是相同的。这并没有导致故障。

*_outb() 是 x86 OUTB 指令的包装器。

我将 EOI 发送给主 PIC 的功能有什么特别之处,这是一个问题?

我意识到如果没有看到代码,这可能无法回答,但感谢您的关注!

0 投票
1 回答
656 浏览

x86 - 为什么主 PIC 的中断结束会导致三重故障(重启)?

好的,在学校我们正在开发一个操作系统。我的项目一直是开发一个 ATA 硬盘驱动程序。当我的教授指出我只是向从 PIC 发送中断结束命令而不是主 PIC 时,我认为我的中断服务程序运行良好。

我的问题是,每当我向主 PIC 发送中断结束时,它会导致三重故障,然后导致我的系统重新启动。现在我已经取消/注释了一堆行,似乎每当将中断结束发送到主 PIC 的函数留在代码中时,我都会遇到三重错误。

现在我很确定以下几点:

  1. 进入我的 ISR 时中断被禁用
  2. 我正在正确发送中断结束字节(经过类测试)
  3. 我没有重新确认相同的中断

这引起了巨大的挫败感,所以我希望有人可以在不需要查看我们的代码的情况下给我一些指导。

谢谢!

0 投票
11 回答
4664 浏览

embedded - 使用定时器计时会中断嵌入式微控制器

这个问题是关于在没有操作系统的情况下对小型微控制器进行编程。特别是,我目前对图片感兴趣,但问题很笼统。

我已经多次看到以下模式来保持时间:

定时器中断代码(比如定时器每秒触发一次):

主线代码(非中断):

主线代码可能会重复,将计数器设置为各种值(不仅仅是秒)等等。

在我看来,当sec_counter主线代码中的分配不是原子的时,这里有一个竞争条件。例如,在 PIC18 中,分配被转换为 4 个 ASM 语句(同时加载每个字节并在此之前从存储区中选择正确的字节)。如果中断代码出现在中间,则最终值可能已损坏。

奇怪的是,如果分配的值小于 256,则分配原子的,所以没有问题。

我对这个问题是否正确?您使用什么模式来正确实现此类行为?我看到几个选项:

  • 在每次分配给 sec_counter 之前禁用中断并在之后启用 - 这并不漂亮
  • 不要使用中断,而是使用一个单独的计时器,该计时器启动然后轮询。这是干净的,但会用完整个计时器(在前一种情况下,1 秒触发计时器也可以用于其他目的)。

还有其他想法吗?

0 投票
5 回答
29908 浏览

python - 如何在被 Python 杀死之前运行最后一个函数?

有没有办法在运行的 Python 脚本被其他脚本、键盘中断等杀死之前运行最后一个命令?

0 投票
11 回答
102494 浏览

arm - FIQ和IRQ中断系统有什么区别?

我想知道任何微处理器中FIQ和IRQ中断系统的区别,例如:ARM926EJ。

0 投票
2 回答
4633 浏览

interrupt - 处理器如何识别请求中断的设备?

1)处理器如何识别请求中断的设备?

2)鉴于不同的设备可能需要不同的ISR,处理器如何获得每种情况下的起始地址?

3) 是否允许设备在处理另一个中断时中断处理器?

4)应该如何处理两个或多个同时的中断请求?

0 投票
2 回答
1966 浏览

java - 未来取消后如何在 Callable 中终止 CXF webservice 调用

编辑

到目前为止,这个问题已经经历了几次迭代,因此请随时查看修订版以查看有关历史和尝试的事情的一些背景信息。


我将 CompletionService 与 ExecutorService 和 Callable 一起使用,通过 CXF 生成的代码同时调用几个不同 Web 服务上的多个函数。这些服务都为我正在使用的一组信息提供不同的信息我的项目。但是,服务可能会在不引发异常的情况下长时间无法响应,从而延长对组合信息集的等待。

为了解决这个问题,我同时运行所有服务调用,几分钟后想终止任何尚未完成的调用,最好从可调用对象中或通过抛出来记录哪些调用尚未完成一个详细的例外。

这是一些高度简化的代码来说明我已经在做什么:

同时启动 WS 调用的代码:

我在这段代码中遇到的问题是,在等待 port.getXXXFeatures(...) 返回时,Callables 实际上并没有被取消,而是以某种方式继续运行。从if (Thread.currentThread().isInterrupted()) log.error("XXX was interrupted");语句中可以看出,在 port.getFeatures 返回后设置了中断标志,这在 Webservice 调用正常完成后可用,而不是在我调用 Cancel 时被中断。

谁能告诉我我做错了什么以及如何在给定时间段后停止正在运行的 CXF Webservice 调用,并在我的应用程序中注册此信息?

最好的问候,蒂姆

0 投票
5 回答
9431 浏览

c# - Thread.Interrupt 在应用程序关闭时停止长时间睡眠 - 有没有更好的方法

我有一个在应用程序生命周期内运行的小型后台线程 - 但是当应用程序关闭时,线程应该正常退出。

问题是线程以 15 分钟的间隔运行一些代码 - 这意味着它睡眠很多。

现在为了让它脱离睡眠状态,我向它抛出一个中断——但是我的问题是,如果有更好的方法来解决这个问题,因为中断会产生 ThreadInterruptedException。

这是我的代码的要点(有点伪):

0 投票
2 回答
882 浏览

c++ - 主机上的定时器中断服务程序以 10 微秒或更快的速度运行

我正在尝试在 Windows XP 操作系统上运行的主机(512 mb RAM、Intel 2.5 GHz Pentium 4 处理器等)上以 10 微秒或更快的速度运行以下伪代码:

我知道有 MFC 计时器,但如果计时器需要以超过 1 毫秒的速度触发,它们将不起作用。实现我的伪代码目标的最简单方法是什么?提前致谢。