0

OS コンテキスト スイッチに関する次の質問に答えるように求められましたが、この質問はかなりトリッキーで、教科書には答えが見つかりません。

  1. 特定の時点でシステム内に存在する PCB の数は?
  2. Context Switch が発生する可能性のある状況を 2 つ挙げてください。(プロセスの中断と終了だと思いますが、よくわかりません)
  3. ハードウェアのサポートによって、切り替えにかかる時間が異なります。2 つの異なるアプローチとは何ですか?
  4. コンテキスト スイッチの管理には、OS のどの部分が関係していますか?
4

3 に答える 3

2
  1. システムには、特定の時点で任意の数の PCB が存在する可能性があります。各 PCB はプロセスにリンクされています。
  2. プリエンプティブ カーネルでのタイマー割り込み、または協調カーネルでのプロセッサの制御を放棄するプロセス。そしてもちろん、プロセスの終了と I/O 操作でのブロック。
  3. ここでの答えはわかりませんが、マルコの答えを見てください
  4. カーネルのスケジューラの 1 つ。

ここに画像の説明を入力

于 2013-06-21T06:05:11.030 に答える
1

3: 可能なハードウェア最適化の整数

  • 小さなレジスタ セット (したがって、コンテキスト スイッチでの保存と復元が少なくなります)
  • 浮動小数点/ベクトル プロセッサ レジスタ セットの「ダーティ」フラグ - スイッチが入れられてから何も起こらなかった場合、カーネルがコンテキストの保存を回避できるようにします。通常、FP/VP コンテキストは非常に大きく、非常に多くのスレッドがそれらを使用することはありません。一部の RTOS は、スレッドが FP/VP をまったく使用しないことをカーネルに伝える API を提供し、さらに多くのコンテキストの復元と一部の保存を排除します。特に、ISR を処理するスレッドが別のスレッドをプリエンプトし、すぐに完了し、カーネルがすぐに再スケジュールする場合元のスレッド。
  • シャドー レジスタ バンク: オンボードのシングル サイクル SRAM を備えた小型の組み込み CPU で見られます。CPU レジスタはメモリでバックアップされます。その結果、バンクの切り替えはレジスタのベースアドレスの切り替えにすぎません。これは通常、いくつかの命令で達成され、非常に安価です。通常、これらのシステムではコンテキストの数が大幅に制限されています。
  • シャドー割り込みレジスタ: ISR で使用するシャドー レジスタ バンク。一例として、すべての ARM CPU には、高速割り込みハンドラー用に約 6 または 7 レジスタのシャドウ バンクがあり、通常の割り込みハンドラー用にはシャドウ バンクがわずかに少なくなります。厳密にはコンテキスト スイッチングのパフォーマンスが向上するわけではありませんが、これは ISR の背後でコンテキスト スイッチングのコストを削減するのに役立ちます。
  • 仮想的にマップされたキャッシュではなく、物理的にマップされたキャッシュ。MMU が変更された場合、仮想的にマップされたキャッシュをコンテキスト スイッチでフラッシュする必要があります。これは、メモリ保護を備えたマルチプロセス環境で行われます。ただし、物理的にマップされたキャッシュは、仮想物理アドレス変換がロードおよびストア操作のクリティカル パス アクティビティであり、パフォーマンスを向上させるためにキャッシュに多くのゲートが費やされることを意味します。したがって、組み込みシステム用に設計された一部の CPU では、仮想マップ キャッシュが設計上の選択肢でした。
于 2013-06-21T08:42:08.260 に答える