컴퓨터 공학/운영체제

[혼공컴운] chapter.15 파일 시스템

hhzinistic 2023. 8. 20. 23:52

2023.08.20 - [컴퓨터 공학/운영체제] - [혼공컴운] chapter.14 가상 메모리

 

[혼공컴운] chapter.14 가상 메모리

2023.08.13 - [컴퓨터 공학/운영체제] - [혼공컴운] chapter.13 교착 상태 [혼공컴운] chapter.13 교착 상태 2023.08.13 - [컴퓨터 공학/운영체제] - [혼공컴운] chapter.12 프로세스 동기화 [혼공컴운] chapter.12 프로

zinistic.tistory.com

 

 

15-1 파일과 디렉터리

  • 파일(file)
    : 하드 디스크나 SSD와 같은 보조기억장치에 저장된 관련 정보의 집합.
    - 속성(attribute): 파일에 관련한 부가 정보. 메타데이터(metadata)라고도 함.

    • 파일 연산을 위한 시스템 호출
      - 파일 생성
      - 파일 삭제
      - 파일 열기
      - 파일 닫기
      - 파일 읽기
      - 파일 쓰기

  • 디렉터리(directory)
    * 폴더(folder): 윈도우 운영체제에서의 디렉터리.

    • 1단계 디렉터리(single-level directory)
      : 모든 파일이 하나의 디렉터리 아래에 있는 구조.
    • 트리 구조 디렉터리(tree-structured directory)
      : 여러 계층을 가진 디렉터리 구조.
      * 최상위 디렉터리는 루트 디렉터리(root directory)라고 부르고 슬래시(/) 로 표현. 

디렉터리 루트 예시



  • 경로(path)
    • 절대 경로(absolute path): 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로.
    • 상대 경로(relative path): 현재 디렉터리 부터 시작하는 경로. 
      * 대부분의 운영체제에서 마침표(.)를 현재 디렉터리, 마침표 두 개(..)를 현재 디렉터리의 상위 디렉터리로 나타냄.

      ex) 위 디렉터리 루트 예시에서 경로
      - a.sh의 절대 경로: /home/minchul/a.sh
      - 현재 디렉터리 경로가 /home 일때 b.c의 상대 경로: minchul/b.c
  • 디렉터리 엔트리
    : 디렉터리에 포함된 대상의 이름들과 그 대상이 보조기억장치 내에 저장된 위치를 유추할 수 있는 정보 등 이 담겨있음.
    * 각각의 행(엔트리)마다 담긴 정보는 파일 시스템 마다 차이가 있음.

디렉터리 테이블/엔트리의 예시

 

 

 

 

 


 

 

 

15-2 파일 시스템

  • 파티셔닝(partitioning): 저장 장치의 논리적인 영역을 구획하는 작업.
    - 파티션(partition): 파티셔닝 작업을 통해 나눠진 구역들.
  • 포매팅(formatting): 파일 시스템을 설정하여 데이터를 어떤식으로 쓸지 결정하는 작업.
    * 포매팅을 할 때 파일 시스템의 종류가 정해짐.

  • 파일 할당 방법
    * 운영체제는 파일과 디렉터리를 블록 단위로 읽고 씀.
    • 연속 할당(contiguous allocation): 보조기억장치 내 연속적인 블록에 파일을 할당하는 방식.
      * 파일을 연속적으로 할당하기 때문에 파일이 삭제된 후 빈 블록들의 크기가 충분히 크지 않을 경우가 생겨 외부 단편화를 발생시키는 단점이 있다.

    • 연결 할당(linked allocation): 각 블록 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 저장하여 파일을 할당하는 방식.
      * 외부 단편화 문제를 해결하지만 임의 접근(random access) 속도가 매우 느리고, 하드웨어 고장 및 오류 발생 시 이후 블록 접근이 불가한 문제가 있음.

    • 색인 할당(indexed allocation): 모든 블록 주소를 색인 블록(index block)에 모아 관리하는 방식.
      * 색인 할당을 사용하는 파일 시스템은 디렉터리 엔트리에 색인 블록 주소 또한 명시함.

연속 할당 예시
연결 할당 예시
색인 할당 예시

 

 

 

  • 파일 시스템 종류
    • FAT 파일 시스템
      : 각 블록에 포함된 다음 블록의 주소를 한 곳에 모아 테이블 형태로 관리하는 시스템.
      *파일 할당 테이블(FAT: file allocation table): 각 블록의 다음 주소가 저장된 테이블.

      < FAT 파일 시스템 파티션 영역 역할 >
      - FAT 영역: FAT가 존재하는 영역.
      - 루트 디렉터리 영역: 루트 디렉터리만을 위한 영역.
      - 데이터 영역: 루트 디렉터리를 제외한 다른 영역들의 디렉터리 테이블이 있는 영역.

    • 유닉스 파일 시스템
      : 색인 할당 기반의 파일 시스템으로 색인 블록을 i-node 라고 부르는 파일 시스템.
      • i-node
        - 파일 속성 정보와 열다섯 개의 블록 주소가 저장됨.
        - 파일마다 i-node가 있고, i-node마다 번호가 부여됨.

        < 한정된 i-node의 크기로 데이터 블록을 가리키는 방식 >
        1. 블록 주소 중 열두 개에는 직접 블록 주소를 저장 
        2. 1 과정 이후 저장할 블록 주소가 남았을 시 13번째 주소에 단일 간접 블록 주소 저장
        * 단일 간접 블록 주소(single indirect block): 파일 데이터를 저장한 블록 주소가 저장된 블록
        3. 2 과정 이후 저장할 블록 주소가 남았을 시 14번째 주소에 이중 간접 블록 주소 저장
        * 이중 간접 블록 주소(double indirect block): 데이터 블록 주소를 저장하는 블록 주소가 저장된 블록
        4. 3 과정 이후 저장할 블록 주소가 남았을 시 15번째 주소에 삼중 간접 블록 주소 저장
        * 삼중 간접 블록 주소(triple indirect block): 이중 간섭 블록 주소가 저장된 블록



FAT ( 마지막 블록일 때 다음 블록 주소를 -1 로 표기 )
FAT 시스템에서 파티션
FAT 시스템에서 디렉터리들의 저장 형식
유닉스 파일 시스템 저장 원리

 

 

 

 

 

 

 

 

 


* 오류 지적은 환영입니다.^^*