오래된 Unix 파일 시스템
장점
- 단순함.
단점
- 낮은 성능
- 디스크를 RAM처럼 사용: 데이터를 임의의 위치에 저장하여 잦은 헤드 이동 발생
- 512바이트의 작은 블록 크기
- 단편화: 빈 공간 관리가 효율적이지 못해 디스크 공간이 조각나고, 파일이 여러 조각으로 나뉘어 저장.
이러한 데이트 블럭 영역에서 B와 D를 삭제하면
이런 상태가 된다.
데이터가 삭제되어도 연속된 청크가 아닌 두 블럭으로 단편화되어, 후 네 블럭으로 구성된 파일 E가 들어와도
이런 형태를 유지하기에, 파일 E를 읽을 때 포인터의 위치를 변경해줘야하는 번거로움을 겪는다.
FFS의 핵심 아이디어: 디스크에 대한 이해
- 디스크의 물리적인 특성을 고려하여 파일 시스템의 성능 개선.
- 기존 오래된 Unix 파일 시스템 인터페이스와 호환성을 유지함.
FFS의 주요 개선 사항
- 실린더 그룹
- 디스크를 실린더 그룹으로 나누어 데이터와 메타데이터를 지역적으로 저장.
- 동일한 디렉터리에 속한 파일을 가깝게 배치하여 디스크 헤드 이동 최소화.
- 관련 데이터의 근접 배치
- 디렉터리와 해당 파일은 동일한 실린더 그룹에 배치.
- 관련 없는 파일은 서로 다른 실린더 그룹에 배치.
- 슈퍼블록 복제
- 각 실린더 그룹에 슈퍼블록 복제본을 저장하여 데이터 손실 방지.
- 비트맵 사용
- 아이노드와 데이터 블록의 할당 상태를 추적하여 단편화 감소.
- 대용량 파일 예외 처리
- 큰 파일을 여러 그룹에 분산 저장하여 지역성 유지 및 성능 저하 완화.
- 서브 블록
- 작은 파일을 저장할 때 4KB 블록 전체를 낭비하지 않고 필요한 만큼의 서브 블록만 할당.
- 매개화된 배치
- 디스크의 성능 매개변수를 검출하여 최적의 배치 간격을 결정하는 매개화 기법 사용.
FFS의 성능 원칙
- 지역성
- 관련 데이터가 디스크 상에서 물리적으로 가까운 위치에 배치되어야 성능이 향상.
- 디렉터리 트리 상의 파일 접근 패턴을 분석하여 지역성을 확인.
- 할당 정책의 합리성
- 디렉터리 내 파일 접근의 지역성이 실제로 높음.
- 디렉터리와 파일 간의 물리적 근접성이 성능에 기여.
'CS' 카테고리의 다른 글
[CS] 신뢰적인 데이터 전송(Reliable Data Transfer) (0) | 2025.01.17 |
---|---|
[CS] HTTP의 비지속적 연결과 지속적 연결, 메시지 형식 (0) | 2025.01.10 |
[CS] 페이징: 더 빠른 주소 변환을 위한 TLB 기법 (3) | 2024.12.22 |
[CS] 멀티프로세서 스케줄링(Multiprocessor Scheduling) (0) | 2024.12.16 |
[CS] 자바 실행 과정 및 JVM (0) | 2024.12.08 |