我想知道是否有可能以原子的方式在C中执行两个连续的指令。这意味着我不希望操作系统(Linux)中执行的任何其他进程在执行这些指令时占用处理时间。
谢谢!
发布于 2014-06-17 09:05:22
不是的。一个进程不可能阻止其他人。对于多用户系统来说,这将是相当糟糕的,即使是在单用户系统中,它也有相当可怕的故障模式。
您可以增加您的优先级级别,但即使这样,您也会被中断和系统级进程抢占。
防止其他人运行的最好方法是使用锁,这会使其他协作进程在获得相同的锁时睡眠。
发布于 2014-06-17 09:05:26
不是的。
操作系统可以随时中断您的程序。C编程语言没有指定执行线程的调度方式,也没有提供影响此调度的方法。
您可以得到的最好方法是指定两个特定的执行线程不能在特定的点上交错。然而,这需要双方的同步。也就是说,您可以说线程A中的代码不应该与线程B中的代码交织,但是不能说线程A中的代码不应该与任何其他代码交织。
发布于 2014-06-17 09:16:30
做您想做的事情的方法是在内核空间中。可以处理内核驱动程序中的中断并挂起其他进程。但是这样做,假设您确实有充分的理由这样做,并且非常了解内核黑客。
https://stackoverflow.com/questions/24259663
复制相似问题