OSとハードウェア
割り込みと例外、特権モードとシステムコール、ページテーブルとページフォルト、コンテキストスイッチ、仮想化など、OSとハードウェアの境界を3択問題で学べます。
—あなたの正答率
0 / 50解いた問題
OSとハードウェアの要点
オペレーティングシステム(OS)は、CPUやメモリ、入出力装置といったハードウェアを多くのプログラムで安全に分け合うためのソフトウェアです。そのためにCPUは、OSだけが使える特権モード、割り込みと例外のしくみ、仮想記憶のためのページテーブルの参照回路などを備えています。
アプリケーションはシステムコールでOSに処理を頼み、OSはタイマ割り込みでプログラムを切り替え(コンテキストスイッチ)、ページフォルトを受けて必要なページをメモリに用意します。デバイスドライバやメモリマップドI/O、ハイパーバイザによる仮想化まで、ハードウェアとソフトウェアが協力して動くしくみを学びます。
OSとハードウェアの問題一覧(50問)
- CPUに特権モード(カーネルモード)とユーザモードを設ける主な目的はどれか。
- アプリケーションがファイルの読み書きなどをOSに依頼するしくみを何と呼ぶか。
- 上のRISC-Vのコードの最後のecall命令が実行されたときに起こることとして正しいものはどれか。
- 割り込みと例外の違いとして一般的な説明はどれか。
- 次のうち、命令の実行とは無関係に、いつ起こるか決まっていない非同期のものはどれか。
- CPUが割り込みを受け付けたときの一般的な処理の流れとして正しいものはどれか。
- 割り込みベクタテーブルの役割として正しいものはどれか。
- 重要な処理の途中で一時的に割り込みを禁止(マスク)するときの注意点として正しいものはどれか。
- 割り込みハンドラの処理を、すぐに行う短い部分と、あとで通常の文脈で行う残りの部分に分ける理由として正しいものはどれか。
- ページテーブルの役割として正しいものはどれか。
- ページフォルトが起こる場合として正しいものはどれか。
- 追い出されてディスクにあるページにアクセスしてページフォルトが起きたとき、OSが行う処理の流れとして正しいものはどれか。
- ページテーブルを1段ではなく多段(階層型)にする主な理由はどれか。
- 仮想アドレスが32ビット、ページサイズが4 KB、ページテーブルの1項目が4バイトのとき、1段のページテーブルの大きさはいくらか。
- 仮想アドレスのうち48ビットを使い、ページサイズ4 KB、各段の表が512項目(9ビット)の多段ページテーブルでは、何段の表をたどる必要があるか。
- ページテーブルの各項目にふつう含まれる情報の組み合わせとして正しいものはどれか。
- プロセスを複製するときにコピーオンライトを使う利点として正しいものはどれか。
- デマンドページングの説明として正しいものはどれか。
- ページ置き換えのクロック方式(セカンドチャンス方式)で、各ページの参照ビットを使う目的はどれか。
- ページ置き換えでFIFO方式を使うと、物理メモリのページ数を増やしたのにページフォルトが増える場合がある。この現象を何と呼ぶか。
- 物理メモリが足りず、ページの追い出しと読み込みばかりが続いて処理がほとんど進まなくなる状態を何と呼ぶか。
- メモリのアクセス時間が100 ns、ページフォルトの処理に8 msかかるとき、100万回に1回ページフォルトが起こると、平均のアクセス時間はおよそいくらになるか。
- コンテキストスイッチで、切り替える前のプロセスについて保存しておく必要があるものはどれか。
- プロセスのコンテキストスイッチが、レジスタの保存と復元にかかる時間よりも、実際には大きな性能の低下を招くことがある主な理由はどれか。
- TLBの各項目にASID(アドレス空間識別子)を付ける利点として正しいものはどれか。
- OSが、自分からCPUを手放さないプログラムからでも一定時間ごとにCPUを取り戻して、ほかのプロセスに切り替えられるのは、主にどのしくみによるか。
- 上のように装置の状態レジスタをメモリマップドI/Oで読むとき、volatileを付け、その領域をキャッシュしない設定にする理由として正しいものはどれか。
- 装置の状態を、割り込みを使わずにCPUが繰り返し調べる方式(ポーリング)が有利になる場合はどれか。
- キャッシュの一貫性をハードウェアが保たない(非コヒーレントな)システムで、装置がDMAで主記憶に書き込んだデータをCPUが読む前に、ソフトウェアが行う必要のある処理はどれか。
- IOMMUの主な役割として正しいものはどれか。
- デバイスドライバの役割として正しいものはどれか。
- 一般的なOSで、アプリケーションが装置のレジスタを直接読み書きできないようにしている主な理由はどれか。
- 1台のコンピュータの上で、複数のOSをそれぞれ独立した仮想マシンとして同時に動かすためのソフトウェアを何と呼ぶか。
- ハイパーバイザの型の説明として正しいものはどれか。
- 入れ子ページング(2段のアドレス変換)を使った仮想化で、ハードウェアが行うアドレス変換の説明として正しいものはどれか。
- ゲストもホストも4段のページテーブルを使う入れ子ページングで、TLBミスが起きたとき、最悪で何回のメモリアクセスが必要になるか。
- 仮想マシンのOSが特権の必要な命令を実行したとき、ハイパーバイザに処理が移り、ハイパーバイザがその命令の効果を代わりに再現する方式を何と呼ぶか。
- 準仮想化(パラバーチャライゼーション)の説明として正しいものはどれか。
- コンテナと仮想マシンの違いとして正しいものはどれか。
- 多くのOSで、カーネルの領域を各プロセスのアドレス空間の一部(例えば上位の範囲)に割り当てておき、ページテーブルの保護ビットでユーザモードからのアクセスを禁止している。この配置の主な利点はどれか。
- ページサイズが4 KBのとき、仮想アドレスのうちページ内の位置(オフセット)を表すのは何ビットか。
- ページサイズが4 KBのとき、32ビットの仮想アドレス0x00403ABCのページ番号とページ内のオフセットの組み合わせとして正しいものはどれか。
- RISC-Vの特権アーキテクチャで定められている主な動作モードの組み合わせとして正しいものはどれか。
- 割り込みや例外の処理を終えて元のプログラムに戻るとき、通常の関数の戻り命令ではなく、専用の復帰命令(RISC-Vのsret・mretなど)を使う理由はどれか。
- リアルタイム性が求められるシステムで、割り込みが発生してからハンドラが動き出すまでの時間(割り込み遅延)を大きくしてしまう要因として最も適切なものはどれか。
- NMI(マスク不可能割り込み)の説明として正しいものはどれか。
- 複数のコアをもつシステムで、OSがあるページのページテーブルの項目を書き換えて対応を取り消したとき、必要になる処理として正しいものはどれか。
- プログラムが、OSが割り当てていないアドレスにアクセスしたときに一般的に起こることはどれか。
- ファイルをメモリに対応づける(mmapのような)しくみで、ファイルの内容を読むときに起こることの説明として正しいものはどれか。
- 小さなデータを1バイトずつ書き出すときに、毎回システムコールを呼ぶより、ユーザ空間のバッファにためてからまとめて書き出す方が速くなる主な理由はどれか。