운영체제 | 파일 시스템

Faithful Dev·2025년 1월 26일

컴퓨터 공학

목록 보기
37/81

파일 시스템 (File System)

파일 시스템은 운영체제에서 데이터를 저장, 조직, 관리하는 방법과 구조를 제공하는 소프트웨어 계층이다. 파일 시스템은 디스크와 같은 스토리지 장치에서 데이터를 저장하고 접근하기 위한 논리적인 인터페이스를 제공한다.


주요 역할

  1. 데이터 저장 및 접근:
    파일과 디렉터리를 통해 데이터를 저장하고, 읽거나 쓰는 기능을 제공한다.
  2. 데이터 조직화:
    파일과 디렉터리를 트리 구조로 관리하여 데이터의 효율적 배치를 보장한다.
  3. 데이터 보호 및 보안:
    사용자 접근 권한, 암호화, 백업 등을 통해 데이터 무결성과 보안을 유지한다.
  4. 저장 장치 추상화:
    물리적 저장 장치의 세부사항(블록 크기, 섹터 등)을 숨기고, 사용자가 논리적인 파일 단위로 작업할 수 있게 한다.

파일 시스템의 구성 요소

  1. 파일(File):
    데이터를 저장하는 기본 단위로, 이름과 확장자를 통해 식별된다.
  2. 디렉터리(Directory):
    파일이나 하위 디렉터리를 포함하는 컨테이너로, 트리 구조로 구성된다.
  3. 메타데이터(Metadata):
    파일에 대한 정보를 저장하는 데이터로, 파일 이름, 크기, 생성/수정 시간, 권한 등이 포함된다.
  4. 블록(Block):
    파일 데이터를 물리적 저장 장치에 저장할 때 사용하는 최소 단위.
    • 예: 4KB 블록 단위로 데이터를 관리.
  5. 파일 할당 테이블(File Allocation Table):
    파일이 저장된 디스크 블록의 위치를 추적하여 데이터의 연속성을 유지.

파일 시스템의 기본 기능

  1. 파일 이름 관리:
    사용자가 파일 이름을 통해 데이터를 직관적으로 접근할 수 있게 관리.
  2. 파일 저장 및 검색:
    파일 데이터를 디스크에 저장하고, 필요 시 빠르게 검색.
  3. 디렉터리 관리:
    계층 구조를 지원하여 데이터를 논리적으로 정리.
  4. 저장 공간 할당 및 해제:
    파일의 크기에 맞는 디스크 공간을 할당하거나 삭제된 파일의 공간을 해제.
  5. 데이터 무결성 및 복구:
    파일 손상 또는 저장 장치의 오류 발생 시 데이터를 복구하는 메커니즘 제공.
  6. 접근 제어 및 보안:
    사용자 권한을 기반으로 읽기, 쓰기, 실행 등의 작업을 제어.

파일 시스템의 구조

파일 시스템은 여러 계층으로 구성된다:

사용자 인터페이스

  • 사용자가 파일을 생성, 삭제, 열기, 저장하는 인터페이스.

논리적 파일 시스템

  • 디렉터리 구조, 파일 이름, 접근 권한 등 파일의 논리적인 특성을 관리.

파일 조직 모듈

  • 파일 데이터를 물리적 디스크에 저장하고, 검색하기 위한 메커니즘을 제공한다.

I/O 제어

  • 저장 장치와 파일 시스템 간의 데이터 전송을 처리한다.

물리적 저장소

  • 파일 데이터가 실제로 저장되는 디스크의 섹터와 트랙.

파일 할당 방식

파일 데이터를 디스크에 저장하기 위해 사용하는 방식은 다음과 같다:

  1. 연속 할당(Contiguous Allocation):
    • 파일 데이터를 연속된 디스크 블록에 저장.
    • 장점: 빠른 접근 속도.
    • 단점: 파일 크기 변경 시 조각화(Fragmentation) 문제 발생.
  2. 연결 할당(Linked Allocation):
    • 파일의 각 블록이 다음 블록을 가리키는 포인터를 포함.
    • 장점: 조각화 문제 최소화.
    • 단점: 랜덤 접근이 느림.
  3. 인덱스 할당(Indexed Allocation):
    • 별도의 인덱스 블록에 파일 블록들의 목록을 저장.
    • 장점: 랜덤 접근과 파일 확장에 유리.
    • 단점: 인덱스 블록의 크기 제한.

파일 시스템의 종류

  1. FAT (File Allocation Table):
    • 가장 간단하고 널리 사용되는 파일 시스템.
    • DOS와 초기 윈도우에서 사용.
  2. NTFS (New Technology File System):
    • 마이크로소프트 윈도우에서 사용.
    • 보안, 압축, 대용량 파일 지원.
  3. EXT (Extended File System):
    • 리눅스에서 사용되는 파일 시스템.
    • 최신 버전: EXT4.
  4. HFS+ (Hierarchical File System Plus):
    • 애플 macOS에서 사용.
    • APFS(Apple File System)로 대체됨.
  5. ZFS (Zettabyte File System):
    • 데이터 무결성과 스냅샷 기능을 제공.
    • 대규모 데이터 저장에 적합.

파일 시스템의 문제점과 해결책

문제점

  1. 조각화(Fragmentation):
    파일이 여러 비연속적인 블록에 저장되어 읽기/쓰기 속도가 저하.
    • 해결책: 디스크 디프래그멘테이션(조각 모음).
  2. 데이터 손상:
    저장 장치 오류로 데이터가 손상될 수 있음.
    • 해결책: RAID와 같은 백업 및 복구 메커니즘 사용.
  3. 성능 문제:
    대규모 파일 또는 많은 작은 파일을 처리할 때 성능 저하.
    • 해결책: 캐싱 및 SSD와 같은 고속 저장 장치 사용.

파일 시스템의 발전 방향

  1. 분산 파일 시스템:
    • 여러 서버에 데이터를 분산하여 저장 및 처리(Google File System, HDFS 등).
  2. 저장 최적화:
    • SSD 및 비휘발성 메모리 기반 스토리지에 적합한 파일 시스템 설계.
  3. 보안 및 암호화:
    • 데이터 보호를 위해 기본적인 암호화 기능 내장.
  4. 대용량 데이터 처리:
    • 빅데이터와 클라우드 환경에서 효율적으로 작동하는 파일 시스템.

파일 시스템은 운영체제와 저장 장치 사이의 핵심적인 인터페이스로, 데이터의 효율적인 관리와 저장을 위해 중요한 역할을 한다.

profile
Turning Vision into Reality.

0개의 댓글