OSとハードウェア
ファイルをメモリに対応づける(mmapのような)しくみで、ファイルの内容を読むときに起こることの説明として正しいものはどれか。
- A初めてのアクセスでページフォルトが起き、その部分が読み込まれる
- B対応づけた時点でファイル全体が物理メモリに読み込まれ、それ以降ディスクは使われない
- Cアクセスのたびにシステムコールが呼ばれ、1バイトずつファイルから読み出される
答えと解説を見る
正解:A. 初めてのアクセスでページフォルトが起き、その部分が読み込まれる
ファイルをアドレス空間に対応づけると、OSはページテーブルにその範囲を登録するだけで、すぐには読み込みません。プログラムが初めてアクセスするとページフォルトが起き、OSがファイルの該当部分を物理ページに読み込み、以後は通常のメモリとして読み書きできます。デマンドページングと同じしくみで、読み出しのたびにシステムコールを呼ぶ必要がなく、データの余分なコピーも減らせます。全体を最初に読み込むわけではありません。
- A. 正しい。初めてのアクセスでページフォルトが起き、必要な部分だけが読み込まれます。
- B. 全体を最初に読み込むわけではありません。
- C. 一度読み込んだあとは通常のメモリとしてアクセスでき、毎回のシステムコールは不要です。