파일 시스템
파일 시스템 (File System)
파일, 디렉토리, 파일 할당 방식
파일 (File)
File = name + attributes(metadata) + contents(data)
Unix 파일 연산
creat()- 파일 생성open()- 파일 열기close()- 파일 닫기read()- 파일 읽기write()- 파일 쓰기chmod()- 권한 변경
read()/write()에서open()을 분리하는 이유: 실제 작업 전 경로 탐색(a→b→c)을 한 번만 수행하여 반복 오버헤드 제거
디렉토리 (Directory)
Directories = name + attributes(metadata)
- 파일을 구조화하여 정리하는 방법
- 편리한 명명 인터페이스 제공
- 특정 메타데이터를 담고 있는 파일
- 실제로는 거의 정렬 안 함 (표시 시에는 정렬)
경로 종류
- 상대 경로 (Relative path): 현재 위치 기준
- 절대 경로 (Absolute path): 루트(
/)부터 시작
파일 할당 방식
| 방식 | 정의 | 장점 | 단점 |
|---|---|---|---|
| 연속 할당 (Contiguous) | 파일을 연속된 블록에 저장 | 순차/랜덤 접근 빠름 | 외부 단편화, 파일 크기 변경 어려움 |
| 연결 할당 (Linked) | 각 블록이 다음 블록의 포인터를 포함 | 외부 단편화 없음, 파일 크기 유연 | 랜덤 접근 느림, 포인터 오버헤드 |
| 인덱스 할당 (Indexed) | 인덱스 블록에 모든 블록 포인터 저장 | 랜덤 접근 지원, 외부 단편화 없음 | 인덱스 블록 공간 오버헤드 |
FAT12 (File Allocation Table)
- 저장 장치 최소 단위: 섹터(Sector) → 섹터 묶음: 클러스터(Cluster)
- FAT는 12비트로 클러스터 주소 표현 → 최대 4084개 클러스터
구조
| 영역 | 역할 |
|---|---|
| Reserved Area | Boot Sector (BPB), FSINFO, Boot Strap |
| FAT Area | Data Area 클러스터 할당 상태 표시 |
| Root Directory Area | 최상위 디렉토리의 파일/하위 디렉토리 목록 |
| Data Area | 실제 파일 데이터 (FAT 체인으로 연결된 클러스터) |
Boot Sector → Jump command → BPB(BIOS Parameter Block) 참조 → 파일 시스템 구조 정의