Proc dosya sistemi Linux'ta ne sıklıkla güncellenir?


33

procDosya sistemi Linux'ta ne sıklıkla güncellenir? 20 milisaniye mi (zaman kuantum)?


1
+1. Bu, öğrencilere sormak için harika bir ev ödevi sorusudur. Teşekkürler.
Jonathan Ben-Avraham

5
@ JonathanBen-Avraham Topluluğun bir "harika ev ödevi" etiketi oluşturmanıza izin verip vermeyeceğini meta üzerinden sormakta özgürsünüz ... 8-)
Hauke ​​Laging

Yanıtlar:


46

Proc dosya sisteminden okuduğunuz bilgiler hiçbir ortamda (RAM'de bile) depolanmaz, bu nedenle güncellenecek bir şey yoktur.

Proc dosya sisteminin amacı userspace programları elde etmek veya basit ve tanıdık dosya sistemi sözcüklerle kümesi çekirdek verileri (izin vermektir open, close, read, write, lseek), okuma veya yazma veriler herhangi medyada bulunur olmamasına rağmen. Bu tasarım kararı, formatı önceden belirlenemeyen ve ASN1 kodlu OID'ler gibi iyi sonuç verebilecek OID'ler gibi bir şeyi uygulamaktan daha önceden belirlenemeyen verileri almak ve ayarlamak için daha iyi kabul edildi (örneğin, insan tarafından okunabilir ve kolayca yazılabilir).

Proc dosya sisteminden okurken gördüğünüz veriler, bir dosyanın başlangıcından bir okuma yaptığınızda anında oluşturulur. Başka bir deyişle, okuma yapmak verilerin okuduğunuz dosyaya özgü bir çekirdek geri çağırma işlevi tarafından üretilmesine neden olur. lseekDosyanın başlangıcında bir işlem yapmak ve tekrar okumak, tekrar veri üreten geri aramaya başka bir çağrı yapılmasına neden olur. Benzer şekilde, proc dosya sisteminde yazılabilir bir dosyaya yazdığınızda, girişi ayrıştıran ve çekirdek değişkenlerini ayarlayan bir geri çağırma işlevi çağrılır. Ham formundaki giriş verileri saklanmaz.

Yukarıdakiler, Hauke ​​Laging'in bu kadar kısaca ifade ettiği şeyi söylemenin biraz daha ayrıntılı bir yoludur. Cevabını kabul etmeni öneririm.


Bu cevabın doğru olduğuna dair kanıtlara ihtiyacınız varsa, inotify'ı bir "dosya" ya da / proc (veya / sys) dizininde çalıştırmayı deneyin ... çok kötü bir şey y göründüğünde x çalıştırmak için basit bir inotify işlemi
technosaurus

24

Her erişimde güncellenir. O anda çekirdeğin durumunu görüyorsunuz. Bu nedenle "dosyalar" için gösterilen boyut gerçek boyutta değil. Gerçek boyut değişebilir ve dosyaya eriştiğiniz anda belirlenir.

Söyleyebilirsiniz, günlerce güncellenmemiş olabilir. Eğer bakmazsan. :-)


10
+1. "Bir orman bir ormana düşerse ve etrafta kimse duymuyorsa, ses çıkarır mı?" Demeye benzer, "Proc dosya sistemi varsa ve kimse okumazsa, var mı? ?".
Jonathan Ben-Avraham,

@ JonathanBen-Avraham Her FS hakkında söyleyebilirsiniz, değil mi? :-) Fakat proc'a bir tahmin edebileceğinden çok daha fazla erişim olduğunu unutmayın. ... fstab, yeniden başlatma bunu dışında açıklama ve tüm cehennem sonları gevşek
Hauke Laging

Demek istediğim, medya destekli bir dosya sistemindeki verilerin, belirli bir anda hiç kimsenin okumadığı durumlarda bile mevcut olmasıydı. Proc ve sys gibi okuma anında ortaya çıkmaz. Haklısın, proc'un çok fazla okuyucusu var. Ancak, sys, en azından daha küçük sistemlerde fstab üzerinden yorum yazabileceğiniz ve hala Tamam'ı çalıştırabileceğiniz benzer bir dosya sistemidir. Şerefe.
Jonathan Ben-Avraham,

4
Öyleyse kedi öldü mü değil mi? Bir göz at ve gör. Öldü Jim. Zavallı kedi.
0x7c0

@HaukeLaging /proc/fstab dosyamda hiç yok ☹
Hi-Angel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.