토픽 94 / 97·비교표
파일 시스템, I/O, 시스템 구조
ext4 vs NTFS vs ZFS vs Btrfs
| 항목 | ext4 | NTFS | ZFS | Btrfs |
|---|
| 저널링 | 있음 | 있음 | CoW (저널 불필요) | CoW |
| 최대 파일 | 16TB | 16TB | 16EB | 16EB |
| 스냅샷 | 없음 | 없음 | 있음 | 있음 |
| 체크섬 | 제한적 | 없음 | 전체 (자가 치유) | 있음 |
| 적합 | Linux 범용 | Windows | NAS/엔터프라이즈 | 스냅샷 필요 시 |
| 권한 | POSIX | ACL | ACL | POSIX |
FAT32 vs NTFS vs ext4
| 항목 | FAT32 | NTFS | ext4 |
|---|
| 파일 크기 제한 | 4GB | 16TB | 16TB |
| 파티션 크기 | 2TB | 256TB | 1EB |
| 저널링 | 없음 | 있음 | 있음 |
| 권한/보안 | 없음 | ACL | POSIX |
| 호환성 | 최고 (모든 OS) | Windows | Linux |
파일 할당: 연속 vs 연결 vs 색인
| 항목 | 연속 할당 | 연결 할당 | 색인 할당 |
|---|
| 접근 | 순차+직접 (빠름) | 순차만 (느림) | 순차+직접 |
| 외부 단편화 | 있음 | 없음 | 없음 |
| 파일 확장 | 어려움 | 용이 | 용이 |
| 사례 | CD-ROM (ISO 9660) | FAT | ext4/NTFS (i-node) |
i-node vs MFT vs FAT
| 항목 | i-node (Unix) | MFT (NTFS) | FAT |
|---|
| 메타데이터 | 분리 (i-node 별도) | 통합 (MFT 엔트리) | 테이블 (클러스터 체인) |
| 구조 | 직접+간접 블록 포인터 | 속성 기반 | 연결 리스트 |
| 대용량 | 삼중 간접 (4TB+) | Extents | 제한적 (4GB) |
Journaling vs Non-Journaling vs CoW
| 항목 | Journaling | Non-Journaling | CoW |
|---|
| 복구 | 저널 재생 (수 초) | fsck (수 시간) | 원자적 (즉시) |
| 성능 | 이중 쓰기 (느림) | 단일 쓰기 (빠름) | 스냅샷 가능 |
| 사례 | ext4, XFS | ext2, FAT | Btrfs, ZFS |
FUSE vs 커널 파일시스템
| 항목 | FUSE (사용자 공간) | 커널 파일시스템 |
|---|
| 실행 공간 | 사용자 공간 | 커널 공간 |
| 안전성 | 높음 (크래시 시 커널 보호) | 낮음 (버그→시스템 크래시) |
| 성능 | 느림 (컨텍스트 스위칭) | 빠름 |
| 개발 | 쉬움 (다양한 언어) | 어려움 (C, 커널 지식) |
디스크 스케줄링 비교
| 알고리즘 | 방식 | 장점 | 단점 |
|---|
| FCFS | 도착 순서 | 공정, 단순 | 긴 헤드 이동 |
| SSTF | 가장 가까운 요청 | 짧은 이동 | 기아 가능 |
| SCAN | 한 방향 끝까지→반대 | 공정, 예측 가능 | 끝 트랙 불이익 |
| C-SCAN | 한 방향만, 처음으로 점프 | 균등한 대기 | 빈 리턴 낭비 |
인터럽트 vs Trap vs Polling
| 항목 | 인터럽트 | Trap (소프트웨어 인터럽트) | Polling |
|---|
| 유형 | 비동기 (하드웨어) | 동기 (소프트웨어) | 동기 (CPU 반복) |
| 발생 | I/O 완료, 타이머 | 시스템 호출, 예외 | CPU가 상태 반복 확인 |
| 효율 | 높음 | 높음 | 낮음 (CPU 낭비) |
DMA vs Programmed I/O vs Interrupt-driven I/O
| 항목 | DMA | Programmed I/O | Interrupt-driven I/O |
|---|
| CPU 개입 | 최소 (설정/완료만) | 전체 (바이트마다) | 부분 (인터럽트 시) |
| 속도 | 빠름 | 느림 | 중간 |
| 적합 | 대량 데이터 전송 | 소량 데이터 | 중간 데이터 |
io_uring vs epoll vs POSIX AIO
| 항목 | io_uring | epoll | POSIX AIO |
|---|
| 방식 | 링 버퍼 (최소 syscall) | 이벤트 기반 (syscall) | 비동기 (제한적) |
| 성능 | 최고 (SQPOLL 시 syscall 0) | 높음 | 중간 |
| 지원 | Linux 5.1+ | Linux | POSIX 표준 |