block I/O scheduler

디스크 스케줄링은 seek 절감과 deadline 보장의 절충이다

디스크 스케줄링은 HDD의 seek/rotation 비용을 줄이기 위한 큐 재배열입니다. SSD에서는 물리 헤드 이동이 없으므로 deadline과 공정성이 더 중요해집니다.

큐 재배열
01request queue 02FCFS / SSTF 03SCAN / C-SCAN 04deadline / CFQ
request queue

읽기·쓰기 요청은 block number, arrival time, deadline을 가진 큐 항목으로 쌓인다.

SSTF risk

HDD는 가까운 cylinder 순서가 이득이지만 먼 요청이 계속 밀리는 starvation을 만들 수 있다.

SCAN / C-SCAN

엘리베이터처럼 한 방향으로 훑어 seek를 줄이고 되돌아오는 비용을 통제한다.

deadline / CFQ

너무 오래 기다린 요청은 위치 이득보다 응답 시간 보장과 프로세스별 공정성을 우선한다.

장치별 해석

HDD는 헤드 이동을 줄이는 SCAN 계열, SSD와 NVMe는 물리 seek보다 deadline, 병합, 큐 깊이, 공정성의 영향이 커집니다.