디스크 스케줄링 알고리즘의 필요성
-
디스크 입출력은 시스템에서 가장 느린 작업 중 하나이므로, 효율적인 스케줄링이 필요함.
-
입출력 요청이 많을 경우, 올바른 스케줄링을 통해 응답 시간을 단축하고 처리 속도를 높일 수 있음.
-
불필요한 디스크 이동을 줄여 하드디스크의 수명을 연장할 수 있음.
주요 디스크 스케줄링 알고리즘
디스크 스케줄링에는 다양한 방식이 있으며, 각 알고리즘마다 장점과 단점이 존재합니다.
알고리즘 | 설명 |
---|---|
FCFS (First-Come, First-Served) | 요청 순서대로 처리하는 방식, 단순하지만 비효율적일 수 있음 |
SSTF (Shortest Seek Time First) | 가장 가까운 요청을 먼저 처리하여 탐색 시간을 최소화함 |
SCAN (Elevator Algorithm) | 헤드가 한 방향으로 이동하며 요청을 처리한 후, 끝에 도달하면 반대 방향으로 이동 |
C-SCAN (Circular SCAN) | SCAN과 유사하지만, 끝에 도달하면 다시 처음으로 이동하여 요청을 처리 |
LOOK | SCAN과 유사하지만, 가장 먼 요청까지만 이동하여 불필요한 움직임을 줄임 |
C-LOOK | LOOK과 유사하지만, 끝에 도달하면 다시 처음으로 이동 |
알고리즘별 상세 설명
FCFS (First-Come, First-Served)
가장 단순한 알고리즘으로, 요청이 들어온 순서대로 처리합니다. 구현이 간단하지만, 요청이 순차적으로 배치되지 않은 경우 탐색 시간이 길어질 수 있습니다.
SSTF (Shortest Seek Time First)
가장 가까운 트랙에 위치한 요청을 먼저 처리하는 방식으로, 탐색 시간을 최소화합니다. 하지만 특정 요청이 계속해서 우선 처리되어 일부 요청이 무한정 대기할 수 있는 기아 현상(Starvation) 이 발생할 가능성이 있습니다.
SCAN (엘리베이터 알고리즘)
디스크 헤드가 한 방향으로 이동하면서 요청을 처리한 후, 끝에 도달하면 반대 방향으로 이동하여 다시 요청을 처리하는 방식입니다. 디스크 엘리베이터 알고리즘이라고도 불리며, SSTF보다 공정한 처리 방식입니다.
C-SCAN (Circular SCAN)
SCAN과 유사하지만, 끝에 도달하면 다시 처음으로 돌아가서 요청을 처리합니다. 특정 방향으로만 스캔하여 일관된 응답 시간을 보장합니다.
LOOK
SCAN 알고리즘과 유사하지만, 마지막 요청까지만 이동한 후 반대 방향으로 변경하여 불필요한 움직임을 줄입니다.
C-LOOK
LOOK 알고리즘과 유사하지만, 끝까지 이동한 후 처음으로 돌아가 요청을 처리합니다.
디스크 스케줄링 알고리즘 비교
각 알고리즘의 장점과 단점을 비교하면 다음과 같습니다.
알고리즘 | 장점 | 단점 |
FCFS | 구현이 단순하고 공정함 | 탐색 시간이 길어질 수 있음 |
SSTF | 탐색 시간이 최소화됨 | 기아 현상이 발생할 가능성이 있음 |
SCAN | 전체적으로 공정한 분배 가능 | 응답 시간이 일정하지 않을 수 있음 |
C-SCAN | 일정한 응답 시간 보장 | 다시 처음으로 돌아가야 하므로 이동 거리가 증가 |
LOOK | 불필요한 이동 최소화 | 응답 시간이 일정하지 않을 수 있음 |
C-LOOK | LOOK보다 응답 시간이 일정함 | 다시 처음으로 돌아가야 하므로 이동 거리가 증가 |
결론
디스크 스케줄링 알고리즘은 시스템 성능을 향상시키는 중요한 요소 중 하나입니다. 사용자의 요구 사항과 시스템 환경에 따라 적절한 알고리즘을 선택하는 것이 필요합니다. 일반적으로 SSTF는 탐색 시간을 최소화하지만, 기아 현상이 발생할 수 있으며, SCAN과 C-SCAN은 보다 공정한 방식으로 동작합니다.
디스크 RAID(Redundant Array of Independent Disks)
페이지 관리 방식 👆