ABOUT ME

Today
Yesterday
Total
  • [Operating System] 파일 시스템
    Operating System 2024. 8. 8. 15:14

    파일 시스템이 어떻게 파일과 디렉토리를 보조기억장치에 할당하고 접근하는지,
    대표적인 파일 시스템의 종류(FAT 파일 시스템, 유닉스 파일 시스템) 에 대해 정리하였습니다.


    참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'


    < 파티셔닝과 포매팅 >

    파티셔닝 : 저장 장치의 논리적인 영역을 구획하는 작업(like 칸막이)
    → 이렇게 나누어진 영역들 하나하나를 파티션이라고 합니다.

    포매팅 : 어떤 방식으로 파일을 관리할지 결정하고, 새로운 데이터를 쓸 준비하는 작업
    → 이 포매팅 작업을 통해 파일 시스템이 결정됩니다.

     

    • 파일 시스템에는 다양한 종류들이 있고, 파티션마다 다른 파일 시스템을 설정할 수 있습니다.
    • 보조 기억 장치(HDD, SSD 등)는 파티셔닝, 포매팅 하기 전까지는 사용할 수 없습니다.

     

     

    포매팅의 종류에는 저수준 포매팅과 논리적 포매팅이 있습니다.
    저수준 포매팅은 공장에서 수행되는 물리적인 포매팅을 의미하고, 논리적 포매팅은 파일 시스템을 생성하는 포매팅입니다.

    해당 글에서는 논리적 포매팅을 중심으로 정리하였습니다.

     

     


    < 파일 할당 방법 >

    운영체제는 파일/디렉토리를 블록 단위로 읽고 씁니다. 블록은 여러 섹터로 구성됩니다.
    (참조 [Computer Science] 다양한 보조기억장치)

    파일을 보조기억 장치에 할당하는 두 가지 방법 : 연속 할당, 불연속 할당
    (불연속 할당은 다시 연결 할당과 색인 할당으로 나뉩니다.)

     

     

    오늘날 주로 사용되는 방식은 불연속 할당입니다.

     

     


    [ 연속 할당 ]

    : 이름 그대로 보조기억장치 내 연속적인 블록에 파일을 저장하는 방식입니다.

     

    연속할당된 파일에 접근하기 위해서 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면 됩니다.

    따라서 디렉토리 엔트리에는 다음 세 가지 정보가 명시됩니다.

    • 파일 이름
    • 첫 번째 블록 주소
    • 블록 단위 길이

     

    연속 할당된 보조기억장치 & 디렉토리 엔트리 표

     

     


    [ 단점 ] : 구현이 단순하지만, 외부 단편화를 야기할 수 있습니다.

     

    Ex)

    : 여기서 파일 D와 F를 삭제할다면, 잔여 블록은 11개 이지만 7개 이상의 블록 사용하는 파일은 저장이 불가능합니다.

     

     

    +. 외부 단편화란 프로세스들이 실행되고 종료되길 반복하며 메모리 사이 사이에 빈 공간이 발생하는데, 프로세스들이 할당하기 어려울 만큼 작은 메모리 공간들로 인해 메모리가 낭비되는 현상을 말합니다.

     

     


    [ 불연속 할당 - 연결 할당 ]

    : 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 저장하는 방식

     

    파일을 이루는 데이터 블록을 연결 리스트(linked-list) 자료구조로 관리합니다.

    디렉토리 엔트리에는 다음 세 가지 정보가 명시됩니다.

    • 파일 이름
    • 첫 번째 블록 주소
    • 블록 단위 길이(이 대신 마지막 블록 주소를 기록할 수도 있습니다.)

     

    불연속 할당(연결 할당)된 보조기억장치 & 디렉토리 엔트리 표

     

     


    [ 단점 ] 

    : 첫 번째 블록이 아닌 특정 블록에 접근하려고 하는 경우 직접 접근할 수 있는 주소 정보가 없기 때문에, 해당 블록에 접근하기 위해 항상 첫 번째 블록부터 시작해 순차적으로 모든 블록을 따라가야 해서 접근 속도가 느립니다.

    또한, 오류 발생시 해당 블록 이후 블록은 접근이 어렵습니다.

     

     


    [ 불연속 할당 - 색인 할당 ]

    : 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식

     

    디렉토리 엔트리에는 다음 두 가지 정보가 명시됩니다.

    • 파일 이름
    • 색인 블록 주소

     

    불연속 할당(색인 할당)된 보조기억장치 & 디렉토리 엔트리 표

     

     


    < 파일 시스템 : FAT >

    불연속 할당 - 연결 할당 기반의 파일 시스템입니다.

     

    각 블록에 포함된 다음 블록 주소를 한데 모아 테이블(FAT; File Allocation Table)로 관리하여 연결 할당의 단점을 보완하였습니다.

     

    FAT가 메모리에 캐시될 경우 느린 임의 접근 속도를 개선 가능합니다.

     

     

     

     

     

     

     

     

     

     

     


    FAT 파일 시스템 파티션 모습 :

    FAT 파일 시스템 파티션 이미지

     

    FAT 파일 시스템 디렉토리 엔트리 : 파일의 속성까지 명시가 됩니다.

    FAT 파일 시스템 디렉토리 엔트리 이미지

     


    Ex) /home/minchul/a.sh을 읽는 과정 : 3 → 15 → 9 → 8 → 11 → 13

     

    디렉토리 구조

     

    FAT 이미지

     

     


    < 파일 시스템 : UNIX >

    불연속 할당 색인 할당 기반의 파일 시스템입니다.

     

    색인 블록을 i-node(혹은 index node)라고 합니다.

    색인 블록에 파일의 속성 정보와 15개의 블록 주소를 저장 가능합니다.

     

     

     

     

     

     

     

     


    [ 만약 15개 블록 이상을 차지하는 파일일 경우 ]

    0123

    1. 블록 주소 중 12개에는 직접 블록 주소 저장
    2. 1번으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소 저장
    3. 2번으로 충분하지 않다면 14번째 주소에 이중 간접 블록 주소 저장
    4. 3번으로 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소 저장

     


    UNIX 파일 시스템 파티션 모습 :

    UNIX 파일 시스템 파티션 이미지

     

    UNIX 파일 시스템 디렉토리 엔트리 : i-node만 알아도 파일의 속성과 위치 정보를 알 수 있습니다.

    UNIX 파일 시스템 디렉토리 엔트리 이미지

     

     


    Ex) /home/minchul/a.sh을 읽는 과정 : 1  3 → 210  8  121 → 9 → 98 → 12 → 13

     

    디렉토리 구조

     

    UNIX 이미지

     

     

     

     

     

    댓글

Designed by Tistory.