[컴퓨터공학] 파일 시스템
파일 시스템
패스트캠퍼스 강의 보면서 정리하고 있습니다
파일 시스템
- 운영체제가 저장매체에 파일을 쓰기 위한 자료구조 또는 알고리즘
파일 시스템이 만들어진 이유
- 저장매체에 효율적으로 파일을 저장하는 방법
- 가능한 연속적인 공간에 파일을 저장하는 것이 좋음
- 외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장 기능 지원 필요
- 블록체인 : 블록을 링크드 리스트로 연결
- 끝에 있는 블록을 찾으려면 맨 처음 블록부터 주소를 따라가야함
- 인덱스 블록 기법 : 각 블록에 대한 위치 정보를 기록해서 한번에 끝 블록을 찾아갈 수 있도록 함
- 블록체인 : 블록을 링크드 리스트로 연결
inode 방식 파일 시스템
- 파일 시스템 기본 구조
- 슈퍼 블록 : 파일 시스템 정보 및 파티션 정보 포함
- 아이노드 블록 : 파일 상세 정보 (프로세스에서 PCB처럼)
- inode 고유값과 자료구조에 의해 주요 정보 관리
파일이름:inode
로 파일이름은 inode 번호와 매칭- 파일 시스템에서는 inode 기반으로 파일 엑세스
- inode 기반 메타 데이터 저장
- inode 고유값과 자료구조에 의해 주요 정보 관리
- 데이터 블록 : 실제 데이터
inode 구조
- inode 기반 메타 데이터(파일 권한, 소유자 정보, 파일 사이즈, 생성시간 등 시간 관련 정보, 데이터 저장 위치 등)
디렉토리 엔트리
- 리눅스 파일 탐색 : 예) /home/ubuntu/link.txt
- 각 디렉토리 엔트레(dentry)를 탐색
- 각 엔트리는 해당 디렉토리 파일 디렉토리 정보를 가지고 있음
- ’/’ dentry에서 ‘home’을 찾고 ‘home’에서 ‘ubuntu’를 찾고 ‘ubuntu’에서 ‘link.txt’파일 이름에 해당하는 inode를 얻음
- 각 디렉토리 엔트레(dentry)를 탐색
가상 파일 시스템 (Virtual File System)
- Network 등 다양한 기기도 동일한 파일 시스템 인터페이스를 통해 관리 가능
- 예) read/write 시스템 콜 사용, 각 기기별 read_spec/write_spec 코드 구현 (운영체제 내부)