-
[Operating System] 파일 시스템Operating System 2024. 8. 8. 15:14
파일 시스템이 어떻게 파일과 디렉토리를 보조기억장치에 할당하고 접근하는지,
대표적인 파일 시스템의 종류(FAT 파일 시스템, 유닉스 파일 시스템) 에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 파티셔닝과 포매팅 >
파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업(like 칸막이)
→ 이렇게 나누어진 영역들 하나하나를 파티션이라고 합니다.
포매팅 : 어떤 방식으로 파일을 관리할지 결정하고, 새로운 데이터를 쓸 준비하는 작업
→ 이 포매팅 작업을 통해 파일 시스템이 결정됩니다.- 파일 시스템에는 다양한 종류들이 있고, 파티션마다 다른 파일 시스템을 설정할 수 있습니다.
- 보조 기억 장치(HDD, SSD 등)는 파티셔닝, 포매팅 하기 전까지는 사용할 수 없습니다.
포매팅의 종류에는 저수준 포매팅과 논리적 포매팅이 있습니다.
저수준 포매팅은 공장에서 수행되는 물리적인 포매팅을 의미하고, 논리적 포매팅은 파일 시스템을 생성하는 포매팅입니다.
해당 글에서는 논리적 포매팅을 중심으로 정리하였습니다.
< 파일 할당 방법 >
운영체제는 파일/디렉토리를 블록 단위로 읽고 씁니다. 블록은 여러 섹터로 구성됩니다.
(참조 [Computer Science] 다양한 보조기억장치)
파일을 보조기억 장치에 할당하는 두 가지 방법 : 연속 할당, 불연속 할당
(불연속 할당은 다시 연결 할당과 색인 할당으로 나뉩니다.)오늘날 주로 사용되는 방식은 불연속 할당입니다.
[ 연속 할당 ]
: 이름 그대로 보조기억장치 내 연속적인 블록에 파일을 저장하는 방식입니다.
연속할당된 파일에 접근하기 위해서 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면 됩니다.
따라서 디렉토리 엔트리에는 다음 세 가지 정보가 명시됩니다.
- 파일 이름
- 첫 번째 블록 주소
- 블록 단위 길이
연속 할당된 보조기억장치 & 디렉토리 엔트리 표
[ 단점 ] : 구현이 단순하지만, 외부 단편화를 야기할 수 있습니다.
Ex)
: 여기서 파일 D와 F를 삭제할다면, 잔여 블록은 11개 이지만 7개 이상의 블록 사용하는 파일은 저장이 불가능합니다.
+. 외부 단편화란 프로세스들이 실행되고 종료되길 반복하며 메모리 사이 사이에 빈 공간이 발생하는데, 프로세스들이 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상을 말합니다.
[ 불연속 할당 - 연결 할당 ]
: 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 저장하는 방식
파일을 이루는 데이터 블록을 연결 리스트(linked-list) 자료구조로 관리합니다.
디렉토리 엔트리에는 다음 세 가지 정보가 명시됩니다.
- 파일 이름
- 첫 번째 블록 주소
- 블록 단위 길이(이 대신 마지막 블록 주소를 기록할 수도 있습니다.)
불연속 할당(연결 할당)된 보조기억장치 & 디렉토리 엔트리 표
[ 단점 ]
: 첫 번째 블록이 아닌 특정 블록에 접근하려고 하는 경우 직접 접근할 수 있는 주소 정보가 없기 때문에, 해당 블록에 접근하기 위해 항상 첫 번째 블록부터 시작해 순차적으로 모든 블록을 따라가야 해서 접근 속도가 느립니다.
또한, 오류 발생시 해당 블록 이후 블록은 접근이 어렵습니다.
[ 불연속 할당 - 색인 할당 ]
: 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
디렉토리 엔트리에는 다음 두 가지 정보가 명시됩니다.
- 파일 이름
- 색인 블록 주소
불연속 할당(색인 할당)된 보조기억장치 & 디렉토리 엔트리 표
< 파일 시스템 : FAT >
불연속 할당 - 연결 할당 기반의 파일 시스템입니다.
각 블록에 포함된 다음 블록 주소를 한데 모아 테이블(FAT; File Allocation Table)로 관리하여 연결 할당의 단점을 보완하였습니다.
FAT가 메모리에 캐시될 경우 느린 임의 접근 속도를 개선 가능합니다.
FAT 파일 시스템 파티션 모습 :
FAT 파일 시스템 파티션 이미지 FAT 파일 시스템 디렉토리 엔트리 : 파일의 속성까지 명시가 됩니다.
FAT 파일 시스템 디렉토리 엔트리 이미지
Ex) /home/minchul/a.sh을 읽는 과정 : 3 → 15 → 9 → 8 → 11 → 13
디렉토리 구조 FAT 이미지
< 파일 시스템 : UNIX >
불연속 할당 색인 할당 기반의 파일 시스템입니다.
색인 블록을 i-node(혹은 index node)라고 합니다.
색인 블록에 파일의 속성 정보와 15개의 블록 주소를 저장 가능합니다.
[ 만약 15개 블록 이상을 차지하는 파일일 경우 ]
0123- 블록 주소 중 12개에는 직접 블록 주소 저장
- 1번으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소 저장
- 2번으로 충분하지 않다면 14번째 주소에 이중 간접 블록 주소 저장
- 3번으로 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소 저장
UNIX 파일 시스템 파티션 모습 :
UNIX 파일 시스템 파티션 이미지 UNIX 파일 시스템 디렉토리 엔트리 : i-node만 알아도 파일의 속성과 위치 정보를 알 수 있습니다.
UNIX 파일 시스템 디렉토리 엔트리 이미지
Ex) /home/minchul/a.sh을 읽는 과정 : 1 → 3 → 210 → 8 → 121 → 9 → 98 → 12 → 13
디렉토리 구조 UNIX 이미지 'Operating System' 카테고리의 다른 글
[Operating System] 파일 시스템 : 파일과 디렉토리 (0) 2024.08.01 [Operating System] 가상 메모리 : 페이지 교체와 프레임 할당 (0) 2024.07.15 [Operating System] 가상 메모리 : 쓰기 시 복사와 계층적 페이징 (0) 2024.06.22 [Operating System] 가상 메모리 : 페이징 (0) 2024.06.13 [Operating System] 가상 메모리 : 연속 메모리 할당 (0) 2024.05.20