File System

파일 시스템

Apr 16, 2024

파일(file)

  • 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합을 의미함
  • 파일은 의미 있고 관련 있는 정보를 모은 논리적 단위

파일 연산을 위한 시스템 호출

  • 파일을 다루는 모든 작업은 운영체제에 의해 이루어지기떄문에 파일을 다루려면 운영체제에게 부탁해야함

디렉터리(directory)(폴더 foler)

  • 파일 시스템의 구조를 형성하며 파일을 조직화하고 관리하는데 사용됨
  • 1단계 디렉토리(single-level directory): 모든 파일이 하나의 디렉터리 아래 있는 경우
  • 트리 구조 디렉토리(tree-structured directory): 여러 계층을 가진 디렉터리
  • 루트 디렉터리(root directory): 최상위 디렉터리

절대 경로와 상대 경로

  • 절대 경로: 루트 디렉토리(최상위 디렉토리)부터 시작하여 해당 파일이나 디렉토리까지의 경로
  • 상대 경로: 현재 위치에서 어떤 디렉토리나 파일까지의 상대적인 위치

디렉터리 엔트리

  • 디렉터리 내에 있는 파일이나 하위 디렉터리를 나타내는 항목
  • 파일 이름, 위치를 유추할 수 있는 정보, 생성 시간, 수정된 시간, 크기 ...

파티셔닝과 포매팅

  • 파티셔닝(partitioning): 저장 장치의 논리적인 영역을 구획하는 작업
  • 포매팅(formatting): 데이터를 특정한 형식에 맞게 정리하거나 표시하는 작업

파일 할당 방법

  • 운영체제는 파일과 디렉터리를 블록 단위로 읽고 씀

연속 할당(contiguous allocation)

  • 파일을 연속된 디스크 블록에 할당
  • 파일의 크기에 따라 필요한 만큼의 연속된 블록을 할당
  • 연속된 공간을 찾기 어려울 경우 외부 단편화 발생할 수 있음

불연속 할당

연결 할당(linked allocation)

  • 각 블록이 이전 블록에 대한 포인터(링크)를 가지고 있는 방식으로 파일을 저장
  • 이전 블록의 포인터를 따라가면 전체 파일을 읽을 수 있음
  • 순차적인 액세스에는 유리하지만 임의의 위치로의 접근은 어려움
  • 하드웨어 고장이나 오류 발생 시 해당 블록 이후 블록은 접근할 수 없음

색인 할당(indexed allocation)

  • 파일의 모든 블록 주소를 색인 블록(index block)이라는 하나의 블록에 모아 관리하는 방식
  • 파일마다 인덱스 블록이 필요하므로 파일 시스템 내에 많은 작은 파일이 존재할 경우에는 인덱스 오버헤드가 발생할 수 있음
  • 인덱스 블록을 통해 임의의 위치로 액세스 가능
  • 일반적으로 대부분의 파일 시스템에서 사용되는 기본적인 할당 방법 중 하나

파일 시스템

FAT 파일(File Allocation Table)

  • 파일을 클러스터라는 고정 크기의 블록 단위로 저장
  • 파일 할당을 추적하기 위해 FAT(파일 할당 테이블)이라고 불리는 테이블을 사용
  • FAT에는 클러스터 간의 링크 정보가 저장되어 있어 파일의 첫 번째 클러스터에서부터 다음 클러스터로 이동할 수 있는 정보를 제공

유닉스 파일 시스템(UNIX File System, UFS)

  • 메타데이터(파일의 소유자, 권한, 크기, 생성 시간 등)를 저장하고, 실제 파일 데이터의 위치를 가리키는 i-node를 가지고 있음
  • 파일 시스템 오류를 찾아내고 복구할 수 있는 파일 시스템 검사 도구(fsck)를 제공함
  • 디렉터리와 파일을 트리 구조로 조직화함

출처: 혼자 공부하는 컴퓨터 구조+운영체제

Go toor?