테키테크 TEKITECH
[운영체제] Ch15. 파일 시스템 본문
파일 시스템에 대하여
- 파일과 디렉터리
- FAT 파일 시스템과 유닉스 파일 시스템
1. 파일과 디렉터리
파일은 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합 즉, 의미 있고 관련 있는 정보를 모은 논리적 단위를 의미한다. 파일을 이루는 정보에는 파일의 이름과 파일을 실행하기 위한 정보, 그리고 속성(attribute) 또는 메타데이터(metadata)라고 부르는 파일 관련 부가 정보도 있다. 속성에는 아래와 같은 것들이 있다.
- 유형 : 운영체제가 인지하는 파일의 종류(.exe, .com, .bin, .zip, ...)
- 크기 : 파일의 현재 크기와 허용 가능한 최대 크기
- 보호 : 파일을 읽고, 쓰고, 실행할 수 있는지에 대한 사용자 권한 정보
- 날짜 : 생성 날짜, 마지막 접근 날짜, 마지막 수정 날짜 등 시간 정보
- 생성자 : 파일을 생성한 사용자 정보
- 소유자 : 파일을 소유한 사용자 정보
- 위치 : 파일의 보조기억장치상의 현재 위치 정보
이 중에서도 파일의 유형은 확장자라는 것을 통해 파일 이름에서 파일의 정보를 드러낸다.
- 실행 파일 : (확장자가 없는 경우), .exe, .com, .bin
- 목적 파일 : .obj, .o
- 소스 코드 파일 : .c, .cpp, .cc, .java, .asm, .py
- 워드 프로세서 파일 : .xml, .rtf, .doc, .docx
- 라이브러리 파일 : .lib, .a, .so, .dll
- 멀티미디어 파일 : .mpeg, .mov, .mp3, .mp4, .avi
- 백업/보관 파일 : .rar, .zip, .tar
디렉터리는 파일들을 일목요연하게 관리하기 위해 이용하는 체계로, 윈도우 운영체제에서는 폴더라고도 부른다.
◈ 1단계 디렉터리 (single-level directory)
→ 옛날 운영체제의 형태로, 모든 파일이 하나의 디렉터리 아래에 있는 형태.
◈ 트리 구조 디렉터리 (tree-structured directory)
→ 최근 사용하는 거의 모든 운영체제의 형태로, 디렉터리 안에 또 다른 디렉터리가 존재할 수 있어 트리 구조를 이루는 형태. 이때 최상위 디렉터리는 루트 디렉터리, 하위 디렉터리는 서브 디렉터리 또는 자식 디렉터리라고 부른다.
트리 구조 디렉터리에서 파일의 위치를 특정하기 위해 경로를 사용한다. 이때 두 가지 표현 방법이 있다.
① 절대 경로
: 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로로, 모든 파일이 각자 고유한 절대 경로를 가지고 있다.
② 상대 경로
: '현재' 디렉터리를 기준으로 상대적인 위치를 나타내는 경로이다.
2. FAT 파일 시스템과 유닉스 파일 시스템
공장에서 나온 후 처음 사용하는 새 하드 디스크나 SSD를 사용하려면 파티셔닝(파티션을 나누는 작업)과 포매팅(포맷 작업)을 먼저 해주어야 한다. 파티셔닝이란 하나의 보조 기억 장치에 논리적인 구역을 나누는 것을 의미하고, 포맷팅이란 파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비를 하는 작업을 의미한다.
파티셔닝과 포맷팅이 끝나면 저장 장치에 파일을 저장할 수 있다. 이때 파일 할당 방법에는 연속 할당과 불연속 할당 방법이 있고, 불연속 할당에는 연결 할당과 색인 할당이 있다.
연속 할당은 가장 단순한 방식으로, 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식이다. 이는 구현은 단순하지만 외부 단편화를 야기한다는 문제가 있다.
연결 할당은 이 문제를 해결할 수 있다. 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 '연결 리스트' 형태로 파일을 할당하는 방식이다. 하지만 연결 할당은 반드시 첫 번째 블록부터 하나씩 차례대로 읽어야 한다는 점 때문에 임의 접근(random access) 속도가 매우 느리다는 단점과 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없다는 단점이 있다.
◈ FAT 파일 시스템
연결 할당 방식을 조금 보완하여 구현한 파일 시스템으로 FAT 파일 시스템이 있다. 이 파일 시스템은 연결 할당 방식의 단점의 근본적인 원인을 블록 안에 다음 블록의 주소를 저장한 점이라고 보고 블록의 주소들을 한데 모아 테이블 형태로 따로 관리한다. 이 테이블을 파일 할당 테이블(FAT: File Allocation Table)이라고 한다.
색인 할당은 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식으로, 연결 할당의 단점을 보완한다. 색인 할당은 색인 블록 안에 파일을 구성하는 데이터 블록 주소가 있기 때문에 색인 블록만 알면 해당 파일 데이터에 접근할 수 있다. 그렇기에 색인 할당을 사용하는 파일 시스템에서는 색인 할당 주소를 디렉터리 엔트리에 파일 이름과 같이 저장하여 사용한다.
◈ 유닉스 파일 시스템
색인 할당을 사용하는 파일 시스템에는 유닉스 파일 시스템이 있다. 유닉스 파일 시스템에서 색인 블록을 i-node(index-node)라고 부른다. i-node는 크기가 유한하기 때문에 몇 가지 규칙을 따른다.(1) 블록 주소 중 열두 개에는 '직접 블록(direct block)' 주소를 저장한다. (2) (1)의 내용으로 충분하지 않은 경우엔 열세 번째 주소에 단일 '간접 블록(single indirect block)' 주소를 저장한다. (3) (2)의 내용으로 충분하지 않은 경우엔 열네 번째 주소에 '이중 간접 블록(double indirect block)' 주소를 저장한다. (4) (3)의 내용으로 충분하지 않은 경우엔 열다섯 번째 주소에 '삼중 간접 블록(triple indirect block)' 주소를 저장한다.
'그리고 > 스터디' 카테고리의 다른 글
혼공학습단 9기를 마치며 (0) | 2023.02.22 |
---|---|
[혼공학습단 9기] 혼공컴운 6주차 미션 (0) | 2023.02.18 |
[운영체제] Ch14. 가상 메모리 할당 방식 (0) | 2023.02.18 |
[운영체제] Ch13. 교착 상태(데드락)에 대응하는 방법 (0) | 2023.02.16 |
[운영체제] Ch12. 동기화 문제(생산자와 소비자 문제, 임계 구역 문제)과 동기화 도구(뮤텍스 락, 세마포, 모니터) (0) | 2023.02.16 |