OSとハードウェア

プロセスのコンテキストスイッチが、レジスタの保存と復元にかかる時間よりも、実際には大きな性能の低下を招くことがある主な理由はどれか。

  1. A切り替えのたびに、CPUのクロック周波数が下がるから
  2. B切り替えのたびに、プログラムをディスクから読み直すから
  3. C切り替え後、キャッシュやTLBのミスが増えるから
答えと解説を見る

正解:C. 切り替え後、キャッシュやTLBのミスが増えるから

レジスタの保存と復元そのものは短時間で済みますが、切り替えたあとのプロセスにとって、キャッシュやTLBの中身は前のプロセスのもので、必要なデータや変換結果を読み込み直すまでミスが続きます。ASIDのないCPUでは、アドレス空間を切り替えるときにTLBを空にする必要もあります。この間接的なコストが、直接の切り替え時間より大きくなることがあります。クロックが下がったり、プログラムをディスクから読み直したりはしません。

  • A. 切り替えでクロック周波数が下がるわけではありません。
  • B. プログラムはメモリにあり、読み直しません。
  • C. 正しい。キャッシュやTLBのミスが増える間接的なコストです。
この分野を解く 分野ページへ

OSとハードウェアのほかの問題

  1. TLBの各項目にASID(アドレス空間識別子)を付ける利点として正しいものはどれか。
  2. OSが、自分からCPUを手放さないプログラムからでも一定時間ごとにCPUを取り戻して、ほかのプロセスに切り替えられるのは、主にどのしくみによるか。
  3. 上のように装置の状態レジスタをメモリマップドI/Oで読むとき、volatileを付け、その領域をキャッシュしない設定にする理由として正しいものはどれか。
  4. 装置の状態を、割り込みを使わずにCPUが繰り返し調べる方式(ポーリング)が有利になる場合はどれか。
  5. キャッシュの一貫性をハードウェアが保たない(非コヒーレントな)システムで、装置がDMAで主記憶に書き込んだデータをCPUが読む前に、ソフトウェアが行う必要のある処理はどれか。