【发布时间】:2011-03-15 19:21:42
【问题描述】:
我想用C语言实现一个原子函数,这样在执行函数时进程或线程不会被抢占。
【问题讨论】:
-
这是在 Linux内核还是在用户空间?
-
用户空间有可能吗?如果没有,那么如何在内核空间中完成。
-
一般来说,这在抢占式多任务操作系统中是不可能的。可能会有一些奇怪的钩子让你这样做,但更重要的是要解决这个问题:你为什么要首先尝试这样做?
-
我很好奇,那么信号量锁定和释放是如何工作的呢?
-
@Yogesh:主要使用利用特定硬件支持的内联汇编语言。不是通过使整个函数原子化。你心里有什么目标吗?如果是这样,请告诉我们更多信息。
标签: c linux compiler-construction operating-system linux-kernel