183得票5回答
什么是不间断进程?

有时在Linux中编写程序时,如果由于某种错误导致崩溃,它将变成不可中断的进程,并继续运行直到我重启计算机(即使我注销)。我的问题如下: 是什么原因导致进程变成不可中断? 如何防止这种情况发生? 这可能是个蠢问题,但是否有任何方法可以在不重新启动计算机的情况下中断它?

67得票5回答
什么是抢占/什么是可抢占内核?它有什么好处?

请用自己的话解释一下什么是抢占,并且它对于(Linux)内核意味着什么? 有可抢占内核的优缺点是什么?

36得票9回答
“Linux内核支持抢占”是什么意思?

我读到Linux内核是可抢占的,这与大多数Unix内核不同。那么,内核是可抢占的真正含义是什么? 一些比纯理论解释更好的类比或示例将会更好。 ADD 1 -- 11:00 AM 12/7/2018 可抢占只是多任务处理中的一种范例,还有其他类型如协作式多任务处理。通过比较它们可以更好地理解。

17得票4回答
为什么禁用中断会禁用内核抢占,以及自旋锁如何禁用抢占

我最近在阅读《Linux内核开发》一书,有几个问题与禁用抢占有关。 在第7章的“中断控制”部分,它说: 此外,禁用中断也禁用内核抢占。 我还从书中了解到内核抢占可以在以下情况下发生: 当一个中断处理程序退出,在返回内核空间之前。 当内核代码再次可抢占时。 如果内...

12得票1回答
Linux内核自旋锁和互斥锁期间的抢占

当内核空间中的一个进程持有 spin_lock 时,由于以下任何条件之一,该进程都无法被抢占: 进程的时间片用尽 高优先级进程变得可运行 中断发生 但是,如果该进程阻塞、睡眠或显式调用 schedule(),则可以让出处理器。我的理解正确吗? 当内核空间中的一个进程持有 mutex_...

11得票1回答
“进程抢占” 的确切定义是什么?

维基百科定义: 在计算机领域,抢占是指在不需要进程配合的情况下,暂时中断正在进行的计算机系统任务,并打算在以后恢复该任务。 其他来源的定义: [...] 抢占是指强制从一个进程中取回处理器,并将其分配给另一个进程。[《操作系统(自助版1.1)》,西布桑卡·哈尔达] 程序的抢占发生在执行...

11得票1回答
在Linux上,原生代码的抢占式多任务处理能否在用户空间实现?

我在想能否在Linux的用户空间内实现本地代码的抢占式多任务处理,即通过外部暂停一些正在运行的本地代码、保存上下文、切换到另一个上下文并恢复执行操作,但使用的调用可能会进入内核。我曾经想过可以使用SIGALRM的信号处理程序和*context()函数族来实现这个目标,但事实证明整个*conte...

11得票1回答
了解最新(3.0.0及以上)Linux内核中CONFIG_SMP、自旋锁和CONFIG_PREEMPT之间的关系

为了给您提供完整的背景信息,我的讨论始于一个观察:我在ARM cortex A8 SoC上运行SMP Linux(3.0.1-rt11),这是单处理器。我很想知道禁用SMP支持是否会有任何性能优势。如果有的话,它将对我的驱动程序和中断处理程序产生什么影响。 我阅读了一些相关主题:自旋锁和内核...

10得票4回答
VxWorks调度器是如何执行的?

我想知道调度器是如何被调用以便可以切换任务的。即使是抢占式调度或循环调度,调度器也应该介入进行任何类型的任务切换。假设一个低优先级任务有一个无限循环 - 当调度器介入并切换到高优先级任务时会发生什么? 问题是: 1. 谁调用调度器? [在VxWorks中] 2. 如果它定期被调用 - 那么这...

10得票2回答
FreeRTOS:为什么要在isrHandler中调用taskYIELD_FROM_ISR()方法

我试图理解为什么用户必须调用taskYIELD_FROM_ISR()方法,而为什么它不会在xStreamBufferSendFromISR方法内部被RTOS自动调用。 我的问题涉及到FreeRTOS手册第369页。 /* A stream buffer that has already b...