[운영체제] 8. 파일시스템

H.J.SHIN·2024년 11월 18일

운영체제

목록 보기
8/8

파일 시스템


  • 운영체제는 디렉터리에 저장된 경로를 통해 보조기억장치에 저장된 디렉터리에 접근하여 할당한다.

파티셔닝

  • 저장 장치의 논리적인 영역을 나누는 작업
  • 파티셔닝 작업을 통해 나누어진 영역 하나하나를 파티션이라고 한다.
  • 포매팅을 통해 파티션마다 다른 파일 시스템을 설정할 수도 있다.

디렉터리 테이블

  • 디렉터리 내부에 담긴 파일과 관련된 정보가 담겨있다.
  • 테이블의 각 엔트리(행)에 담기는 정보는 파일 시스템마다 다르다.
  • 디렉터리 엔트리만 보아도 해당 디렉터리에 담긴 파일들의 정보와 저장된 보조기억장치 주소를 알 수 있다.

1. 파일 할당

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

  • 파일을 보조기억장치에 할당하는 방법에는 연속할당불연속 할당이 있다.

  • 불연속 할당에는 연결 할당색인 할당이 있다.


1.1. 연속 할당

  • 보조기억장치 내에서 연속적인 공간을 차지하도록 블록을 할당하는 방식

장점

  • 구현이 단순함

단점

  • 외부 단편화가 발생한다.
    • ex) 그림에서 0,1,7,8,9 블록에 할당되지 못함

1.2. 연속 할당

  • 불연속 할당 방법 중 하나

  • 연결 할당은 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당

장점

  • 연결 할당을 통해 외부 단편화 문제 해결

단점

  • 임의 접근 속도가 매우 느리다.
    ※임의 접근: 파일 내 임의의 위치에 접근 ex) 파일의 중간 부분부터 접근

  • 하드웨어 고장이나 오류 발생 시 해당 블록 이후의 블록은 접근 불가

    • 다음 블록에 대한 정보를 이전 블록에 저장하기 때문

1.3. 색인 할당

  • 불연속 할당 방법 중 하나

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

  • 색인 할당을 사용하는 파일 시스템에서는 디렉터리 엔트리에 파일 이름과 더불어 색인 블록 주소를 명시

장점

  • 임의 접근 속도가 빠르다.



2. 파일 시스템 종류

  • 일반적으로 가장 많이 사용하는 파일 시스템으로는 FAT 파일 시스템유닉스 파일 시스템이 있다

2.1. FAT 파일 시스템

  • 연결 할당 기반

  • USB 메모리, SD 카드 등의 저용량 저장 장치에서 사용

  • 각 블록에 포함된 다음 블록의 주소를 한데 모아 파일 할당 테이블(FAT)로 관리

    • 연결 할당에서 발생하는 하드웨어 고장 시 다음 블록 접근 불가 문제 해결
  • FAT는 파티션의 앞부분에 생성

  • FAT는 메모리에 캐시될 수 있기 때문에 연결 할당보다 임의 접근 성능이 개선

  • FAT 파일 시스템에서는 디렉터리 엔트리시작 블록 정보를 포함한 파일 속성 정보 저장


2.2. 유닉스 파일 시스템

  • 색인 할당 기반

  • 유닉스 파일 시스템에서는 색인 블록i-node(index-node)라고 부른다.

  • i-node에는 파일 속성 정보와 15개의 블록 주소 저장 가능

  • i-node 하나에는 기본적으로 15개의 블록 주소를 저장할 수 있기 때문에 15개 이상의 블록을 차지하는 파일에 경우 다른 방법을 사용한다.

    1. 블록 주소 12개에는 직접 블록 주소를 저장

      • 15개의 주소 중 처음 12개에는 파일 데이터가 저장된 블록 주소가 직접적으로 명시된다.
    2. 12개의 블록 주소로 모든 블록을 가리킬 수 없다면 13번째 주소에 단일 간접 블록 주소를 저장

      • 13번째 주소에는 파일 데이터를 저장한 블록 주소가 저장된 블록
    3. 13개의 블록 주소로 모든 블록을 가리킬 수 없다면 14번째 주소에 이중 간접 블록 주소를 저장

      • 14번째 주소에는 단일 간접 블록들의 주소가 저장된 블록인 이중 간접 블록을 저장
    4. 14개의 주소로 모든 블록을 가리킬 수 없다면 15번째 주소에 삼중 간접 블록 주소를 저장

      • 15번째 주소에는 이중 간접 블록들의 주소가 저장된 블록인 삼중 간접 블록을 저장

0개의 댓글