RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>RedHawk</strong> <strong>Linux</strong> User’s <strong>Guide</strong>ロックしているプロセスは、テスト&セット 操 作 をプロセスが 現 在 保 有 しているロックがクリアされテスト&セット 操 作 が 成 功 するまでリトライし 続 けます。 対 照 的 にセマフォのようなスリーピーウェイト・メカニズムは、もしそれが 現 在 ロックされた 状 態 でロックを 取 得 しようとするのであればプロセスをスリープ 状 態 にします。ビジーウェイト・メカニズムは、ロックを 取 得 する 試 みの 殆 どが 成 功 する 時 に 非 常 に 効 果 的 です。これは 単 純 なテスト&セット 操 作 がビジーウェイト・ロックを 取 得 するために 必 要 とされる 全 てであるからです。ビジーウェイト・メカニズムは、ロックが 保 持 される 時 間 が 短 い 時 にリソースを 保 護 するために 適遚 しています。それには 次 の2つの 理 由 があります:1) ロックの 保 持 時 間 が 短い 時 、ロック 中 のプロセスがアンロック 状 態 でロックを 取 得 するので、ロック・メカニズムのオーバーヘッドも 最 小 限 となる 可 能 性 があり、2) ロックの 保 持 時 間 が 短 い 時 、ロックを 取 得 する 遅逼れも 短 くなることが 予 想 されます。ビジーウェイト・メカニズムはロックからアンロック 状 態 となるの 待 っている 間 にCPUリソースを 消 費 しようとするため、ロック 取 得 の 遅逼 れが 短 時 間 で 保 たれるビジーウェイト 相 互 排 他 を 使 用 する 場 合 は 重 要 となります。 一 般 的 なルールとして、もしロックを 保 持 する 時 間 が2つのコンテキスト・スイッチの 実 行 に 要 する 時 間 よりも 全 て 少 ない 場 合 、ビジーウェイト・メカニズムは 適遚 切 です。ビジーウェイト 相 互 排 他 を 実 行 するためのツールは、「ビジーウェイト 相 互 排 他 」セクションで 説 明 しています。クリティカル・セクションは 大 抵 は 非 常 に 短 時 間 です。 同 期 のコストを 比 較 的 小 さく 保 つため、クリティカル・セクションの 入 口 / 出 口 で 実 行 される 同 期 処 理 をカーネルへ 入 れることは 出 来 ません。クリティカル・セクションの 入 場 および 退 場 に 関 連連 する 実 行 オーバーヘッドがクリティカル・セクション 自 体 の 長 さよりも 長 くなることは 好 ましくありません。効 果 的 な 相 互 排 他 ツールとしてスピンロックを 使 用 するため、あるプロセスが 他 のプロセスがロックをリリースするのを 待 つためにスピンする 予 想 時 間 は、 短 時 間 だけでなく 予 測 可 能 である 必要 があります。ロック 中 プロセスのページ・フォルト、シグナル、プリエンプションのような 予測 不 可 能 なイベントは、クリティカル・セクション 内 の 本 当 の 経 過遃 時 間 が 期 待 される 実 行 時 間 を著 しく 超 える 原 因 となります。せいぜい、これらのクリティカル・セクション 内 部邪 の 予 測 不 可 能な 遅逼 れは、 他 のCPUの 遅逼 れが 予 想 されるよりも 長 くなる 原 因 となる 可 能 性 があり、 最 悪 の 場 合 、それらはデッドロックを 引 き 起 こす 可 能 性 があります。メモリ 内 のページ・ロックはクリティカル・セクションへ 入 る 時 間 に 影 響 を 与 えないためにプログラムの 初 期 化 中 に 完 了 させることが 可能 です。 再 スケジューリング 制 御 のメカニズムは、 低 オーバーヘッドのシグナル 制 御 とプロセス・プリエンプションの 手 法 を 提 供 します。 再 スケジューリング 制 御 のためのツールは「 再 スケジューリング 制 御 」で 説 明 されています。セマフォは 相 互 排 他 を 提 供 するためのもう1つのメカニズムです。 既 にロックされているセマフォをロックしようとするプロセスはブロックされるもしくはスリープ 状 態 となるため、セマフォはスリーピー・ウェイト 型 の 相 互 排 他 となります。POSIXのカウンティング・セマフォは 移 植 可 能な 共 有 リソースへのアクセス 制 御 の 手 段 を 提 供 します。カウンティング・セマフォは 整 数 値 とそれに 対 して 定 義 される 操 作 の 制 限 セットを 持 つオブジェクトです。カウンティング・セマフォは、ロックとアンロック 操 作 で 最 速 性 能 を 得 るために 実 装 される 単 純 なインターフェースを 提 供 します。POSIXのカウンティング・セマフォは、「POSIXカウンティング・セマフォ」セクションの中 で 説 明 されています。System Vのセマフォは、 多 くの 追 加 機 能 ( 例 えば、セマフォ 上 でいくつくらい 待 ちがあるのかを 調 べる 機 能 、もしくは 一 連連 のセマフォを 操 作 する 機 能 )を 許 可 する 複 雑 なデータ 型 です。System Vのセマフォは「System Vセマフォ」セクションで 説 明 されています。ミューテックスはプログラム 内 の 複 数 のスレッドが 同 時 ではありませんが 同 じリソースを 共 有 することを 可 能 にします。ミューテックスを 作 成 し、リソースを 必 要 とするどのスレッドもリソースを 使 用 している 間 は 他 のスレッドからミューテックスをロックする 必 要 があり、もう 必 要 とされない 時 にそれをアンロックします。POSIXのミューテックスは、 特 にリアルタイム・アプリケーションにとって 便 利 でミューテックス 単 位 に 個 々に 設 定 可 能 な2つの 機 能 (ロウバスト・ミューテックスと 優 先 度 継 承 ミューテックス)を 持 っています。ロウバスト 性 ( 堅 牢 性 )はもしアプリケーションのスレッドの1つがミューテックス 保 持 中 に 死 んだ 場 合 、 回 復 する 機 会 をアプリケーションに 与 えます。5-2