Skip to content

학습 기록 | w8 지현

Jihyun Lim edited this page Mar 28, 2025 · 2 revisions

15. 파일 시스템

15-1. 파일과 디렉터리

#파일 #확장자 #속성 #디렉터리 #경로 #절대 경로 #상대 경로

파일 시스템 (file system)

  • 파일과 디렉터리를 관리하는 운영체제 내의 프로그램

파일 (file)

  • 보조기억장치에 저장된 관련 정보의 집합
  • 의미 있고 관련 있는 정보를 모은 논리적 단위
  • 파일을 실행하기 위한 정보 + 부가정보(=속성, 메타 데이터

파일 유형

  • 운영체제가 인식하는 파일 종류
  • 확장자(extensioin)

‼️ 파일은 시스템 호출을 통해 운영체제에 의해 이루어짐 (생성, 삭제, 열기, 닫기, 읽기, 쓰기)

디렉터리 (directory)

  • 윈도우 : 폴더 (folder)
  • 1단계 디렉터리
  • 트리 구조 디렉터리 (tree-structured directory)
    • 최상위 디렉터리(루트 디렉터리, /), 서브 디렉터리

경로 (path)

  • 디렉터리를 이용해 파일/디렉
  • 절대 경로(absolute path) : 루트 디렉터리에서 시작
  • 상대경로(relative path) : 현재 디렉터리에서 시작

디렉터리 엔트리

  • 디렉터리는 ‘특별한 형태의 파일’
    • 파일 : 파일과 관련된 정보
    • 디렉터리 : 해당 디렉터리에 담겨 있는 대상과 관련된 정보 → 표의 형태
  • 디렉터리 테이블
    • 필수 : 파일이름, 위치를 유추할 수 있는 정보

15-2. 파일 시스템

#파티셔닝 #포매팅 #연속 할당 #연결 할당 #색인 할당 #FAT 파일 시스템 #유닉스 파일 시스템

⚠️ 새 하드 디스크/SSD 등의 보조기억장치를 사용하려면 파티셔닝포매팅을 거쳐야 한다!

파티셔닝 (partitioning)

  • 저장 장치의 논리적인 영역을 구획하는 작업

파티션 (partition)

  • 파티셔닝을 통해 나누어진 영역 하나하나

포매팅 (formatting)

  • 파일 시스템을 설정
    • 파티션마다 다른 파일 시스템을 설정할 수도 있음
  • 어떤 방식으로 파일을 관리할지 결정, 새로운 데이터를 쓸 준비하는 작업
  • 저수준 포매팅, 논리적 포매팅

파일 할당 방법

  • 포매팅까지 끝난 하드 디스크에 파일을 저장하기
  • 운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다
    • 하나의 파일이 보조기억장치에 저장될 때에는 여러 블록에 걸쳐 저장
    • (하드디스크의 가장 작은 저장 단위는 섹터)

파일 할당

  • 연속 할당
  • 불연속 할당
    • 연결 할당
    • 색인 할당
          ┌── 연속 할당
파일 할당 ──│
          │              ┌── 연결 할당
          └── 불연속 할당 ──│
                         └── 색인 할당

연속 할당 (contiguous allocation)

  • 파일이 저장 장치 내에서 연속적인 공간을 차지하도록 블록을 할당
  • 디렉터리 엔트리 : 파일 이름 + 첫 번째 블록 주소
  • 단점
    • 외부 단편화 야기

연결 할당 (linked allocation)

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

  • 파일을 이루는 데이터 블록을 연결리스트로 관리

  • 파일이 여러 블록에 흩어져 저장되어도 무방

  • 디렉터리 엔트리 : 파일 이름 : 첫번째 블록 주소 + 블록 단위의 길이

    • 블록 끝에 다음 블록 주소
    • 마지막 블록은 특별한 표시자 기록 (ex: -1)
  • 단점

    • 반드시 첫번째 블록부터 읽어야 함
      • 임의 접근 속도가 느림
    • 오류 발생 시 해당 블록 이후 블록은 접근이 어려움

    → 오늘날 변형하여 FAT 파일 시스템 사용

색인 할당(indexed allocation)

  • 파일의 모든 블록 주소를 색인 블록이라는 하나의 블록에 모아 관리하는 방식
  • 파일 내 임의의 위치에 접근하기 용이
  • 디렉터리 엔트리 : 파일 이름 + 색인 블록 주소

→ 유닉스 파일 시스템

FAT 파일 시스템

  • 연결 할당 기반 파일 시스템

  • 파일 할당 테이블 (FAT; File Allocation Table)

    • 각 블록에 포함된 다음 블록 주소를 테이블로 관리
  • FAT12, FAT16, FAT32 : 숫자 - 블록을 표현하는 비트 수

  • FAT12

  • 실행 중 FAT가 메모리에 캐시될 경우 임의 접근 속도 개선 가능

  • 디렉터리 엔트리

  • 파일을 읽는 과정

유닉스 파일 시스템

  • 색인 할당 기반 파일 시스템
  • 색인 블록 == i-node

i-node (index-node)

  • 파일이나 디렉토리는 그에 해당하는 하나의 i-node를 가짐
  • 파일의 속성 정보와 15개의 블록 주소 저장 가능

⁉️ 15개 블록 이상을 차지하는 파일은?

  1. 블록 주소 중 12개는 직접 블럭 주소 저장
    • 직접 블록(direct block) : 파일 데이터가 저장된 블록
  2. 충분하지 않다면 13번째 주소에 단일 간접 블록 주소 저장
    • 단일 간접 블록(single indirect block) : 파일 데이터를 저장한 블록주소가 저장된 블록
  3. 충분하지 않다면 14번째 주소에 이중 간접 블록 주소 저장
    • 이중 간접 블록 (double indirect block) : 단일 간접 블록들의 주소가 저장된 블록
  4. 충분하지 않다면 15번째 주소에 삼중 간접 블록(triple indirect block) 주소 저장
  • 디렉터리 엔트리

  • 파일을 읽는 방법

다른 파일 시스템

  • NT 파일 시스템 (NTFS)
  • ext 파일 시스템
  • 저널링 파일 시스템


궁금해요

  1. 유닉스 파일 시스템에서 하나의 간접 블록이 가리키는 데이터 블록은 몇개?

  2. 다른 파일 시스템

    • NT 파일 시스템 (NTFS)
    • ext 파일 시스템

(https://github.com/kangtegong/self-learning-cs/blob/main/file_system/file_system.md)


8주차 퀴즈

  1. 옳지 않은 것을 모두 고르시오
    • 파티셔닝과 포매팅 과정을 거쳐야 파일 시스템을 이용할 수 있다.
    • 연결 할당은 외부 단편화가 발생할 수 있다.
    • 파티션마다 다른 파일 시스템을 이용할 수 있다.
    • 파일과 디렉터리는 전혀 다른 형태로 구성되어 있다.
    • 색인 할당 방식으로 외부 단편화를 해결할 수 있다.
  2. FAT 파일 시스템은 어떠한 문제로 탄생하게 되었는가?
  3. 유닉스 파일 시스템을 이용할 때 i-node에 12개 초과의 데이터를 넣으려면 어떻게 하는가?
정답

1.  2, 4
2.  연결 할당 방식 사용 시 임의 접근이 어렵기 때문에 파티션의 앞부분에 파일 할당 테이블(FAT)를 배치하여 다음 블록주소를 저장해두면 임의 접근에 유리해진다.
3.  i-node 하나에 12개가 초과하는 데이터를 넣을 경우에 13번째 주소부터 단일 간접 블록 주소/ 이중 간접 블록 주소 / 삼중 간접 블록 주소를 저장하여 더 많은 데이터를 저장한다.

Clone this wiki locally