유닉스 시스템에서 File discriptor
는 프로세스가 파일, 디렉토리, 소켓 등 다양한 객체에 접근하기 위한 중요한 개념입니다. 프로세스가 파일을 열면 kernel
은 해당 프로세스에 대한 File discriptor Table
에서 사용하지 않는 가장 작은 값을 할당하고, 이 값을 사용하여 파일을 식별하고 관리합니다.
파일 디스크립터 테이블
을 가지고 있으며, 해당 테이블에는 프로세스가 열어둔 모든 파일과 관련된 정보가 저장됩니다.read()
, write()
, close()
와 같은 시스템 호출을 사용하여 파일에 접근할 때 파일 디스크립터 값을 사용하여 해당 파일을 식별합니다.1. 파일 디스크립터 테이블:
2. 파일 테이블:
3. I-node 테이블:
프로그램이 실행될 때 기본적으로 할당되는 세 개의 표준 파일 디스크립터가 있습니다.
- 프로세스가 파일을 열면 운영 체제는 해당 프로세스에 대한
File discriptor Table
에서 사용하지 않는 가장 작은 값을 할당합니다.- 프로세스가
File discriptor
값을 사용하여 시스템 호출을 호출하면 운영 체제는 해당 값을 사용하여Global File Table
에서 해당 파일을 식별합니다.- 파일 테이블 엔트리에는 파일의 I-node 인덱스가 포함되어 있으며, 운영 체제는 I-node 테이블을 사용하여 파일의 실제 데이터 블록에 접근합니다.
😊 도움을 준 고마운 사람들 🥳
김광윤 : https://github.com/leorivk
정승호 : https://github.com/seungho-jg
황연경 : https://github.com/yunnn426
전병준 : https://github.com/jun9898