Linux에서 proc 파일 시스템은 얼마나 자주 업데이트됩니까?


33

procLinux 에서 파일 시스템 이 얼마나 자주 업데이트됩니까? 20 밀리 초 (시간 양자)입니까?


1
+1. 이것은 학생들에게 물어 보는 훌륭한 숙제입니다. 감사.
— 조나단 벤-아브라함

5
@ JonathanBen-Avraham 커뮤니티에서 "훌륭한 숙제"태그를 생성 할 수 있는지 메타에 대해 문의하십시오. 8-)
— Hauke ​​Laging

답변:


46

proc 파일 시스템에서 읽은 정보는 어떤 매체 (RAM에도 저장되지 않음)에 저장되지 않으므로 업데이트 할 내용이 없습니다.

proc 파일 시스템의 목적은 사용자 공간 프로그램을 얻기 위해 또는 간단하고 친숙한 파일 시스템 의미를 사용하여 설정 한 커널 데이터 (수 있도록하는 것입니다 open, close, read, write, lseek), 읽거나 기록 된 데이터가 미디어에 상주하지 않더라도. 이 디자인 결정은 ASN1로 인코딩 된 OID와 같은 것을 구현하는 것보다 미리 포맷을 지정할 수없는 데이터를 가져오고 설정하는 것이 더 좋으며 (예를 들어 사람이 읽을 수 있고 쉽게 스크립팅 할 수있는) 것으로 간주되었습니다.

proc 파일 시스템에서 읽을 때 표시되는 데이터는 파일의 시작 부분에서 읽을 때 즉시 생성됩니다. 즉, 읽기를 수행하면 읽고있는 파일에 특정한 커널 콜백 함수에 의해 데이터가 생성됩니다. lseek파일의 시작 부분에 대한 작업 을 수행하고 다시 읽으면 데이터를 다시 생성하는 콜백에 대한 다른 호출이 발생합니다. 마찬가지로 proc 파일 시스템에서 쓰기 가능한 파일에 쓸 때 입력을 구문 분석하고 커널 변수를 설정하는 콜백 함수가 호출됩니다. 원시 형식의 입력 데이터는 저장되지 않습니다.

위의 내용은 Hauke ​​Laging이 간결하게 말하는 것을 말하는 좀 더 장황한 방법입니다. 그의 대답을 받아들이는 것이 좋습니다.


이 답변이 사실이라는 증거가 필요하면 / proc (또는 그 문제에 대해서는 / sys)의 "파일"또는 디렉토리에서 inotify를 실행하십시오 ... 너무 나쁘다. y에 무언가가 나타날 때 x를 실행하는 간단한 inotify 프로세스
— technosaurus

24

액세스 할 때마다 업데이트됩니다. 그 순간 커널의 상태를 볼 수 있습니다. 이것이 "파일"에 표시된 크기가 실제 크기가 아닌 이유입니다. 실제 크기는 변경 될 수 있으며 파일에 액세스하는 순간에 따라 결정됩니다.

며칠 동안 업데이트되지 않을 수 있습니다. 당신이 그것을 보지 않으면. :-)


10
+1. "나무가 숲에 떨어지면 아무도 들리지 않으면 소리가 나지 않습니까?", 즉 "proc 파일 시스템이 있고 아무도 읽지 않으면 존재합니까?" ? ".
— 조나단 벤-아브라함

@ JonathanBen-Avraham 모든 FS에 대해 말할 수는 없습니까? :-) 그러나 생각보다 proc에 대한 액세스가 훨씬 많다는 것을 명심하십시오. ... fstab에, 재부팅을 주석, 모든 지옥 나누기 느슨한
— Hauke Laging에게

내가 의미하는 바는 특정 시점에 아무도 읽지 않아도 미디어 지원 파일 시스템의 데이터가 존재한다는 것입니다. proc 및 sys와 같이 읽는 순간에는 존재하지 않습니다. 당신은 맞습니다, proc에는 많은 독자들이 있습니다. 그러나 sys는 fstab에서 적어도 작은 시스템에서는 주석 처리하고 여전히 Ok를 실행할 수있는 유사한 파일 시스템입니다. 건배.
— 조나단 벤-아브라함

4
고양이가 죽었나요? 보고보세요. 짐이 죽었어 불쌍한 고양이.
— 0x7c0

@HaukeLaging /proc/내 fstab 파일에 have이 없습니다
— Hi-Angel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.