파이프/FIFO에 대한 바이트 오프셋

파이프/FIFO에 대한 바이트 오프셋

파이프/FIFO의 바이트 오프셋이 일반 파일처럼 파일 테이블이 아닌 inode에 저장되는 이유는 무엇입니까?

나는 113페이지에서 이 줄을 읽었습니다.유닉스 운영체제의 설계(1986) 바흐, 모리스.

inode에서 바이트 오프셋을 유지하면 FIFO를 통해 파이프 데이터에 쉽게 액세스할 수 있으며 오프셋이 파일 테이블에서 유지되는 일반 파일과 다릅니다.

답변1

이 책은 30년 전 AT&T Unix 시스템의 내부를 설명하고 있다는 점에 유의하시기 바랍니다. 현대 Unix와 Unix 계열 시스템의 작업이 동일하다고 가정할 수는 없습니다.

어쨌든 파이프가 내부적으로 구현되는 방식에 관계없이 일반 파일이나 기타 검색 가능한 파일의 경우 바이트 오프셋은파일 설명 열기(제 생각에는 당신 책에 그렇게 쓰여 있는 것 같아요파일 테이블 항목). 즉, 동일한 파일을 독립적으로 여는 두 프로세스는 각각 파일에 자체 오프셋을 갖습니다. 한 프로세스에서 파일의 데이터를 읽어도 다른 프로세스의 오프셋에는 영향을 주지 않습니다.

파이프의 경우 파이프에서 열리는 모든 프로세스에 대한 모든 파일 설명자는 동일한 오프셋을 공유합니다. 즉, 오프셋은 파이프에 속합니다. 따라서 열려 있는 모든 파일 설명에 복사하는 대신 inode에 저장하는 것이 합리적입니다.

관련 정보