WIPIVERSE

입출력 스케줄링

정의
입출력 스케줄링(I/O scheduling)은 운영체제(OS)에서 디스크, 네트워크, 저장 장치 등과 같은 입출력 장치에 대한 요청을 효율적으로 처리하기 위해 요청 순서를 결정하고 관리하는 메커니즘이다. 이 과정은 장치의 물리적 특성 및 성능을 고려하여 전체 시스템의 목표인 응답 시간 감소, 처리량 향상, 공정성 확보 등을 달성한다.

주요 목적

  1. 성능 향상

    • 디스크와 같은 회전식 매체에서는 헤드 이동 거리를 최소화함으로써 접근 시간을 줄인다.
    • SSD와 같은 비회전식 매체에서는 병렬 처리와 쓰기 증폭을 감소시킨다.
  2. 공정성 보장

    • 여러 프로세스가 동시에 I/O 요청을 보낼 때, 특정 프로세스가 과도하게 지연되지 않도록 공정성을 유지한다.
  3. 자원 활용 효율화

    • I/O 장치의 대기 시간을 최소화하고, CPU와 메모리와 같은 다른 시스템 자원의 활용률을 높인다.

대표적인 스케줄링 알고리즘

알고리즘 주요 특징 적용 사례
FCFS (First-Come, First-Served) 요청이 들어온 순서대로 처리 간단한 구현이 요구되는 환경
SSTF (Shortest Seek Time First) 현재 헤드 위치에서 가장 가까운 트랙을 우선 디스크 헤드 이동 거리 최소화
SCAN (Elevator) 헤드가 한 방향으로 이동하며 요청을 처리하고, 끝에 도달하면 반대 방향으로 이동 디스크에서 헤드 이동을 일정하게 유지
C-SCAN (Circular SCAN) SCAN과 유사하지만, 헤드가 끝에 도달하면 처음 위치로 빠르게 되돌아가서 같은 방향만 처리 공정성 강화
LOOK / C-LOOK 실제 요청이 존재하는 영역까지만 이동, 불필요한 이동 최소화 효율적인 디스크 접근
Deadline 각 요청에 마감 시간을 지정하고, 마감 시간이 임박한 요청을 우선 실시간 시스템에서 사용
CFQ (Completely Fair Queuing) 각 프로세스에게 동등한 I/O 시간 할당 리눅스 커널에서 사용 (예전 버전)
BFQ (Budget Fair Queueing) CFQ를 개선한 버전으로, 보다 정밀한 예산 기반 할당 리눅스 3.13 이후 커널에 도입

운영체제에서의 구현

  • 리눅스(Linux): 블록 디바이스 계층에서 다중 큐 구조와 함께 다양한 스케줄러(예: bfq, mq-deadline, kyber 등)를 제공한다. 커널 파라미터를 통해 기본 스케줄러를 선택하거나 사용자 정의 스케줄러를 로드할 수 있다.
  • 윈도우(Windows): NTFS 파일 시스템 및 스토리지 서브시스템에서 I/O 스케줄링을 내부적으로 수행한다. 일반 사용자에게는 구체적인 스케줄러 선택 옵션이 제공되지 않는다.
  • macOS: XNU 커널은 디스크 I/O를 관리하기 위해 자체적인 스케줄링 메커니즘을 사용한다. 자세한 구현 세부사항은 공개되지 않았다.

관련 용어

  • I/O 큐(I/O queue): 입출력 요청이 대기하는 자료구조.
  • 요청 대기 시간(Latency): 요청이 처리되기까지 걸리는 시간.
  • 처리량(Throughput): 일정 시간 내에 처리된 I/O 요청 수.
  • 공정성(Fairness): 시스템 내 모든 프로세스가 동등한 기회를 갖는 정도.

참고 문헌

  • Silberschatz, A., Galvin, P. B., & Gagne, G. (2022). Operating System Concepts (10th ed.). Wiley.
  • Bovet, D. P., & Cesati, M. (2005). Understanding the Linux Kernel (3rd ed.). O'Reilly Media.
  • McKenney, J., & Levy, H. (2020). “Linux I/O schedulers: An overview.” Linux Journal, 263, 12‑19.

요약
입출력 스케줄링은 시스템 전반의 효율성을 향상시키기 위해 I/O 요청의 순서를 전략적으로 결정하는 핵심적인 운영체제 기능이다. 다양한 알고리즘이 장치 특성과 운영 환경에 따라 선택·조정되며, 현대 OS에서는 이러한 메커니즘을 통해 높은 성능과 공정성을 동시에 달성한다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기