過去の試験紙を検討していますが、私たちの大学で確認できるように答えを提供していません。私が理解したものが正しいかどうかを教えてください、そうでない場合は訂正してください。
質問:Linuxシステムで実行されているプログラムPは、テキストを含むディスクのファイル名とパスを引数として使用してファイルを開き、ファイルの最初の文字を読み取ります。プログラムがすでに実行中であり、ファイルが存在すると仮定し、発生する可能性があるディスク読み取り要求をリストします。
•各ディスクアクセスの目的。
• ディスク読み取り要求が常に発生しない理由。
試み:キャッシュヒットが発生する可能性があるため、ディスク読み取り要求は常に発生しないため、ディスク読み取り要求なしでキャッシュからファイルを読み取ることができます。これが発生しない場合、ディスクアクセスが発生します。 1つはファイル名を取得するために使用され、もう1つはファイルのパスを取得するために使用され、最後の1つはファイルから最初の文字を読み取るために使用されます。
ベストアンサー1
キャッシュヒットが発生する可能性があるため、ディスク読み取り要求は常に発生しないため、ディスク読み取り要求なしでキャッシュからファイルを読み取ることができます。
正確で完全です。
これが発生しない場合、ディスクアクセスが発生します。 1つはファイル名を取得するために使用され、もう1つはファイルパスを取得するために使用され、最後の1つはファイルから最初の文字を読み取るために使用されます。
これは完全ではなく部分的に不正確です。実際、次の項目にアクセスできます。
- ファイルシステムのルートディレクトリのインデックスノードです。
- 少なくとも1つのブロックには、ルートディレクトリのファイルのリストが含まれています。
- ファイルパスの各ディレクトリに対してこの操作を繰り返します。 (該当する場合、シンボリックリンクナビゲーションも追加されます。)
- ファイルのインデックスノードです。
- ファイルコンテンツの最初のブロックです。
コンテンツは複数のブロックに分散される可能性があるため、ファイルシステムに応じて、これらの各エントリには1つ以上のディスク読み取りを含めることができます。ファイルブロックにアクセスするには、ブロックリストを含むブロックにアクセスする必要があり、時には複数のレベルまで深くなることがあります。
これらのアクセスに加えて、プログラムコードの一部とスワップ領域のデータをRAMにロードするためのディスクアクセスがあります。プログラムが実行中であると仮定するかどうかは、質問の表現では明確ではありません。関連ビットはRAMに配置されます。。ディスクには既に存在していますが、サイレントインストールディレクトリにあるファイルなど、テストセットアップの意図ではないと確信している他の微妙な部分がある可能性があります。インストールする前にロードする必要があります。