- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
中断是否分配给固定的 CPU(总是由同一个 CPU 处理)?
将我的问题放在上下文中:
来自: http://msdn.microsoft.com/en-us/library/ms795060.aspx
保护共享区域的自旋锁的 IRQL 等于设备中断时的 DIRQL。只要临界区例程持有自旋锁并访问 DIRQL 的共享区域,ISR 就不能在单处理器或 SMP 机器上运行。
这在单处理器机器上是有意义的,因为 CPU 的 IRQL 不小于中断 IRQL,直到锁被释放,中断才会被 CPU 服务。然而,在 SMP 机器上,什么会阻止中断被另一个 CPU(不是拥有锁的 CPU)处理并破坏数据...?
最佳答案
阅读下一节......
In an SMP machine, the ISR cannot acquire the spin lock that protects the shared data while the critical-section routine holds the spin lock and accesses the shared data at DIRQL.
...我认为这是在说在 SMP 机器上中断可以发生;但是如果中断发生,那么中断服务例程(在另一个 CPU 上运行)仍然无法获取自旋锁:即它自旋,浪费周期,尝试获取自旋锁,除非你释放自旋锁让等待的 ISR 获取它。
我想知道为什么它可能允许 ISR 在另一个 CPU 上运行,而不是像在单 CPU 情况下那样屏蔽中断(以防止 ISR 被启动)。对此的答案是,无论在持有自旋锁时是否可以在另一个 CPU 上启动新的 ISR,事实是(与单 CPU 情况不同)一个 ISR 可能已经 在 DIRQL 自旋锁启动时在另一个 CPU 上运行:正是出于这个原因,这样的 ISR(如果它存在于另一个 CPU 上)必须自旋(如果它试图获取自旋锁)。
关于operating-system - SMP 系统上的中断处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522690/
Linux内核中的原始代码是: static inline void __raw_spin_lock_irq(raw_spinlock_t *lock) { local_irq_disable
我正在学习多线程编程;在练习互斥时,我注意到它似乎无法在我的双核笔记本电脑上正常工作。 互斥锁代码位于 http://pastebin.com/axGY5y3c 结果如下: count value:t
在多种语言(主要是 D 和 Java/Jython)中,我注意到由于内存管理瓶颈,没有明显同步瓶颈的并行程序通常不能很好地扩展到 4 个或更多内核。我知道线程本地分配器缓解了这个问题,但大多数垃圾收集
软件是否需要做一些事情来确保SMP环境的一致性,如果硬件无法解决,有人可以告诉我在linux内核编程中我们可以使用什么方法或API吗?谢谢!!! 最佳答案 http://pages.cs.wisc.e
在 SMP(对称多处理器/多核)机器上如何处理中断?是否只有一个或多个内存管理单元? 假设两个线程,A 和 B 运行在不同的内核上(同时)触及页表中不存在的内存页,在这种情况下将出现页面错误,并从中引
我想知道如何检查我正在运行的机器,内核是否配置为 SMP?当然,我可以查看内核.config文件并可以搜索它。但是,问题是假设我没有源代码,我将如何检查 SMP 配置?有没有proc文件来检查它? 下
Rabbitmq beam.smp 进程无故占用了大部分内存 RabbitMQ 版本:3.7二郎 22 我没有任何特殊配置或任何东西 除了 Rabbitmq,我不使用 celery 或任何东西。 我搜
已通读 Understanding the Linux kernel (Bovet & Cesati),内核同步一章指出自旋锁获取代码归结为: 1: lock: btsl $0, slp
中断是否分配给固定的 CPU(总是由同一个 CPU 处理)? 将我的问题放在上下文中: 来自: http://msdn.microsoft.com/en-us/library/ms795060.asp
在单核 CPU 上,每个进程都在操作系统中运行,CPU 从一个进程跳转到另一个进程以充分利用自身。一个进程可以有多个线程,在这种情况下,CPU 在各自的进程上运行时会通过这些线程运行。 现在,在多核
在mutex的内核实现中,thread owner字段只有在SMP构建时才存在。我可以理解,在良好且干净的代码下,线程只会在获取成功时调用释放,因此我们可以通过不跟踪线程来节省一些缓存和 cpu 周期
我们在以下主机上运行 Erlang 14B03: HP Proliant G6 服务器,有 2 个 Intel 处理器,每个处理器有 2.4GHz 速度,8MB 缓存,每个处理器有 4 个内核。服务器
据说 Linux 内核是 SMP。据说进程和内核线程应该跨处理器分布。 是否所有 Linux 发行版(如 fedora13、ubuntu 10.04 Lucid)默认都启用 SMP Linux? 在
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
如果我们在 SMP 机器上的中断处理程序中休眠会发生什么, 我写了一个示例 keyboard driver并在中断处理程序上添加 sleep #include #include #include
SMP Linux 内核中有类似 pthread_barrier 的东西吗? 当内核同时在 2 个或更多具有相同结构的 CPU 上工作时,屏障(如 pthread_barrier)会很有用。它会阻止所
我在 linux 系统中开发了一个 C 应用程序,其中有 12 个 posix 线程。它是一个多核系统。阅读后我发现内核只知道我的进程,它不会知道线程(posix 库会处理)。在这种情况下,我的 12
我想在我的虚拟机系统上对中断 (irq 75) 进行负载平衡。它有 64 位 redhat 5.8,内核 2.6.18。虚拟机中有 8 个 CPU。 当我运行时: cat /proc/interrup
We are facing an issue on which we need some help. 简要说明: We have enabled SMP in Linux 2.
我有一个关于 Erlang 的问题。 我如何知道 Erlang Beam 正在哪个核心上运行? 或者如果您提供 pid,是否有任何 Linux 命令可以告诉核心进程正在运行的位置? top 可以工作吗
我是一名优秀的程序员,十分优秀!