ファイル記述子とプロセステーブルの関係は何ですか?

ファイル記述子とプロセステーブルの関係は何ですか?

私はオペレーティングシステムに興味があります。それで、オペレーティングシステムについて学ぶためにxv6の本を読んでいます。このトピックに関する私の最初の本です。理解できない一行を読みました。

内部的には、xv6カーネルはファイル記述子を各プロセステーブルのインデックスとして使用するため、各プロセスは0から始まるファイル記述子の専用スペースを持ちます。

ファイル記述子は、書き込みまたは読み取り可能なデータストリームを表すと思います。プロセステーブルとはどのような関係がありますか?ファイル記述子テーブルは、開かれたファイルリソースを表すプロセスメモリの一部ではありませんか?

よろしくお願いします!

答え1

あなたの理解は正しいです。ファイル記述子テーブルは単一のプロセスメモリの一部です(もちろん、テーブルへのインデックスはプロセスで使用できますが、テーブル自体はカーネル構造なので、ユーザー空間プロセスから直接アクセスできません。テーブルですが、まだプロセスによって異なります)。

記事にはこうも記載されています。

[...] ファイル記述子をインデックスとして使用プロセスごとテーブル[...]

これは、「ファイル記述子をプロセス固有のテーブルのインデックスとして使用する」別の方法です。

関連情報