파일 시스템 구조
파일 구조 : 논리 저장 단위 / 관련된 정보의 모음
파일 시스템은 보조 저장 장치(디스크)에 위치함
- 저장하고 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 블록이 기록되어 있다면 전체 리스트를 횡단할 필요가 없음
'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 |