如何初始化semaphore.h?

时间:2017-03-08 01:32:17

标签: linux linux-kernel kernel multiprocessing

我有一个问题。我试图在内核模块中使用信号量,并希望初始化可用缓冲区大小的数量,以及信号量中的完整和空变量。

虽然我知道如何使用下面的代码在用户空间中实现它,但是我在内核模块中实现相同的功能时遇到了麻烦。

在内核模块中实现信号量中的full和empty时,是否有不同的方法?

1 个答案:

答案 0 :(得分:0)

你没有。 <semaphore.h>是用户空间API(POSIX信号量),在内核中不可用。

内核中有许多类似的锁定API - 最值得注意的是struct semaphore,但也要注意rwlock以及RCU之类的锁定替代方法。