본문 바로가기

Operating System [OS]

[OS] 10. File System Implementation

파일 시스템 구조

파일 구조 : 논리 저장 단위 / 관련된 정보의 모음

파일 시스템은 보조 저장 장치(디스크)에 위치함

  • 저장하고 logical을 physical로 매핑하는 사용자 인터페이스를 제공
  • 데이터를 쉽게 검색할 수 있도록 저장하고 위치시키는 디스크로의 효율적이고 편리한 접근을 제공

디스크는 제자리 다시쓰기와 랜덤 접근을 제공 (in-place rewrite & random access)

  • I/O 전송은 섹터의 블록 단위로 수행

File Control Block (FCB) : 파일에 대한 정보로 구성된 저장 구조 ->
Device Driver는 물리 장치를 제어
파일 시스템은 여러 계층으로 구성됨


Allocation Methods

할당 방법 : 파일에 대해 디스크의 블록이 어떻게 할당되는지 나타냄

 

Contiguous

  • 각 파일은 연속적인 블록의 집합을 차지
  • 대부분의 경우 최상의 성능을 제공
  • 장점 : 간단함 – 시작 주소와 길이만 필요함
  • 문제점 : 파일에 대한 공간 찾기 / 파일 크기 파악 / 외부 단편화 / Compaction(압축)의 필요성

Linked

  • 각 파일은 블록의 Linked List임
  • 각 블록은 다음 블록에 대한 포인터를 포함
  • Compaction 및 외부 단편화가 없음
  • 새 블록이 필요할 때, Free Space Management System이 호출됨
  • 블록을 그룹으로 묶어서 효율성을 증가시키지만 내부 단편화는 늘어나게 됨
  • 신뢰성(Reliability) 문제가 생길 수 있음
  • 블록을 찾는 데에 많은 I/O와 디스크 탐색이 걸릴 수 있음
  • FAT (File Allocation Table) : Linked Allocation의 변형
     - 디스크 블록마다 한 개의 항목을 가지고 다음 디스크 블록을 가리킴
     - 디렉토리 항복은 파일의 첫 번째 블록 번호를 가리킴

Indexed

  • 각 파일은 그것의 데이터 블록의 포인터의 인덱스 블록을 가지고 있음
  • 인덱스 테이블이 필요
  • 랜덤 접근
  • 외부 단편화 없이 동적 접근이 가능하지만 인덱스 블록의 오버헤드가 발생


Free-Space Management

파일 시스템은 사용가능한 블록을 추적하기 위해 Free-Space 리스트를 유지함

Bit Vector / Bit Map (n blocks) 

Bit Map은 추가적인 공간을 요구

  • block size = 4KB = 2¹² bytes / disk size = 2⁴⁰ bytes (1TB) / n = 2⁴⁰/2¹² = 2²⁸ bits (or 32MB)

연속된 파일을 얻기 쉬움

 

디스크의 Linked Free Space List - 쉽게 연속적인 공간을 얻을 수 없음

  • 공간의 낭비가 없음
  • 만약 Free 블록이 기록되어 있다면 전체 리스트를 횡단할 필요가 없음

Linked Free Space List on Disk

 

'Operating System [OS]' 카테고리의 다른 글

[OS] 11.Mass-Storage Systems  (1) 2024.01.03
[OS] 09. File System  (1) 2024.01.03
[OS] 08. Deadlocks  (1) 2024.01.02
[OS] 07. Synchronization Tools  (1) 2024.01.02
[OS] 06. Threads & Concurrency  (2) 2024.01.02