<分区>
我正在尝试弄清楚如何在 Linux 0.01 中实现一组提供信号量(无忙等待)模块的系统调用。我希望这些系统调用允许进程请求新的信号量并将其用于进程同步。
我想用 C++ 编写这些程序,但我无法让它们正常工作。谁有简单的解决方案?
- (系统调用#110)int sema_request(int value):如果成功,该函数返回一个新的信号量,否则返回-1。新的信号量被初始化为“值”。您的实现应在整个操作系统中支持至少 10 种不同的信号量。
- (系统调用#111) int sema_wait(int s):这个函数实现了对信号量s的“等待”操作。如果成功则返回 0,否则返回 -1。
- (系统调用#112)int sema_signal(int s):该函数对信号量 s 执行“信号”操作。如果成功则返回 0,否则返回 -1。