디스크 스케줄링
기술노트
💿 디스크 스케줄링 (FCFS, SSTF, SCAN 등)
디스크 스케줄링은 운영체제(OS)가 디스크의 입출력(I/O) 요청을 처리할 때, 여러 요청 중 어떤 순서로 디스크 헤드를 이동시켜 데이터를 읽거나 쓸지 결정하는 알고리즘입니다. 디스크의 물리적인 특성(헤드 이동 시간)을 고려하여, 디스크 I/O의 효율성을 높이고 평균 응답 시간을 최소화하는 것이 목표입니다.
🤔 디스크 스케줄링은 왜 필요한가?
하드 디스크는 데이터를 읽거나 쓰기 위해 헤드를 물리적으로 이동시켜야 합니다. 이 헤드 이동 시간(탐색 시간, Seek Time)은 CPU의 연산 속도에 비해 매우 느립니다. 따라서 여러 개의 디스크 I/O 요청이 동시에 발생했을 때, 어떤 순서로 처리하느냐에 따라 전체적인 디스크 성능이 크게 달라집니다.
디스크 스케줄링은 헤드의 불필요한 이동을 줄여, 디스크 I/O의 처리량을 높이고 응답 시간을 단축시킵니다.
📚 주요 디스크 스케줄링 알고리즘
- FCFS (First-Come, First-Served) : 가장 먼저 도착한 요청을 먼저 처리하는 가장 간단한 방식입니다. (큐(Queue) 사용)
> * 장점: 구현이 간단하고 공정합니다. > * 단점: 헤드의 불필요한 이동이 많아 비효율적일 수 있습니다.
- SSTF (Shortest Seek Time First) : 현재 헤드 위치에서 가장 가까운 트랙에 있는 요청을 먼저 처리하는 방식입니다.
> * 장점: 헤드 이동 거리를 최소화하여 평균 응답 시간을 단축합니다. > * 단점: 특정 위치의 요청이 계속해서 들어오면, 멀리 있는 요청은 영원히 처리되지 못하는 '기아 현상(Starvation)'이 발생할 수 있습니다.
- SCAN (Elevator Algorithm) : 헤드가 디스크의 한쪽 끝에서 다른 쪽 끝으로 이동하면서, 그 경로에 있는 모든 요청을 처리하고, 끝에 도달하면 방향을 바꿔 반대쪽 끝으로 이동하며 요청을 처리하는 방식입니다. (엘리베이터와 유사)
> * 장점: SSTF의 기아 현상을 해결하고, 헤드 이동이 효율적입니다. > * 단점: 헤드가 방금 지나간 방향의 요청은 오래 기다려야 합니다.
- C-SCAN (Circular SCAN) : SCAN 방식과 유사하지만, 헤드가 한쪽 끝에서 다른 쪽 끝으로 이동하며 요청을 처리한 후, 다시 시작점으로 돌아올 때는 요청을 처리하지 않고 한 방향으로만 이동합니다. (원형 큐와 유사)
> * 장점: SCAN보다 더 균일한 대기 시간을 제공합니다.
💡 정보처리기사 핵심 Point
- 디스크 스케줄링은 디스크 I/O의 성능을 최적화하는 핵심 기술입니다.
- 정보처리기사 시험에서는 각 알고리즘의 개념, 동작 방식, 장단점, 그리고 특정 요청 순서에 대한 헤드 이동 거리 계산 문제가 자주 출제됩니다.
- 특히 FCFS, SSTF, SCAN, C-SCAN은 반드시 정확히 이해하고 계산할 수 있어야 합니다.