파일 시스템
파일과 디렉터리를 관리하는 운영체제 내의 프로그램이다.
파일과 디렉터리를 다루어 주는 프로그램이다.
보조 기억 장치에 저장된 관련 정보의 집합
의미 있고 관련 있는 정보를 모은 논리적 단위이다.
파일을 이루는 정보
파일을 실행하기 위한 정보 + 부가 정보(= 속성, 메타데이터)
파일 연산을 위한 시스템 호출

여러 계층으로 파일 및 폴더를 관리하는 트리 구조 디렉터리
최상위 디렉터리(루트 디렉터리, /), 서브 디렉터리
경로
디렉터리를 이용해 파일/디렉터리의 위치, 나아가 이름까지 특정 지을 수 있는 정보
절대 경로와 상대 경로

디렉터리 엔트리
→ 사실 많은 운영체제에서는 디렉터리를 그저 ‘특별한 형태의 파일’ 정도로 인식한다.
시스템과 데이터를 분리
예: C:는 OS, D:는 데이터 저장
멀티 부팅 환경 구성
윈도우 + 리눅스 같은 경우
보안·안정성 향상
한 파티션이 망가져도 다른 파티션은 안전
백업 및 복구 용이

포매팅까지 끝난 하드 디스크에 파일을 저장하기
운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다.
파일을 보조 기억 장치에 할당하는 두 가지 방법: 연속 할당, 불연속 할당

연속 할당의 장점
1) 최고의 접근 속도(Sequential Access가 매우 빠름)
파일이 연속된 위치에 있으므로 헤드 이동이 거의 없음 → 순차 접근이 빠름
그래서 영상, 큰 파일 등에는 유리함.
2) 탐색 시간(Seek time) + 회전 지연(Rotational latency) 최소화
헤드 이동 없이 바로 이어서 읽기 때문에 I/O 성능이 매우 좋다.
3) 간단한 구현
파일이 몇 번째 블록에서 시작하고(size), 얼마나 긴지만 저장하면 됨 → 메타데이터 관리가 쉬움.
4) 파일 크기가 예측 가능하면 매우 효율적
OS가 미리 정확한 크기를 알고 있으면 가장 이상적인 방식.
예: CD-ROM은 대부분 연속 할당을 사용.
연속 할당의 단점
외부 단편화(External Fragmentation) 발생
파일 크기 확장이 어려움
파일 삭제 시 빈 공간이 조각남 → 단편화 심화


단점
파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식이다.
파일 내 임의의 위치에 접근하기 용이하다.
디렉터리 엔트리: 파일 이름 & 색인 블록 주소

& FAT 파일 시스템의 파티션


디스크는 크게 3부분으로 구성된다.
부트 영역(Reserved Region)
FAT 영역(File Allocation Table)
데이터 영역(Data Region)
ex)

색인 할당 기반 파일 시스템
색인 블록 == i-node


15개 블록 이상을 차지하는 파일은?
블록 주소 중 12개는 직접 블록 주소 저장
1번으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소를 저장한다.
2번으로 충분하지 않다면 14번째 주소에 이중 간접 블록 주소를 저장한다.
3번으로 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소를 저장한다.

정리
파일 시스템은 운영체제 내부에서 파일과 디렉터리를 생성·삭제·읽기·쓰기 등으로 관리하는 핵심 프로그램이다. 파일은 보조 기억 장치에 저장된 의미 있는 정보의 논리적 집합으로, 실제 데이터뿐 아니라 크기·소유자·위치 같은 메타데이터를 함께 가진다. 디렉터리는 이러한 파일들을 계층적 트리 구조로 관리하는 특별한 형태의 파일로, 루트 디렉터리부터 서브 디렉터리까지 경로(절대/상대 경로)를 통해 파일의 위치를 식별한다. 디렉터리 엔트리에는 파일 이름과 실제 저장 위치를 유추할 수 있는 정보가 담겨 있다.
파일 시스템을 사용하기 전에는 파티셔닝과 포매팅 과정이 필요하다. 파티셔닝은 하나의 저장 장치를 여러 논리적 영역으로 나누는 작업으로, 시스템과 데이터 분리, 멀티 부팅, 안정성·백업 편의성 확보에 목적이 있다. 포매팅은 각 파티션에 파일 시스템 구조를 생성해 운영체제가 파일을 저장·관리할 수 있도록 준비하는 단계로, 디렉터리 구조 초기화와 메타데이터 생성이 이루어진다. 이후 운영체제는 파일을 블록 단위로 저장하며, 이때 블록을 어떻게 배치하느냐에 따라 파일 할당 방식이 달라진다.
파일 할당 방식에는 연속 할당과 불연속 할당이 있다. 연속 할당은 파일을 연속된 블록에 저장해 접근 속도가 빠르지만 외부 단편화와 확장성 문제가 있다. 불연속 할당은 파일을 여러 블록에 흩어 저장하는 방식으로, 연결 할당은 블록들이 포인터로 연결되어 순차 접근에 유리하지만 임의 접근이 어렵고, 색인 할당은 색인 블록(i-node)에 모든 블록 주소를 모아 임의 접근이 용이하다. FAT 파일 시스템은 연결 할당을 테이블(FAT)로 관리해 단점을 보완한 구조이며, 유닉스 파일 시스템은 i-node 기반 색인 할당을 사용해 직접·간접 블록 구조로 매우 큰 파일까지 효율적으로 관리한다.
참고