マルチプロセッサコンピュータ システムでは、ソフトウェア ロックアウトは、カーネルレベルのクリティカル セクションでCPUがアイドル待機時間に費やされることによりパフォーマンスが低下する問題です。ソフトウェア ロックアウトは、マルチプロセッサ システムにおけるスケーラビリティ低下の主な原因であり、プロセッサの最大有効数に制限を課します。この現象を軽減するには、カーネルのクリティカル セクションをできるだけ短く設計し、各データ構造をより小さなサブ構造に分解する必要があります。
カーネルレベルのクリティカルセクション
ほとんどのマルチプロセッサシステムでは、各プロセッサが自らスケジュールと制御を行うため、「スーパーバイザー」プロセッサは存在せず、[1]カーネルデータ構造はグローバルに共有されます。これらの共有データ構造にアクセスするコードセクションはクリティカルセクションです。この設計選択は、スケーリング、信頼性、モジュール性を向上させるために行われます。[1]このようなカーネルデータ構造の例としては、準備完了リストや通信チャネルなどがあります。
「競合」は、複数のプロセッサが同時に同じリソース(メモリ部分)にアクセスしようとすると発生します。重大な競合や不整合を防ぐために、特定のデータ構造(メモリ部分)にアクセスできるプロセッサ(CPU )は一度に1つだけであり、同時にアクセスしようとする他のCPUはロックアウトされ、アイドル状態で待機します。[1] [2]
このアイドル待機が必要な、便利な、または便利でない 3 つのケースを区別できます。アイドル待機は、低レベルのスケジューリング操作の準備完了リストにアクセスする場合に必要です。アイドル待機は、同期/ IPC操作のクリティカル セクションの場合に必要ではありませんが便利です。これらの操作は、コンテキスト スイッチ(アイドル待機を回避するために別のプロセスを実行する)よりも時間がかかりません。一方、デバイス管理のカーネル クリティカル セクションの場合、アイドル待機は便利ではありません。これはモノリシック カーネルにのみ存在します。マイクロカーネルは、上記のケースの最初の 2 つに該当します。
マルチプロセッサ システムでは、カーネル レベルのクリティカル セクションへのアクセスが原因で、ほとんどの競合がカーネルレベルの競合となり、それによって生じるアイドル待機期間がパフォーマンスの低下に大きな影響を与えます。このアイドル待機時間により、アイドル プロセッサの平均数が増加し、スケーラビリティと相対的な効率が低下します。
分析研究
プロセッサがカーネルレベルのクリティカルセクションに費やした平均時間間隔( L、ロック状態の時間)と、プロセッサがクリティカルセクション外のタスクに費やした平均時間間隔(E)をパラメータとして[1] 、 L / Eの比率はソフトウェアロックアウトを評価する上で重要です。
L/Eの一般的な値は0.01 ~ 0.1 の範囲です。[3]たとえば、L/E比が 0.05 のシステムでは、CPU が 15 個ある場合、平均して 1 個の CPU が常にアイドル状態になると予想されます。 [3] CPU が 21 個ある場合、2.8 個がアイドル状態になります。[4] CPU が 40 個ある場合、19 個がアイドル状態になります。CPU が 41 個ある場合、20 個がアイドル状態になります。[3]したがって、そのシステムに 40 個を超える CPU を追加しても無駄です。一般に、L/E値ごとに、有効な CPU の最大数のしきい値があります。
ソフトウェアロックアウトの緩和
ソフトウェア ロックアウトによるパフォーマンスの低下を適切なレベル ( L/Eが 0.05 ~ 0.1) に抑えるには、カーネルやオペレーティング システムをそれに応じて設計する必要があります。概念的には、最も有効な解決策は、各カーネル データ構造を、それぞれ処理時間が短い、より小さな独立したサブ構造に分解することです。これにより、複数の CPU が元のデータ構造にアクセスできるようになります。
階層的保護ドメインを持つ多くのユニプロセッサシステムでは、最大 50% の時間を「スーパーバイザ モード」操作の実行に費やしていると推定されています。このようなシステムを「スーパーバイザ状態」へのアクセス時にロックを設定することでマルチプロセッシングに適合させると、 L/E は簡単に 1 を超え、[3] CPU の数に関係なく、ユニプロセッサと同じスループットを持つシステムになります。
参照
- アムダールの法則
- スーパースカラーアーキテクチャにおける依存関係の問題
- 並行処理制御 § 並行処理制御メカニズム
- データベーストランザクションスケジュール § シリアル化可能
- シリアル化可能性
注記
- ^ abcd マドニック 1968、p.19
- ^ Saltzer, Jerome (1966 年 6 月). 多重化コンピュータ システムにおけるトラフィック制御(PDF) (PhD). MIT プロジェクト MAC MAC-TR-30.
- ^ abcd マドニック 1968、p.20
- ^ レイナー 76、p.62
参考文献
- マドニック、スチュアート・エリオット [1] (1968)マルチプロセッサソフトウェアロックアウト[2] 1968年第23回ACM全国会議論文集、pp. 19-24
- M. Dubois、F. Briggs並列非同期アルゴリズムの実行時効率IEEE Transactions on Computers、1991 年 11 月 (第 40 巻、第 11 号) pp. 1260–1266
- Randy J. Raynor、John M. Gwynn、Jr.マルチプロセッサ コンピュータ システムにおけるスーパーバイザ競合の最小化ACM SIGSIM シミュレーション ダイジェスト。第 7 巻、第 4 号 (1976 年 7 月)。pp. 61 – 69
さらに読む
- Rodgers, David P. (1985)マルチプロセッサ システム設計の改善ACM SIGARCH コンピュータ アーキテクチャ ニュース アーカイブ 第 13 巻、第 3 号 (1985 年 6 月) 目次 特集号: Proceedings of the 12th annual International Symposium on Computer Architecture (ISCA '85) ページ: 225 - 231 発行年: 1985 ISSN 0163-5964。International Symposium on Computer Architecture、Proceedings of the 12th annual international symposium on Computer Architecture、1985、ボストン、マサチューセッツ州、米国にも掲載されています。
- Jörg Cordsen、Wolfgang Schröder-Preikschat 「スケーラブルなカーネル アーキテクチャに向けて」、1992 年秋の Openforum 技術会議の議事録。pp. 15 ~ 33、オランダ、ユトレヒト、1992 年 11 月 23 ~ 27 日。
