혼자 공부하는 컴퓨터 구조 + 운영체제 Section 15. 파일 시스템

jihyelee·2023년 8월 30일
1

achitecture-os

목록 보기
15/15
post-thumbnail
post-custom-banner

강의 링크

파일과 디렉터리

파일 시스템 (file system)

  • 파일과 디렉터리를 관리하는 운영체제 내의 프로그램
  • 한 컴퓨터 내에 여러 개의 파일 시스템을 사용할 수 있음
  • 파일과 디렉터리는 보조기억장치의 데이터 덩이리

파일

  • 보조기억장치에 저장된 관련 정보의 집합
  • 의미있고 관련있는 정보를 모은 논리적 단위
  • 파일을 이루는 정보
    • 파일을 실행하기 위한 정보
    • 부가 정보 (=속성, 메타 데이터)
  • 파일 연산을 위한 시스템 호출
    • 파일 생성/삭제
    • 파일 열기/닫기
    • 파일 읽기/쓰기 등

파일의 속성

디렉터리

  • 윈도우에서는 폴더(folder)
  • 여러 계층으로 파일 및 폴더를 관리하는 트리 구조 디렉터리
  • 최상위 디렉터리(루트 디렉터리, /), 서브 디렉터리
  • 경로
    • 디렉터리를 이용해 파일/디렉터리의 위치, 나아가 이름까지 특정 지을 수 있는 정보
    • 절대 경로
      • 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로
    • 상대 경로
      • 현재 디렉터리에서 자기 자신까지 이르는 경로
  • 디렉터리 연산을 위한 시스템 호출
    • 디렉터리 생성/삭제
    • 디렉터리 열기/닫기/읽기 등

디렉터리 엔트리

  • 많은 운영체제에서는 디렉터리를 특별한 형태의 파일로 간주
  • 즉, 디렉터리는 포함된 정보가 조금 특별한 파일
  • 파일의 내부에는 파일과 관련된 정보들이 있다면, 디렉터리 내부에는 해당 디렉터리에 담겨있는 대상과 관련된 정보들 존재
    • 정보는 보통 테이블(표) 형태로 구성
  • 디렉터리 엔트리
    • 각 엔트리(행)에 담기는 정보
      • 디렉터리에 포함된 대상의 이름
      • 대상이 보조기억장치 내에 저장된 위치(를 유추할 수 있는 정보)
      • 디렉터리 엔트리에 파일 속성을 명시하는 경우도 존재

파일 시스템

  • 파일 시스템이 파일과 디렉터리를 보조기억장치에 할당하고 접근하는 방법
  • 대표적인 파일 시스템의 종류(FAT 파일 시스템, 유닉스 파일 시스템) 학습

파티셔닝과 포매팅

  • 한 번도 사용된 적 없는 새 하드 디스크/SSD는 파티셔닝, 포매팅 하기 전까지는 사용할 수 없음
  • 파티셔닝
    • 저장 장치의 논리적인 영역을 구획하는 작업
  • 포매팅
    • 파일 시스템을 설정
    • 어떤 방식으로 파일을 관리할지 결정, 새로운 데이터를 쓸 준비하는 작업
    • 파일 시스템에는 여러 종류가 있고, 파티션마다 다른 파일 시스템을 설정할 수 있음
  • 포매팅까지 완료하여 파일 시스템을 설정했다면 이제 파일과 디렉터리 생성이 가능해짐

파일 할당 방법

  • 포매팅까지 끝난 하드 디스크에 파일 저장
  • 운영체제는 파일/디렉터리를 블록 단위로 읽고 씀
    • 하나의 파일이 보조기억장치에 저장될 때에는 여러 블록에 걸쳐 저장
    • 하드 디스크의 가장 작은 저장 단위는 섹터이지만 보통 블록 단위로 읽고 씀
  • 종류
    • 연속 할당
    • 불연속 할당
      • 연결 할당
      • 색인 할당

연속 할당

  • 보조기억장치 내 연속적인 블록에 파일 할당
  • 연속된 파일에 접근하기 위해 파일의 첫 번째 블록 주소와 블록 단위의 길이만 알면 됨
  • 디렉터리 엔트리: 파일 이름 & 첫 번째 블록 주소 & 블록 단위 길이 명시
  • 구현이 단순하지만 외부 단편화 야기할 수 있음 (-)
    • 오늘날에는 불연속 할당을 더 많이 사용

불연속 할당 - 연결 할당

  • 각 블록의 일부에 다음 블록의 주소를 저장하여 각 블록이 다음 블록을 가리키는 형태로 할당
  • 파일을 이루는 데이터 블록을 연결 리스트로 관리
  • 불연속 할당의 일종
    • 파일이 여러 블록에 흩어져 저장되어도 무방
  • 디렉터리 엔트리: 파일 이름 & 첫 번째 블록 주소 & 블록 단위의 길이
  • 반드시 첫 번째 블록부터 하나씩 읽어들여야 함 (-)
    • 임의 접근 속도가 상대적으로 느림
  • 오류 발생 시 해당 블록 이후 블록은 접근이 어려움 (-)

불연속 할당 - 색인 할당

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

파일 시스템 살펴보기

FAT 파일 시스템

  • 연결 할당 기반 파일 시스템
  • 연결 할당의 단점을 보완
    • 각 블록에 포함된 다음 블록 주소를 한데 모아 테이블 (FAT; File Allocation Table)로 관리
    • FAT가 메모리에 캐시될 경우 느린 임의 접근 속도 개선 가능
  • FAT 파일 시스템의 파티션 영역
    • 예약 영역 - FAT 영역 - 루트 디렉터리 영역 - 데이터 영역
  • 디렉터리 엔트리
    • 파일 이름, 확장자, 속성, 예약 영역, 생성 시간, 마지막 접근 시간, 마지막 수정 시간, 시간 블록, 파일 크기

유닉스 파일 시스템

  • 색인 할당 기반 파일 시스템
  • 색인 블록 == i-node
    • 파일의 속성 정보와 15개의 블록 주소 저장 가능
    • 만약 블록 주소가 15개를 초과한다면
        1. 블록 주소 중 12개에는 직접 블록 주소 저장
        • 직접 블록 = 파일 데이터가 저장된 블록
        1. 1번으로 충분하지 않다면 13번째 주소에 단일 간접 블록 주소 저장
        • 단일 간접 블록 = 파일 데이터를 저장한 블록 주소가 저장된 블록
        1. 2번으로 충분하지 않다면 14번째 주소에 이중 간접 블록 주소 저장
        • 이중 간접 블록 = 단일 간접 블록들의 주소를 저장하는 블록
        1. 3번으로 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소 저장
        • 삼중 간접 블록 = 이중 간접 블록들의 주소를 저장하는 블록
  • 디렉터리 엔트리
    • i-node가 파일 시스템의 핵심
    • i-node 번호, 파일 이름으로 구성
profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab
post-custom-banner

0개의 댓글