운영체제 따라잡기

디스크 스케줄링

meellon 2026. 7. 4. 05:00

학습 목표

탐색 시간(seek)·회전 지연(rotational latency) 이 디스크 I/O 지연에 미치는 영향을 설명할 수 있다.

FCFS·SSTF·SCAN(엘리베이터) 디스크 스케줄링의 동작과 트레이드오프를 비교할 수 있다.

디스크 스케줄러가 I/O 요청 큐를 어떻게 재정렬하는지 설명할 수 있다.

RAID 레벨 0·1·5의 아이디어와 목적을 설명할 수 있다.

문제 상황

  • DB가 랜덤 read인데 디스크 utilization 100% — 탐색이 대부분
    • 헤드가 실린더를 왔다 갔다
  • SSD로 바꿨더니 seek 개념이 달라졌다
    • FTL·wear leveling — HDD 스케줄링과 구분
  • RAID5 배열 하나 깨졌는데 rebuild 중 성능이 죽는다
    • 패리티 재계산 I/O
  • iostat -xawait, svctm — 큐잉·서비스 시간

파일 시스템 개념을 봤다. 이번엔 디스크 헤드를 어떤 순서로 움직일지 — 블록 I/O 스케줄링이다.

1. 디스크 I/O 비용

HDD는 플래터·헤드 구조다. 요청은 섹터(블록) 단위지만, 지연은 크게 두 가지다.

비용 설명
탐색(seek) 헤드를 목표 실린더(track) 로 이동 — ms 단위, 가장 큼
회전 지연 디스크가 목표 섹터가 헤드 아래 올 때까지 회전
전송(transfer) 섹터 데이터 읽기/쓰기
  • 실린더: 여러 플래터에서 같은 반지름 — seek는 실린더 번호로 표현
  • OS는 논리 블록(LBA) → 컨트롤러가 물리 주소 변환
  • SSD: seek 없음, erase/program 단위·GC — 스케줄러는 NVMe 큐·병합에 초점

2. 디스크 스케줄링 문제

여러 프로세스 I/O 요청이 에 쌓인다. 헤드 이동을 줄이면 처리량·평균 지연이 좋아진다.

알고리즘 동작 장점 단점
FCFS 도착 순서 공평·기아 없음 탐색 경로 최악
SSTF 가장 가까운 실린더 먼저 탐색 감소 먼 실린더 기아
SCAN 한 방향으로 쓸며 서비스, 끝에서 반전 SSTF보다 공평 최근 지나친 요청은 대기
C-SCAN 한 방향만 서비스, 끝에서 처음으로 점프 대기 시간 균등화 반대 방향 요청 불리
LOOK / C-LOOK SCAN/C-SCAN을 디스크 끝이 아니라 마지막 요청에서 반전    
  • Linux elevator: mq-deadline, bfq, kyber 등 — SSD/HDD 혼합 환경
  • 요청 병합: 인접 LBA 요청을 하나로 — 스케줄링 전 단계

3. SCAN / LOOK 예시

헤드가 실린더 53에 있고, 큐에 98, 183, 37, 122, 14, 124, 65, 67. 위쪽(증가) 으로 가다 마지막 요청(183) 에서 반전 — LOOK 변형.

LOOK 순서 (53에서 증가 방향):
65 → 67 → 98 → 122 → 124 → 183 → 반전 → 37 → 14

항목
총 탐색 거리(대략) (183−53) + (183−14) = 299 실린더
FCFS(큐 순) 훨씬 긴 왕복 가능
  • SSTF는 53에서 가장 가까운 65부터 — 국소 최적, 멀리 있는 183·14는 밀릴 수 있음
  • 실무 HDD는 SCAN 계열 + 타임아웃으로 기아 완화

4. RAID 개요

RAID(Redundant Array of Independent Disks) — 여러 디스크를 묶어 성능·가용성을 높인다.

레벨 아이디어 용도 장애
RAID 0 스트라이핑 — 블록을 디스크에 나눔 속도 디스크 1개 고장 시 전체 손실
RAID 1 미러링 — 동일 데이터 복제 가용성 한쪽 고장 시 다른 쪽 서비스
RAID 5 스트라이핑 + 패리티 한 디스크 분량 용량·가용성 균형 1디스크 고장까지 복구 가능, rebuild 부담
  • RAID 10(1+0): 미러 + 스트라이프 — DB에서 흔함
  • 하드웨어 RAID vs 소프트웨어 RAID(mdadm, ZFS)
  • 클라우드 EBS volume·분산 스토리지는 내부적으로 유사 개념

5. HDD vs SSD 스케줄링

  HDD SSD
병목 seek + rotation GC, write amplification
스케줄러 elevator, 방향 스캔 의미 있음 큐 깊이, 병렬 채널
정렬 순차 I/O 유리 큰 덩어리도 내부 병렬
  • DB random read는 SSD가 압도적 — HDD 튜닝은 여전히 레거시·백업 미디어
  • TRIM/discard: 삭제 블록 힌트 — FTL GC 도움

6. 정리

  • 디스크 지연 = 탐색 + 회전 + 전송, HDD는 탐색 최소화가 핵심
  • FCFS·SSTF·SCAN은 헤드 이동 트레이드오프 — SCAN은 기아 완화
  • RAID는 스트라이프·미러·패리티로 속도·내결함성
  • 다음: I/O 시스템, 드라이버, DMA

다음에 다룰 것

  • I/O 시스템
  • I/O 하드웨어, 드라이버, DMA, 인터럽트

해당 내용은 Operating System Concepts, 10/E (Avraham Silberschatz, Peter Baer Galvin, Greg Gagne) 의 내용을 기반으로 합니다.

'운영체제 따라잡기' 카테고리의 다른 글

버퍼링과 캐싱  (0) 2026.07.06
I/O 시스템  (0) 2026.07.05
파일 시스템 개념  (0) 2026.07.03
세그멘테이션과 군집화  (0) 2026.07.02
가상 메모리  (0) 2026.07.01