일요일은 교육장에 안 나갈거라 오늘 미리 올립니다.
파일 시스템
- 파일, 디렉터리를 보조기억장치에 저장 및 접근할 수 있게 하는 운영체제 프로그램
- e.g., FAT 파일 시스템, 유닉스 파일 시스템
파티셔닝과 포매팅
- 보조기억장치 (HDD, SSD 등)에 곧바로 파일을 생성하거나 저장할 순 없음
- 파티셔닝/포매팅을 먼저 거쳐야 함
- 파티셔닝: 보조기억장치를 하나 이상의 논리적 단위(파티션)로 구획하는 것
- 포매팅: 파일 시스템을 설정하고, 새로운 데이터를 쓸 준비를 하는 것
- 파티션마다 다른 파일 시스템을 사용할 수 있음
파일 할당 방법
- 블록: 운영체제가 파일, 디렉터리를 읽고 쓰는 단위
- 한 파일은 보조기억장치에 하나 이상의 블록에 걸쳐 저장됨
- 운영체제는 실제 HDD의 물리적 섹터를, 블록 단위로 묶어 관리
- 파일 시스템이 모든 섹터를 관리하기엔, 너무 개수가 많기 때문
- 파일을 보조기억장치 블록에 할당하는 방법?
- 연속 할당
- 불연속 할당 (연결 할당, 색인 할당)
연속 할당

- 보조기억장치 내 연속적인 블록에 파일을 할당
- 디렉터리 엔트리에 첫번째 블록 주소와 블록 단위의 길이를 저장
- 단점: 외부 단편화
[10블록 파일][3블록 빈칸][5블록 파일][ 2블록 빈칸 ][8블록 파일]
- 전체적으론 5블록이 남았는데, 최대 3블록 크기의 파일만 할당 가능
연결 할당

- 연결 리스트와 같이, 각 블록에 다음 블록의 주소를 저장해 다음 블록을 가리키게 함
- 디렉터리 엔트리에 첫번째 블록 주소와 블록 단위의 길이를 저장
- 장점: 불연속 블록 저장이 가능하므로, 외부 단편화 문제 해결됨
- 단점
- 파일의 중간 부분부터 접근하고 싶어도, 반드시 첫 블록부터 하나씩 차례대로 읽어야 함
- 임의 접근(파일 내 임의 위치에 접근) 속도가 느림
- 하드웨어 고장/오류 발생 시, 해당 블록 이후 블록에 접근할 수 없음
- FAT 파일시스템은 연결 할당 방식을 일부 변형해 사용
색인 할당

- 파일별로 색인 블록을 두어, 파일의 모든 블록 주소를 저장
- 디렉터리 엔트리에 색인 블록을 명시
- 장점: 외부 단편화 문제 해결 + 파일의 임의 위치에 접근하기 쉬움
- 유닉스 파일 시스템은 색인 할당 방식을 사용
유닉스 파일 시스템

- 유닉스 파일 시스템에선 색인 노드를 i-node(index node)라고 부름
- i-node에는 파일 속성 정보 및 15개의 블록 주소가 저장됨
- 파일 속성: 파일 크기, 생성 시간, 마지막 접근/수정 시간, 소유자 등
- 유닉스 파일 시스템 기준, 보조기억장치의 파티션은 예약 영역 / i-node 영역 / 데이터 영역 순
- i-node 영역: 각 파일의 i-node 블록들이 저장됨
- 데이터 영역: 실제 파일 데이터 블록이 저장됨
- 만약 파일 저장에 15개보다 더 많은 블록이 필요하다면...?
i-node 구조

- 첫 12개의 블록 주소에는, 직접 블록 주소 저장
- 파일 데이터가 저장된 블록 주소를 직접적으로 명시
- 공간 불충분할 시, 13번째 주소에는, 단일 간접 블록 주소 저장
- 아직도 불충분할 시, 14번째 주소에 이중 간접 블록 주소 저장
- 아직도 불충분할 시, 15번째 주소에 삼중 간접 블록 주소 저장
i-node 구조상 파일 찾는 과정
