CS/운영체제

운영체제의 파일 시스템

Realuda72 2025. 5. 7. 20:34

 

파일 시스템이란?

운영체제의 파일 시스템(File System)은 저장 장치(HDD, SSD 등)에 데이터를 논리적 단위인 파일과 디렉토리 형태로 저장, 조직, 관리하는 핵심 기능입니다. 물리적인 블록 수준의 데이터 저장을 사용자 친화적인 인터페이스로 추상화하여, 사용자가 파일 단위로 데이터를 쉽게 접근하고 조작할 수 있도록 합니다.


주요 역할

데이터 조직화

데이터를 파일 단위로 나누고, 관련 파일을 디렉토리(폴더) 구조로 계층화하여 관리합니다.

디렉토리는 트리 구조를 갖고 있으며, 루트 디렉토리를 기준으로 하위 디렉토리와 파일이 구성됩니다.

파일 접근 및 조작 기능 제공

파일의 생성, 읽기, 쓰기, 수정, 삭제와 같은 기본 연산을 제공합니다.

각 파일에 대해 접근 권한(R/W/X)을 설정하여 보안을 유지합니다.

접근 권한의 세부 사항:

대부분의 파일 시스템(특히 유닉스/리눅스 기반)은 읽기(Read), 쓰기(Write), 실행(Execute) 권한을 기준으로 접근을 제어합니다.

이러한 권한은 다음 세 가지 사용자 범주에 대해 각각 설정됩니다:

  • 소유자(User): 파일을 만든 사용자
  • 그룹(Group): 해당 파일이 속한 사용자 그룹
  • 기타(Others): 위에 속하지 않는 모든 사용자

예시 (리눅스 기준): -rwxr-xr--

  • 첫 문자는 파일 타입(-: 일반 파일, d: 디렉토리 등)
  • 다음 세 문자: 소유자의 권한 (r: 읽기, w: 쓰기, x: 실행)
  • 그다음 세 문자: 그룹 권한
  • 마지막 세 문자: 기타 사용자 권한

이러한 구조를 통해 시스템은 각 파일에 대해 사용자별 접근을 엄격히 제어하며, 무단 접근이나 데이터 손상을 방지합니다.

파일 메타데이터 관리

운영체제는 파일의 내용뿐 아니라 파일 이름, 생성일, 수정일, 마지막 접근 시간, 크기, 속성, 접근 권한, 소유자 정보, 위치 정보 등을 포함한 메타데이터를 함께 저장하고 관리합니다.

메타데이터는 파일 자체를 구성하는 내용(data) 외에, 파일을 어떻게 관리하고 접근할지를 결정짓는 부가 정보입니다.

 

주요 메타데이터 항목:

  • 파일 이름: 사용자가 인식할 수 있는 고유 식별자
  • 파일 크기: 파일이 차지하는 바이트 수
  • 생성/수정/접근 시각: 파일의 시간 이력 정보
  • 파일 소유자 및 그룹: 해당 파일을 관리할 수 있는 사용자 정보
  • 접근 권한: 읽기/쓰기/실행 권한의 구성
  • 파일 위치: 디스크 상에서의 블록 또는 인덱스 정보

운영체제는 이러한 메타데이터를 디렉토리 항목이나 inode(유닉스 계열)에 저장하며, 이를 기반으로 파일의 존재 여부, 접근 제한, 속성 변경 등을 효율적으로 처리할 수 있습니다.

저장 공간 할당 및 추적

파일은 저장 장치의 블록 단위로 저장되며, 운영체제는 사용 중인 블록과 비어 있는 블록을 추적하고 관리합니다.

주요 할당 방식:

  1. 연속 할당 (Contiguous Allocation)
    • 파일이 저장 장치 내에서 연속된 블록들에 저장됩니다.
    • 장점: 빠른 접근 속도, 단순한 구현
    • 단점: 외부 단편화 발생 가능, 큰 연속 공간 확보 어려움
  2. 연결 할당 (Linked Allocation)
    • 파일의 각 블록이 포인터를 통해 다음 블록과 연결되는 방식
    • 장점: 외부 단편화 없음, 유연한 공간 활용
    • 단점: 임의 접근(random access)이 느림, 포인터 오버헤드 존재
  3. 인덱스 할당 (Indexed Allocation)
    • 각 파일에 대해 별도의 인덱스 블록을 생성하고, 이 블록에 모든 데이터 블록의 주소를 기록
    • 장점: 빠른 임의 접근 가능, 외부 단편화 없음
    • 단점: 인덱스 블록의 크기 제한, 다단계 인덱스 필요 시 복잡성 증가

운영체제는 이들 할당 방식 중 하나 또는 복합적인 방식을 사용하여, 파일 저장 시의 성능과 공간 효율성 사이의 균형을 맞춥니다.

내결함성 및 무결성 유지

일부 파일 시스템은 저널링(Journaling) 기능을 통해 시스템 장애 시 데이터 손실을 방지합니다.

손상된 파일 구조를 복구하기 위한 검사 및 복구 도구도 지원됩니다.

 

저널링이란?

저널링은 파일 시스템이 파일이나 디렉토리 구조를 변경하기 전에, 변경 내용을 저널(Journal)이라는 별도 영역에 기록하는 방식입니다.

이 저널은 트랜잭션 로그처럼 작동하며, 시스템 충돌이 발생해도 완전하게 기록된 작업만 실제 파일 구조에 반영됩니다.

충돌 발생 시 운영체제는 저널을 확인해 정상적으로 완료된 작업은 유지하고, 미완료 작업은 롤백하여 데이터의 일관성을 보장합니다.

저널링의 장점:

  • 갑작스러운 전원 차단, 커널 패닉 등의 상황에서도 파일 시스템의 구조 손상을 방지합니다.
  • 시스템 부팅 시 복구 시간이 짧아집니다.
  • 주로 메타데이터 보호 중심으로 설계되지만, 일부 파일 시스템(ext4, APFS 등)은 데이터까지 저널링할 수 있습니다.

저널링을 사용하는 파일 시스템 예:

  • NTFS (Windows)
  • ext3/ext4 (Linux)
  • APFS (macOS)
  • XFS, ReiserFS 등

주요 파일 시스템 종류

파일 시스템 플랫폼 특징

FAT32 Windows, USB 단순 구조, 호환성 높음, 보안 기능 부족
NTFS Windows 권한 관리, 저널링 지원, 대용량 파일 지원
ext4 Linux 저널링, 빠른 성능, 파일 복구 기능 우수
APFS macOS 스냅샷, 암호화, SSD 최적화

파일 시스템의 중요성

  • 파일 시스템은 데이터의 구조적 저장, 안전한 접근, 영구적 보관을 가능하게 합니다.
  • 사용자와 응용프로그램은 파일 시스템을 통해 복잡한 물리적 저장 구조를 인식하지 않고도 데이터를 효율적으로 활용할 수 있습니다.
  • 잘 설계된 파일 시스템은 시스템의 성능, 신뢰성, 보안성에 결정적인 영향을 미칩니다.

'CS > 운영체제' 카테고리의 다른 글

운영체제의 네트워크 관리  (0) 2025.05.12
운영체제의 I/O 시스템  (0) 2025.05.12
운영체제의 메모리 관리  (0) 2025.05.07
운영체제의 프로세스 관리  (0) 2025.04.30
커널  (0) 2025.04.23