온-디스크 및 인-메모리 구조

파일 시스템이 작동하려면, 파일 시스템의 메타데이터를 저장하는 구조를 **디스크(온-디스크 구조)**와 메모리(인-메모리 구조) 모두에 유지해야 합니다.

온-디스크 구조 (On-Disk Structures)

디스크에 영구적으로 저장되는 파일 시스템의 주요 구조는 다음과 같습니다.

  1. 부트 제어 블록 (Boot Control Block):

    • 역할: 시스템을 부팅할 때 필요한 정보를 담고 있습니다.

    • 포함 정보: 운영체제를 디스크에서 메모리로 로드하는 데 필요한 부트스트랩 로더의 위치를 포함합니다.

    • 위치: 일반적으로 파티션의 첫 번째 블록에 위치합니다. (부트 블록이라고도 불립니다.)

  2. 볼륨 제어 블록 (Volume Control Block):

    • 역할: 파일 시스템이 포함된 볼륨(파티션) 전체에 대한 상세 정보를 담고 있습니다.

    • 포함 정보: 볼륨의 블록 수, 블록 크기, 빈 블록의 수와 위치를 가리키는 포인터, 빈 FCB(파일 제어 블록)의 수와 위치를 가리키는 포인터 등입니다.

    • 다른 이름: Unix 계열 시스템에서는 **슈퍼 블록(Superblock)**이라고 불리기도 합니다.

  3. 디렉터리 구조 (Directory Structure):

    • 역할: 파일 이름과 해당 파일의 **파일 제어 블록(FCB)**을 연결하는 구조입니다.

    • 위치: 파일 시스템의 구조에 따라 파일 디렉터리들이 디스크의 특정 위치에 저장됩니다.

  4. 파일 제어 블록 (File Control Block, FCB):

    • 역할: 파일에 대한 모든 세부 정보(메타데이터)를 담고 있습니다. 파일당 하나씩 존재합니다.

    • 포함 정보:

      • 파일 소유자

      • 접근 권한

      • 파일 크기

      • 파일의 데이터 블록이 디스크 상에 위치하는 곳을 가리키는 포인터(매핑 정보)

      • 생성, 최종 수정, 최종 접근 시간 등

인-메모리 구조 (In-Memory Structures)

파일 시스템 연산을 지원하기 위해 휘발성 메모리에 일시적으로 유지되는 주요 구조는 다음과 같습니다.

  1. 인-메모리 마운트 테이블 (In-Memory Mount Table):

    • 역할: 현재 시스템에 **마운트(mount)**된 모든 파일 시스템 볼륨에 대한 정보를 포함합니다.

  2. 인-메모리 디렉터리 엔트리 캐시 (In-Memory Directory-Entry Cache):

    • 역할: 최근 접근한 디렉터리 정보를 캐시하여 디스크 접근 횟수를 줄입니다.

  3. 시스템 전체 파일 테이블 (System-Wide Open-File Table):

    • 역할: 시스템 내에서 현재 열려있는 모든 파일의 파일 제어 블록(FCB) 사본을 포함합니다.

  4. 프로세스별 파일 테이블 (Per-Process Open-File Table):

    • 역할: 각 프로세스가 열어 놓은 파일의 목록을 유지합니다.

    • 포함 정보: 시스템 전체 파일 테이블의 해당 항목을 가리키는 포인터와, 파일 읽기/쓰기 시 사용되는 **파일 포인터(현재 위치)**를 포함합니다.

Last updated