0

何らかの条件が真になるまで待機してから戻るシステムコールを minix 内に実装する必要があります。しかし、私は単に次のようなことをしようとしていることに気づきました

while (var != desired_value)
{
    // wait
}

プロセスをブロックする一方で、minix で実行されている他のすべてのプロセスもブロックするため、機能しません。別の仮想端末に切り替えてログインすることさえできません。minix プロセスは互いに独立して実行されるはずだと思っていましたが、システム コールでプロセスがブロックされると、他のすべてのプロセスが同時に中断されるようです。これは正しいでしょうか?ありがとうございました

4

2 に答える 2

0

もちろん、Minix にはノンブロッキングの待機メカニズムがあります。

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *status)
pid_t waitpid(pid_t pid, int *status, int options)

waitシグナルが受信されるか、その子プロセスの 1 つが終了するまで、呼び出し元を遅延させます。

waitpid子プロセスのステータスを収集するときにブロックしてはならないプログラム、または特定の子プロセスを待機したいプログラムに代替インターフェースを提供します。

Minix は POSIX を提供しているためforkexec、 などを使用してプロセスを操作できます。

于 2013-05-08T08:17:02.837 に答える