[운영체제] 파일 시스템
파일 시스템(File System)이란 데이터를 저장하고 관리하기 위해 사용되는 방법 및 구조
우선 파티셔닝과 포매팅을 알아야 한다.
파티셔닝
- 저장 장치의 논리적인 영역을 구획하는 작업
포맷팅
- 파일 시스템을 설정한다. 어떤 방식으로 파일을 관리할지 결정하고 새로운 데이터를 쓸 준비하는 작업이다.
- 파티션마다 다른 파일 시스템을 설정 할 수도 있다.
포매팅 까지 완료되었다면 이제 파일과 디렉터리 생성이 가능해진다.
운영체제는 파일/디렉터리를 블록 단위로 읽고 쓰게 된다.
파일 할당 방법에는 연속할당과 불연속 할당이 존재한다.
연속할당

보조기억장치 내 연속적인 블록에 파일을 할당한다.
연속된 파일에 접근하기 위해 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면 된다.
디렉터리 엔트리에 파일이름 , 첫 번재 블록 주소, 블록 단위 길이가 명시된다.
하지만 이러한 방법은 외부단편화 때문에 많이 사용되지 않는다.
불연속 할당 - 연결 할당

각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 저장한다.
파일을 이루는 데이터 블록을 연결 리스트로 관리한다.
디렉터리 엔트리에 파일이름 , 첫 번재 블록 주소, 블록 단위 길이가 명시된다.
하지만 반드시 첫 번째 블록부터 하나씩 읽어야 하므로 임의 접근 속도가 느리다. (파일의 중간부터만 보고싶어도 처음부터 접근)
또한 오류가 발생시 해당 블록 이후 블록은 접근이 어렵다.
불연속 할당 - 색인 할당
파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식이다.

파일 시스템
FAT 파일 시스템
- 연결 할당 방식에 단점을 보완한 파일 시스템 (연결 할당 기반)
각 블록에 포함된 다음 블록 주소를 한데 모아 File Allocation Table (FAT) 로 관리하는 기법

유닉스 파일 시스템
색인 할당 기반의 파일 시스템
- 파일의 속성 정보와 15개의 블록 주소 저장이 가능하다. 각 색인 블록을 i-node라고 한다.
디렉터리 엔트리는 i-node 번호 : 파일이름 으로 구성된다.
1. 블록 주소 중 12개에는 직접 블록 주소를 저장한다.

2. 충분하지 않다면 13번째 주소에 단일 간접 블록 주소를 저장한다.

3. 또 충분하지 않다면 14번째 주소에 이중 간접 블록 주소를 저장한다.

4. 만약 또 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소를 저장한다.