OSとハードウェア

コンテキストスイッチで、切り替える前のプロセスについて保存しておく必要があるものはどれか。

  1. Aそのプロセスが使っているディスクのファイルの中身
  2. Bレジスタの値やプログラムカウンタなど、CPUの実行の状態
  3. Cそのプロセスの物理メモリの全内容
答えと解説を見る

正解:B. レジスタの値やプログラムカウンタなど、CPUの実行の状態

コンテキストスイッチでは、あとで同じ状態から再開できるように、汎用レジスタ、プログラムカウンタ、スタックポインタ、動作モードなどのCPUの状態を保存し、次に動かすプロセスの状態を読み込みます。プロセスを切り替える場合は、ページテーブルの場所を示すレジスタも切り替えます。メモリやファイルの中身はそのまま残っているので、切り替えのたびに保存する必要はありません。

  • A. ファイルの中身はディスクにそのまま残っています。
  • B. 正しい。再開に必要なCPUの状態を保存します。
  • C. メモリの内容はそのまま残り、切り替えのたびには保存しません。
この分野を解く 分野ページへ

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

  1. プロセスのコンテキストスイッチが、レジスタの保存と復元にかかる時間よりも、実際には大きな性能の低下を招くことがある主な理由はどれか。
  2. TLBの各項目にASID(アドレス空間識別子)を付ける利点として正しいものはどれか。
  3. OSが、自分からCPUを手放さないプログラムからでも一定時間ごとにCPUを取り戻して、ほかのプロセスに切り替えられるのは、主にどのしくみによるか。
  4. 上のように装置の状態レジスタをメモリマップドI/Oで読むとき、volatileを付け、その領域をキャッシュしない設定にする理由として正しいものはどれか。
  5. 装置の状態を、割り込みを使わずにCPUが繰り返し調べる方式(ポーリング)が有利になる場合はどれか。