파일 시스템 구조

파일 시스템은 대용량의 비휘발성 저장 장치, 즉 디스크를 관리하여, 영구적인 정보 저장을 가능하게 합니다.

파일 시스템 구성 요소

파일 시스템은 논리적 부분과 물리적 부분을 모두 포함하는 복잡한 구조입니다.

구성 요소

역할

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

파일에 대한 상세 정보(소유자, 접근 권한, 파일 크기, 데이터 블록 위치 등)를 포함합니다.

디렉터리 구조 (Directory Structure)

파일 제어 블록에 대한 포인터와 파일 이름을 저장합니다.

파티션 (Partition)

저장 장치를 여러 개의 독립적인 영역으로 나눕니다. 각 파티션은 독립적인 파일 시스템을 가질 수 있습니다.

파일 시스템 계층 구조 (Layered Approach)

파일 시스템 설계는 일반적으로 계층화된 접근 방식을 따르며, 각 계층은 특정 기능을 담당합니다.

  1. 응용 프로그램 (Application Programs): 사용자가 파일 작업을 수행하는 단계입니다.

  2. 논리 파일 시스템 (Logical File System):

    • 파일 제어 블록(FCB)을 관리합니다.

    • 디렉터리 관리 및 파일 보호와 보안을 처리합니다.

    • 응용 프로그램의 파일 이름과 블록 번호를 연결합니다.

  3. 파일 구성 모듈 (File-Organization Module):

    • 논리적 블록 주소를 물리적 블록 주소로 변환하는 작업을 담당합니다.

    • 파일에 할당된 블록과 빈 공간을 관리합니다.

  4. 기본 파일 시스템 (Basic File System):

    • 논리적 블록을 메모리 내의 버퍼로 읽고 쓰는 역할을 담당합니다.

    • 물리적 블록 번호를 인수로 받아 해당 블록을 메모리로 가져오거나 디스크로 보냅니다.

  5. I/O 제어 (I/O Control):

    • 디바이스 드라이버와 버퍼 캐시를 포함합니다.

    • 디바이스 드라이버는 특정 디스크 하드웨어에 대한 명령어를 물리적인 하드웨어 제어 신호로 변환합니다.

  6. 장치 (Devices): 물리적 저장 장치(디스크)입니다.

온-디스크 및 인-메모리 구조 (On-Disk and In-Memory Structures)

파일 시스템을 구현하기 위해 디스크와 메모리 모두에 구조를 유지해야 합니다.

  • 온-디스크 구조 (On-Disk Structure):

    1. 부트 제어 블록 (Boot Control Block): 시스템이 부팅될 때 필요한 정보(운영체제 부팅 코드 위치)를 포함합니다.

    2. 볼륨 제어 블록 (Volume Control Block): 볼륨(파티션)의 정보(파티션 수, 블록 크기 등)를 포함합니다. 슈퍼 블록(Superblock)이라고도 불립니다.

    3. 디렉터리 구조 (Directory Structure): 파일 제어 블록(FCB)에 대한 포인터를 포함합니다.

    4. 파일 제어 블록 (FCB): 파일당 하나씩 존재하며 파일의 모든 메타데이터를 포함합니다.

  • 인-메모리 구조 (In-Memory Structure):

    1. 인-메모리 마운트 테이블: 현재 마운트된 파일 시스템 볼륨에 대한 정보를 포함합니다.

    2. 인-메모리 디렉터리 엔트리 캐시: 최근 접근한 디렉터리 정보를 캐시합니다.

    3. 시스템 전체 파일 테이블: 현재 열려있는 모든 파일의 FCB 사본을 포함합니다.

    4. 프로세스별 파일 테이블: 각 프로세스가 열어 놓은 파일의 목록과 시스템 전체 파일 테이블에 대한 포인터를 포함합니다.

Last updated