12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

プロセス 間 同 期The following operation commands (flags) can be used:IPC_NOWAITSEM_UNDO配郤 列 内 のどのような 操 作 でも 設 定 することが 可 能 です。もしIPC_NOWAITが 設 定 されているどのような 操 作 もうまく 実 行 できない 場 合 、セマフォの 値 を 少 しも 変 更 することなくシステムコールは 失敗 して 戻 ります。セマフォの 現 在 の 値 よりもデクリメントしようとする 時 、そうではなくセマフォをゼロと 等 しくするためにテストをする時 にシステムコールは 失 敗 します。プロセスが 終 了 する 時 に 自 動 的 にプロセスのセマフォの 変 更 を 元 に戻 すことをシステムに 指 示 し、これはプロセスがデッドロック 問 題 を回 避遪 することを 可 能 にします。この 機 能 を 実 装 するため、システム 内のプロセス 毎 のエントリを 含 むテーブルをシステムは 維 持 します。 各エントリはプロセスに 使 用 される 各 セマフォのためのアンドゥ 構 造造体 の 集 合 を 指 し 示 します。システムは 最 終 的 な 変 更 を 記 録 します。条 件 同 期 5postwaitシステムコール5以 下 のセクションでは、 協 同 プロセスを 操 作 するために 使 用 することが 可 能 なpostwait(2),server_block/server_wake(2)の 各 システムコールを 説 明 します。postwait(2)ファンクションは 協 同 グループのスレッド 間 で 使 用 する 高 速 で 効 果 的 なスリープ/ウェイクアップ/タイマーのメカニズムです。スレッドは 同 じプロセスのメンバーである 必 要 はありません。概 要#include #include #include int pw_getukid(ukid_t *ukid);int pw_wait(struct timespec *t, struct resched_var *r);int pw_post(ukid_t ukid, struct resched_var *r);int pw_postv(int count, ukid_t targets[], int errors[], structresched_var *r );int pw_getvmax(void);gcc [options] file -lccur_rt ...スリープ 状 態 にするため、スレッドはpw_wait()を 呼 び 出 します。スレッドは 次 の 時 に 起 き 上 がります:• タイマーが 終 了 する• スレッドが、pw_wait 中 スレッドのukid によるpw_post()またはpw_postv()の 呼 び 出 しで 他のスレッドよりポストされる• 呼 び 出 しが 割 り 込 まれる5-37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!