现在,我运行时有一段代码,我不希望它被打断。所以我想知道的是 有办法禁用它或不处理任何interrput。
有没有办法让特殊核心只运行一个过程。
答案 0 :(得分:0)
要禁用中断,您可以实现可以调用
的系统调用irq_disable()
和
irq_enable()
当你退出时。但是,在大多数情况下,禁用中断应该可以进行非常快速的操作。您还可能需要root才能执行该系统调用(待检查)。
对于你的第二个问题,如果我理解得很清楚,你可以通过
设置过程亲和力 int sched_setaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask);
答案 1 :(得分:0)
由于您特别提到这是一个用户空间应用程序,您可能希望研究使用linux提供的众多同步原语之一。您选择使用的那个将取决于您尝试做什么。这将允许您定义代码的关键部分,而不会出现竞争条件和/或死锁的可能性。