Index ソフト・ハード Linuxタスク | 同期 |
プロセスコンテキスト カーネルの割込み |
プロセスコンテキスト(ユーザコンテキスト)同士の排他処理(クリテカルセクション保護) ・セマフォ 複数のプロセスが同一資源操作時 読み書きセマフォ ある一つの資源に対して、複数のプロセスが同時に参照アクセスできる。 更新アクセスのみブロック・2.6で、カーネルコード実行中のプリエンプションが可能 CPUに依存する資源の排他が必要な場合は、明示的にプリエンプション禁止にする。カーネルの割込みコンテキストでのクリテカルセクション保護 ・セマフォは使えない スリープさせられない・シングルプロセッサでのクリティカルセクションのの保護 CPUへ直接、プロセッサへの割込み禁止の指示を出す。 禁止時間は短くする。 クリテカルセクションのコードを短く・マルチプロセッサ(HT及びデュアルコアCPU)でのクリティカルセクションの保護 他にもCPUがあるため、「CPUへ直接、プロセッサへの割込禁止の指示」は効果が無い。 スピンロック仕様 用意された変数に「1」を立てれば、クリテカルセクションへ入れる。(ロック獲得) ロック獲得失敗時、ビジーウェイト CPUの使用率をフルに取る。 ビジーウェイト中「NOP命令」が挿入 Pentium4 のHT技術対応 ビジーウェイトで、もう一つの論理CPUがストールする仕様 クリテカルセクションのコードを短く スピンロック獲得前に、ローカルプロセッサからの割込みを禁止 スピンロック獲得時にローカルプロセッサから割り込むと、 ビジーウェイトでデッドロック(ストール) |
All Rights Reserved. Copyright (C) ITCL |