Linuxでprocファイルシステムはどのくらいの頻度で更新されますか?


33

procLinuxでファイルシステムはどのくらいの頻度で更新されますか?20ミリ秒(タイムクォンタム)ですか?


1
+1。これは、生徒に尋ねるのに最適な宿題の質問です。ありがとう。
ジョナサンベンアブラハム

5
@ JonathanBen-Avrahamコミュニティで「素晴らしい宿題」タグを作成できるかどうか、メタでお気軽にお問い合わせください... 8
Hauke Laging

回答:


46

procファイルシステムから読み取った情報は、メディア(RAMを除く)には保存されないため、更新するものはありません。

procファイルシステムの目的は、ユーザ空間プログラムは、シンプルでおなじみのファイルシステムのセマンティクスを使用してカーネルデータを取得したり設定することができるようにすることです(openclosereadwritelseek読み取りまたは書き込みされたデータは、任意のメディア上に存在しないにもかかわらず、)。この設計上の決定は、ASN1でエンコードされたOIDなどの何かを実装するよりも前もってフォーマットを指定できなかったデータを取得および設定する方が適切であると考えられます。

procファイルシステムから読み込んだときに表示されるデータは、ファイルの先頭から読み込んだときにオンザフライで生成されます。つまり、読み取りを実行すると、読み取り中のファイルに固有のカーネルコールバック関数によってデータが生成されます。やってlseekファイルの初めにして、もう一度読みが再びデータを生成し、コールバックへの別の呼び出しが発生します。同様に、procファイルシステムの書き込み可能なファイルに書き込むと、入力を解析してカーネル変数を設定するコールバック関数が呼び出されます。そのままの形式の入力データは保存されません。

上記は、Hauke Lagingが非常に簡潔に述べていることを示す、もう少し冗長な方法です。彼の答えを受け入れることをお勧めします。


この答えが正しいことの証明が必要な場合は、/ proc(またはその問題については/ sys)の「ファイル」またはディレクトリでinotifyを実行してみてください...あまりにもひどいので、伝えるだけでudevが完全に不要になるyに何かが現れたときにxを実行する単純なinotifyプロセス
テクノサウルス

24

アクセスごとに更新されます。その瞬間のカーネルの状態が表示されます。そのため、「ファイル」に表示されるサイズが実際のサイズではありません。実際のサイズは変更される場合があり、ファイルにアクセスした瞬間に決定されます。

あなたは言うことができる、それは数日間更新されないかもしれません。あなたがそれを見ないなら。:-)


10
+1。「木が森に落ちて、誰も聞いていない場合、音がしますか?」、つまり「procファイルシステムがあり、誰もそれを読み取らない場合、それは存在しますか?」 ?」。
ジョナサンベンアブラハム

@ JonathanBen-AvrahamあなたはすべてのFSについてそう言うことができませんでしたか?:-)しかし、procへのアクセスは予想以上に多いことに注意してください。...再起動、fstabにそれをコメントアウトし、すべての地獄の休憩が緩ん
Hauke Laging

つまり、特定の瞬間に誰もデータを読み取らない場合でも、メディアでバックアップされたファイルシステムのデータが存在するということです。procやsysのように、読む瞬間には存在しません。procにはたくさんの読者がいます。ただし、sysは同様のファイルシステムであり、少なくとも小規模なシステムではfstabからコメントアウトでき、引き続きOKを実行できます。乾杯。
ジョナサンベンアブラハム

4
それで、猫は死んでいるかどうか?ご覧ください。それは死んだジムです。貧しい猫。
0x7c0

私はしている@HaukeLagingない/proc/私のfstabファイル☹に
ハイエンジェル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.