본문 바로가기
운영체제

[운영체제] 파일 시스템

by Bokoo14 2025. 1. 12.

파일 시스템(file system)

보조기억장치의 정보를 파일 및 디렉터리의 형태로 저장하고 관리할 수 있도록 하는 운영체제 내부 프로그램

파일(file)

파일 이름, 파일을 실행하기 위한 정보, 파일과 관련한 부가 정보로 구성

  • 속성, 메타 데이터: 파일과 관련한 부가 정보

파일을 다루는 모든 작업은 운영체제에 의해 이루어짐

응용 프로그램은 임의로 파일을 할당받아 조작하고 저장할 수 없고, 파일을 다루는 시스템 콜을 이용

파일 디스크립터 (파일 핸들)

파일 디스크립터는 운영 체제(OS)가 파일을 식별하고 관리하기 위해 사용하는 고유한 식별자

프로세스가 파일을 열거나 생성하면, OS는 해당 파일에 대해 고유한 번호를 할당하며, 이를 파일 디스크립터라고 한다.

저수준에서 파일을 식별하는 정보

0이상의 정수 형태

OS는 프로세스가 새로운 파일을 열거나 생성할 때 해당 파일에 대한 파일 디스크립터를 프로세스에 할당

디렉터리(directory)

디렉터리는 여러 계층을 가진 트리 구조 디렉터리(tree-structured directory)로 관리된다.

많은 운영체제에서 디렉터리를 특별한 "디렉터리에 속한 요소의 관련 정보가 포함된 파일"로 간주

 

디렉터리 엔트리(directory entry)

  • 디렉터리에 속한 요소의 관련 정보는 테이블 형태로 표현되며, 테이블 형태로 표현된 정보의 행 하나 하나를 디렉터리 엔트리라 함
  • '파일의 이름'과 '파일이 저장된 위치를 유추할 수 있는 정보'가 반드시 포함되어 있음
  • 파일 이름, 위치를 유추할 수 있는 정보, 생성 시간, 수정된 시간, 크기 등이 저장되어 있음

파일 할당

운영체제는 파일과 디렉터리를 블록(block)이란 단위로 읽고 씀

하나의 파일이 보조기억장치에 저장될 때는 하나 이상의 블록을 할당받아 저장됨

블록 하나는 보통 4096바이트

연결할당(linked allocation)

파일 시스템은 각 블록의 일부에 다음 블록의 주소를 저장하여 각각의 블록이 다음 블록을 가리키는 형태로 할당할 수 있음

색인 블록(index block)

파일을 이루는 모든 블록의 주소

색인 할당(indexed allocation)

특별한 블록에 모아 관리하는 방식

색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 함께 색인 블록 주소가 명시

색인 블록만 알면 접근하고자 하는 파일 데이터에 접근할 수 있다.


파일 시스템

파티셔닝(partitioning)

보조기억장치는 여러 파티션으로 나눌 수 있으며, 파티션마다 다른 파일 시스템을 사용할 수 있다. 

한 보조기억장치에 여러 파일 시스템을 적용하여 사용하려면 보조기억장치 내에 파일 시스템을 적용할 영역이 구분되어야 한다.

파티셔닝은 보조기억장치의 영역을 구획하는 작업

파티션(partition): 파티셔닝되어 나누어진 하나의 영역

포메팅(formatting)

파일 시스템을 설정하여 어떤 방식으로 파일을 저장하고 관리할 것인지를 결정하고, 새로운 데이터를 쓸 준비를 하는 작업

아이노드 기반 파일 시스템

파일마다 각각의 아이노드를 가지고 있으며, 아이노드에는 각각의 번호가 부여되어 있음

아이노드에는 각각의 번호가 부여되어 있음

  • 슈퍼 블록: 아이노드의 개수, 블록 크기 등 전체적인 파일 시스템의 정보를 저장
  • 그룹 식별자: 블록 그룹에 대한 메타데이터 저장
  • 블록 비트맵: 현재 블록 그룹 내 데이터가 어떻게 할당되었는지 저장
  • 아이노드 비트맵: 현재 블록 그룹 내 아이노드가 어떻게 할당되었는지 저장
  • 아이노드 테이블: 각 파일의 아이노드 정보 저장
  • 데이터 블록: 각 파일의 데이터 저장

아이노드 기반 파일 시스템에서는 데이터 영역에 공간이 남아있어도 아이노드 영역이 가득 차 더 이상의 아이노드를 할당할 수 없다면 OS는 새 파일 생성 불가

하드 링크(hard link)

하드링크 파일: 원본 파일과 같은 아이노드를 공유하는 파일

같은 아이노드 번호를 갖는 파일을 생성하는 작업

하드 링크 파일과 원본 파일은 같은 파일 데이터 공유

하드 링크 파일을 변경하면 원본 파일도 변경됨

하드 링크 파일이 남아있으면 원본 파일이 삭제되거나 이동되어도 파일 데이터 접근할 수 있음

동일한 파일을 여러 이름으로 참조하고 싶을 경우

심볼릭 링크(symbolic link)

심볼릭 링크 파일: 원본 파일을 가리키는 파일

같은 파일 데이터를 공유하지 않고 원본 파일의 위치만 변경하여 저장

원본 파일이 삭제되거나 이동되는 경우 사용 불가능

복잡한 경로에 있는 파일을 바로가기 파일의 형태로 간단히 참조하고 싶을 경우

마운트(mount)

저장장치의 파일 시스템에서 다른 저장장치의 파일 시스템으로 접근할 수 있도록 파일 시스템을 편입시키는 작업

예를 들어 USB메모리 저장장치를 데스크탑에 연결하여 데스크탑의 파일 시스템을 통해 USB메모리의 파일 시스템에 접근할 수 있도록 마운트시킴

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

[운영체제] 가상 메모리  (0) 2025.01.12
[운영체제] CPU 스케줄링  (1) 2025.01.09
[운영체제] 동기화와 교착 상태  (1) 2025.01.08
[운영체제] 프로세스와 스레드  (0) 2025.01.06
[운영체제] 운영체제란  (1) 2025.01.06