블록 장치는 읽기/쓰기를 시작한 실제 사용자/프로세스를 알고 있습니까?

블록 장치는 읽기/쓰기를 시작한 실제 사용자/프로세스를 알고 있습니까?

VFS는 어떤 사용자/프로세스가 읽기/쓰기 요청을 보냈는지 알고 있습니다. 실제 블록 장치는 이러한 세부 사항을 알고 있습니까?

"bio" 구조에 사용자 공간 매개변수를 가리키는 세부정보가 포함되어 있나요? 등을 사용하여 current_uid()UID를 0으로 지정합니다. 이는 실제로 읽기/쓰기 작업을 수행하는 kjournald에 해당합니다.

답변1

아니요, 블록 장치는 어떤 프로세스나 사용자가 디스크 액세스를 유발했는지 전혀 모릅니다. 모르는 근본적인 이유는 개념이 명확하게 정의되지 않았기 때문이다. 디스크 액세스와 파일 액세스 사이에는 직접적인 관계가 없습니다. 예를 들어 여러 프로세스가 거의 동시에 동일한 파일의 동일한 위치에서 데이터를 읽는 경우 하드웨어로 흘러 들어가는 보류 중인 읽기 요청이 있을 수 있습니다. 또 다른 예는 쓰기를 유발한 활동이 종료된 후에 버퍼링된 쓰기가 발생할 수 있다는 것입니다.

관련 정보