5.2. Threads
リアルタイムシステムでは、1 つのプロセス内に複数のスレッドが存在し、仮想アドレス空間とシステムリソースを共有することができる。スレッドとは、プログラムカウンター、レジスターコンテキスト、スタックポインターを含む、スケジューリング可能なエンティティーである。
リアルタイムにおける並列処理を作成するための潜在的なメカニズムは次のとおりです。
-
fork()およびexec()関数呼び出しを使用して、新しいプロセスを作成します。fork()呼び出しは、呼び出されたプロセスの完全な複製を作成し、一意のプロセス識別子を持ちます。 -
POSIX スレッド (
pthreads)API を使用して、すでに実行中のプロセス内に新しいスレッドを作成します。
リアルタイムスレッドをフォークする前に、コンポーネントの相互作用レベルを評価する必要があります。新しいアドレス空間を作成し、それを新しいプロセスとして実行することは、コンポーネントが互いに独立している場合、または相互作用が少ない場合に役立ちます。コンポーネントがデータを共有したり頻繁に通信したりする必要がある場合は、1 つのアドレス空間内でスレッドを実行する方が効率的です。
リアルタイムでは、fork() システムコールは、成功すると値 0 を返します。エラーの場合は、エラー番号を返します。
詳細は、お使いのシステムの fork(2) および exec(2) の man ページを参照してください。