私はオペレーティングシステムに興味があります。それで、オペレーティングシステムについて学ぶためにxv6の本を読んでいます。このトピックに関する私の最初の本です。理解できない一行を読みました。
内部的には、xv6カーネルはファイル記述子を各プロセステーブルのインデックスとして使用するため、各プロセスは0から始まるファイル記述子の専用スペースを持ちます。
ファイル記述子は、書き込みまたは読み取り可能なデータストリームを表すと思います。プロセステーブルとはどのような関係がありますか?ファイル記述子テーブルは、開かれたファイルリソースを表すプロセスメモリの一部ではありませんか?
よろしくお願いします!
答え1
あなたの理解は正しいです。ファイル記述子テーブルは単一のプロセスメモリの一部です(もちろん、テーブルへのインデックスはプロセスで使用できますが、テーブル自体はカーネル構造なので、ユーザー空間プロセスから直接アクセスできません。テーブルですが、まだプロセスによって異なります)。
記事にはこうも記載されています。
[...] ファイル記述子をインデックスとして使用プロセスごとテーブル[...]
これは、「ファイル記述子をプロセス固有のテーブルのインデックスとして使用する」別の方法です。