1. 파일시스템이란?
- 파일 시스템은 운영체제가 저장매체에 파일을 쓰기(write)위한 자료구조 또는 알고리즘을 의미한다.
a) 파일 시스템이 만들어진 이유(블럭)
- 0과 1로 이루어진 데이터를 어떻게 저장매체에 관리할까?
▶ 비트 단위로 주소를 매겨서 읽고 쓰고 등 관리하기에 오버헤드가 너무 크다
▶ 그래서 블럭 단위로 관리하는 방법이 고안됨 (4kb 단위)
▶ 블럭마다 고유번호를 부여하여 읽고 쓰는 방식이 고안됨
-그러나 데이터가 점점 많아 질수록 일반 사용자가 블럭을 관리하는데 한계를 느낌
▶ 그래서 블럭이 아닌, 사용자가 이해하기 쉬운 데이터의 집합(= 객체)이라는 개념이 생김
▶ 데이터의 집합 = 객체 = 파일 이라는 개념이 등장
▶ 사용자는 파일 단위로 데이터를 관리하고, 각 파일은 블럭 단위로 데이터를 관리
b) 어떻게 저장할 것인가?
- 파일이 많아질수록 저장매체에 효율적으로 파일을 적재하는 방식에 대한 고민이 생김
▶ 처음에는 파일을 연속적인 공간에 저장하자는 아이디어가 고안됨
▶ 그러나 외부 단편화와 같은 문제로 불연속적인 저장방식의 필요성이 생김
ex) 블록체인 - 블록을 linked list 형태로 연결, 블록을 검색하려면 맨 처음 블록부터 읽어나가야 함
▶ 그 블록체인 아님
ex) 인덱스 블록기법 - 각 블록의 위치정보를 기록하여, 한번에 마지막 블록을 찾아갈 수 있도록 함
2. 파일 시스템의 종류
a) Window
- FAT, FAT32, NTFS
- 블록의 위치를 FAT라는 자료구조에 기록
- 최근에는 NTFS를 활발히 사용
b) Linux / Unix
- ext2, ext3, ext4
- 일종의 인덱스 블록 기법인 inode 방식을 사용
3. 시스템 콜과 파일 시스템
- 만약 파일 시스템 관련 시스템 콜(커널 영역의 명령어)이 파일 시스템에 따라 다르다면 어떨까?
- 파일 시스템에 따라 다른 시스템 콜을 사용해야 하므로 개발자의 입장에서는 굉장히 불편할 것이다.
- 다행히도 파일 시스템과 관련된 시스템 콜은 다양한 파일 시스템을 지원하도록 구현되어 있다.
'컴퓨터공학기초 개념 > 운영체제' 카테고리의 다른 글
38. 부팅의 이해 (0) | 2021.07.12 |
---|---|
37. 파일 시스템 - inode 방식과 가상 파일시스템 (0) | 2021.07.09 |
35. 가상메모리 - 세그멘테이션 기법 (0) | 2021.07.09 |
34. 가상메모리 - 페이지 교체 알고리즘 (0) | 2021.07.08 |
33. 가상메모리 - 페이지 폴트 (0) | 2021.07.08 |
댓글