파일 시스템
- 운영체제가 저장매체에 파일을 사용하기 위한 자료구조 또는 알고리즘을 뜻합니다.
- 0과 1의 데이터를 저장하기 위해 블록단위로 관리하고, 고유번호를 부여해서 관리합니다.
- 사용자는 각 블록 고유 번호를 관리하기 어렵기 때문에, 파일 이라는 추상적 단위로 관리하게 됩니다.
파일 시스템 저장 방법
- 가능한 연속적인 공간에 파일을 저장하는것이 효율적입니다.
- 하지만, 외부 단편화, 파일 사이즈 변경 등 여러 문제로 불연속적인 공간에 파일저장 기능이 필요합니다. .
> 외부 단편화 : 공간이 파편화 되어있어 여유 용량은 존재하나, 데이터를 저장하지 못하는 상태
1. 블록 체인
- 블록을 Linked List로 연결합니다.
- 중간의 블록을 찾기 위해서는 맨 처음부터 블록 주소를 따라가야 합니다.
2. 인덱스 블록
- 각 블록에 대한 위치 정보를 기록하여 저장합니다.
- 원하는 번호의 블록을 한번에 찾아갈 수 있습니다.
파일 시스템 종류
- Windows : FAT, FAT32, NTFS
> 블록 위치를 FAT라는 자료 구조에 기록합니다.
- 리눅스(UNIX 계열) : ext2, ext3, ext4
> 일종의 인덱스 블록 기법인 inode 방식을 사용합니다
- 가장 기본이 되는 파일 시스템 방식은 inode 방식입니다..
파일 시스템과 시스템콜
- 파일 시스템과 관련 함수 및 시스템 콜
> 동일한 시스템콜을 사용하여 다양한 파일 시스템 지원이 가능하도록 구현합니다.
> 운영체제가 제공하는 시스템 콜을 기반으로, 각 언어에서 라이브러리 등을 제공합니다.
inode 파일 시스템
- 기본 구조
- 기본적으로 블록 구조로 이루어져 있습니다.
- super block, inode block, data block 으로 구성되어 있습니다.
1) super block
- 파일 시스템 정보 및 파티션 정보를 포함한 블록입니다.
2) inode block
- inode 고유값과 자료구조에 의해 주요 정보를 관리하며, 이를 메타 데이터라고 합니다.
- 파일 권한, 소유자 정보, 사이즈, 생성 시간, 데이터 저장 위치 등을 포함합니다.
3) data block
- 파일에 저장된 실제 데이터를 포함한 블록입니다.
디렉토리 엔트리
- 전체 파일 이름을 순차적으로 표시합니다.
- 각 엔트리는 해당 디렉토리 파일 / 디렉토리 정보를 가지고 있습니다.
예를 들어, '/' 에서 'home'을 찾고, 'home'에서 'ubuntu'를 찾고, 'text.txt'를 찾습니다, ( /home/ubuntu/text.txt )
가상 파일 시스템 (Virtual File System)
- Network나 디바이스 관련 기술 들은 읽고 쓰는 것처럼 이루어져 있습니다.
- 이를 파일을 읽고, 쓰는것처럼 추상화하여 파일시스템 처럼 구현할 수 있습니다.
- 이를 가상 파일 시스템이라고 합니다.
'Computer Science' 카테고리의 다른 글
운영체제 - 페이지 교체 알고리즘 (0) | 2024.05.28 |
---|---|
운영체제 - 페이징 시스템 (0) | 2024.05.27 |
운영체제 - 가상메모리 (0) | 2024.05.07 |
운영체제 - 동기화 이슈 (0) | 2024.05.03 |
운영체제 - 스레드 (0) | 2024.05.02 |