[OS] 파일 시스템

do_it·2025년 10월 23일

os

목록 보기
13/13

1. 파일 시스템 개념

1-1. 파일 시스템이란?

사용자가 데이터를 효율적으로 저장, 접근, 관리할 수 있도록 해주는 핵심 메커니즘이자,
보조 기억 장치(하드 디스크, SSD 등)의 물리적인 공간을 논리적인 파일과 디렉토리 형태로 추상화해주는 체계

  • 파일 시스템의 궁극적인 목저은 보조 기억 장치에 저장된 데이터를 사용자가 편리하게 이용하도록 돕는 것

핵심 특징 및 역할

  1. 커널 영역 동작
    파일 시스템의 핵심 기능(메모리 할당, 디스크 I/O 등)은 안정성이 중요한 커널 모드에서 실행됨
  2. 목적 (CRUD)
    파일의 생성(Create), 읽기(Read), 수정(Update), 삭제(Delete) 기능을 원활하고 안정적으로 수행함
  3. 계층적 구조
    파일을 관리하기 쉬운 트리 구조로 구성하여 파일 탐색 및 분류를 용이하게 함
  4. 보조 저장소 관리
    파일 자체 뿐만 아니라, 파일을 저장하는 디스크 공간(빈 공간, 할당된 공간)도 효율적으로 관리함
  5. 무결성 메커니즘
    시스템 충돌이나 전원 문제 발생 시에도 데이터의 손상(파일 무결성)을 최소화하고 복구할 수 있는 메커니즘(e.g. 저널링)을 제공

2. 파일과 디렉토리

2-1. 파일 (File)

  • 사용자가 인식하는 정보의 논리적인 저장 단위
  • 파일은 이름, 속성(유형, 크기, 생성 시간, 접근 권한 등), 데이터를 가짐
  • OS는 이러한 속성은 파일 제어 블록 (FCB, File Control Block)에 저장하여 관리함

파일의 구성 요소

  • 메타 영역 (Metadata Area):
    • 파일 자체의 데이터가 아닌, 파일을 설명하는 정보(속성)를 저장합니다.
    • 포함 내용: 파일 이름, 파일의 데이터가 저장된 위치 주소, 크기, 소유자, 접근 권한, 생성/수정/접근 시간, 삭제 여부 등.
    • 이 메타 정보를 저장하는 대표적인 구조가 FCB (File Control Block) 또는 Inode (아이노드)입니다.
  • 데이터 영역 (Data Area):
    • 실제 파일의 내용(바이너리 코드, 텍스트, 이미지 등)이 저장되는 영역입니다.

2-2. 디렉토리 (Directory)

  • 파일을 계층적으로 묶어 구조화하고 관리하는 도구
  • 파일 이름과 해당 파일을 찾기 위한 정보를 매핑하여 저장함

디렉토리 구조

  1. 단일 레벨 디렉토리 (Single-Level Directory)
    모든 파일이 하나의 디렉터리 아래에 저장됨
  2. 2단계 디렉토리
  3. 계층적/트리 구조 디렉토리
구조특징장점단점
1단계 (Single-Level)시스템 내 파일이 하나의 디렉터리에만 존재함구현이 가장 단순파일 이름 충돌 발생 쉬움. 파일 관리 어려움
2단계 (Two-Level)사용자별 UFD를 두고 MFD가 관리함사용자 간 이름 충돌 해소됨. 사용자별 파일 구분이 명확함사용자 간 파일 공유 및 파일 그룹화 어려움
트리 구조 (Tree Structure)루트를 정점으로 하는 계층적 다단계 구조임파일의 논리적 그룹화 용이함. 절대/상대 경로 접근 가능함탐색 시 시간 오버헤드 발생 가능함. 파일 공유가 간접적임
그래프 구조 (Acyclic-Graph)트리 구조에 링크를 추가하여 파일 공유를 허용함파일 및 디렉터리 공유가 가능하여 효율성 높음순환(Cycle) 처리 복잡함. 삭제 시 댕글링 포인터 문제 발생함

3. 파일 할당 방식

파일 시스템은 파일의 논리적인 블록을 디스크의 물리적인 블록에 어떻게 대응시켜 저장할지를 결정함

  1. 연속 할당(Contiguous Allocation)

    파일의 모든 데이터 블록을 디스크의 연속된 물리적 블록에 저장함

    [+] 순차 접근 및 직접 접근이 매우 빠르고, 구현이 단순함

    [-] 파일 크기 변경이 어렵고, 외부 단편화 문제가 심각하게 발생함

  2. 연결 할당(Linked Allocation)
    파일의 각 데이터 블록을 디스크에 흩어져 저장됨
    각 블록은 다음 블록의 주소를 포인터 형태로 저장하여 연결함
    [+] 외부 단편화가 발생하지 않고, 파일 크기 변경이 용이함
    [-] 직접 접근이 불가능하고 순차 접근만 가능하며, 포인터 저장 공간으로 인한 낭비가 발생하고, 포인터 손상 시 데이터 접근이 끊어지는 신뢰성 문제

  3. 인덱스 할당(Indexed Allocation)
    파일의 모든 디스크 블록 주소를 모아놓은 인덱스 블록을 사용함
    파일 접근 시 인덱스 블록을 먼저 참조하여 데이터의 위치를 파악함
    [+] 직접 접근이 가능하고, 외부 단편화가 없음
    [-] 인덱스 블록을 위한 추가적인 공간이 필요하며, 대용량 파일의 경우 인덱스 블록을 관리하는 것이 복잡해짐

0개의 댓글