proc
Linuxでは、ファイルシステムはどのくらいの頻度で更新されますか? 20ミリ秒(時間の量子)ですか?
答え1
procファイルシステムから読み取った情報は、どのメディアにも(RAMにもかかわらず)保存されないため、何も更新する必要はありません。
procファイルシステムの目的は、読み書きするデータがどのメディアにも存在しなくても、ユーザースペースプログラムが単純で使い慣れたファイルシステムの意味(、、、、、、open
)を使用してカーネルデータを取得または設定できるようにすることです。フォーマットを事前に指定できないデータを取得して設定する場合、この設計決定は、ASN1でエンコードされたOIDなどの実装よりも優れていると見なされます(たとえば、人間が読みやすくスクリプトを作成しやすい)。これもうまくいきます。close
read
write
lseek
proc ファイルシステムから読み取ったときに表示されるデータは、ファイルの先頭から読み取るとすぐに生成されます。つまり、読み取り操作を実行すると、読み取り中のファイルに関連するカーネルコールバック関数によってデータが生成されます。ファイルの先頭で作業lseek
して再読み込みすると、データを再生成するためにコールバックが再度呼び出されます。同様に、proc ファイルシステムから書き込み可能ファイルに書き込むときにコールバック関数が呼び出され、入力を解析し、カーネル変数を設定します。入力データは生形式では保存されません。
上記は、Hauke Lagingをもう少し詳しく説明したものです。彼の答えを受け入れることをお勧めします。
答え2
訪問するたびに更新されます。その瞬間、カーネルの状態を見ることができます。そのため、「ファイル」に表示されるサイズは実際のサイズではありません。実際のサイズは異なる場合があり、ファイルにアクセスするときに決定されます。
数日間更新されない可能性があります。見ないと。 :-)