파일 시스템 (File System)
→ 운영 체제가 저장 장치에서 데이터를 저장, 조직, 검색하는 방법을 관리하는 시스템 소프트웨어
- 커널 영역에서 동작
- 파일 CRUD 기능을 원활히 수행하기 위한 목적
- 계층적 디렉터리 구조
특징
- 데이터를 파일과 디렉터리 형태로 조직하여 사용자가 쉽게 접근 및 관리 가능
- 각 파일과 디렉터리의 크기, 생성 및 수정 시간, 소유자 정보 등의 메타데이터 저장 및 관리
- 파일과 디렉터리에 대한 읽기, 쓰기, 실행 권한을 설정하여 사용자별 접근 제어
- 디스크 공간 효율적으로 사용하기 위해 파일 할당 & 해제 관리
- 데이터 손상 방지 및 손상된 데이터 복구 기능 제공
- 텍스트 파일, 바이너리 파일, 디렉터리 등 다양한 파일 형식 지원
기능
- 파일 및 디렉터리 생성 및 삭제
- 파일 읽기 및 쓰기
- 저장 공간 할당 및 해제
- 파일 이름 및 경로 관리
- 파일 접근 제어 설정
- 데이터 무결성 및 복구
작동 원리
파일 저장
사용자가 파일을 저장하면 파일 시스템은 파일의 데이터를 저장 장치의 빈 공간에 저장하고 해당 파일의 메타데이터를 업데이트한다.
파일 접근
사용자가 파일을 열거나 읽을 때 파일 시스템은 파일의 위치를 찾아 데이터를 메모리로 로드한다. 필요한 접근 권한이 있는지 확인하고 데이터 무결성을 검사한다.
파일 삭제
사용자가 파일을 삭제하면 파일 시스템은 파일의 메타데이터와 데이터 블록을 해제하여 저장 장치의 공간을 다시 사용할 수 있게 한다.
디렉터리 관리
디렉터리는 파일과 하위 디렉터리를 포함하는 특수한 파일로, 파일 시스템은 디렉터리 구조를 유지 관리하여 사용자가 파일을 찾기 쉽게 한다.
데이터 접근 방법
순차 접근 (Sequential Access)
파일의 데이터를 처음부터 순차적으로 읽거나 쓰는 방법. 데이터 접근이 순서대로 이루어지기 때문에 주로 텍스트 파일이나 로그 파일 같은 연속적인 데이터 저장에 사용된다.
- 데이터 처음부터 끝까지 순서대로 접근
- 한 번 읽거나 쓰기 시작하면 중간에 건너뛰거나 되돌아가는 것이 어려움
- 구현이 간단하고 파일 구조 유지 쉬움
- 순차적으로 데이터에 접근하기 때문에 접근 시간이 예측 가능하고 일관됨
직접 접근 (Direct Access)
파일의 특정 위치에 임의로 접근할 수 있는 방법. 이는 대용량 데이터 파일이나 데이터베이스 파일처럼 임의의 위치에 빠르게 접근해야 하는 경우에 사용된다.
- 파일 임의 위치에 직접 접근 가능
- 특정 위치에 빠르게 접근할 수 있어 효율적
- 파일의 구조와 데이터 위치를 관리해야 하므로 구현이 복잡할 수 있음
- 파일 포인터를 사용하여 파일 내의 특정 위치를 지정하고 그 위치로 이동하여 데이터를 읽거나 씀