
오늘은 디스크 스케줄링의 대표적인 알고리즘인 FCFS, SSTF, SCAN, C-SCAN을 문제를 직접 풀면서 학습했다.
요청이 들어온 순서 그대로 처리하는 방식이다.
예를 들어 시작 위치가 53이고 Queue가 25, 130, 10이라면:
53 → 25 → 130 → 10
각 요청까지의 이동거리를 계산하여 총 헤드 이동 거리를 구한다.
핵심: Queue 순서 그대로
현재 헤드 위치에서 가장 가까운 요청부터 처리하는 방식이다.
예를 들어 현재 위치가 53이라면 각 요청과의 거리를 비교해서 가장 가까운 요청을 선택한다.
53 → 55
이후 현재 위치가 55가 되었으므로 다시 남은 요청들과의 거리를 비교한다.
현재 위치가 55이고 남은 요청이 25, 85라면:
둘의 거리가 같기 때문에 동률(tie)이 발생한다.
따라서 문제나 수업에서 동률 처리 기준을 제시했는지 확인해야 한다. 별도의 기준이 없다면 어느 쪽을 먼저 처리할지 답이 하나로 고정되지 않을 수 있다.
거리가 같을 때는 헤드의 물리적 무리를 줄이기 위해 기존 진행 방향을 유지하는 것이 기본 표준 규칙입니다..
핵심: 현재 위치에서 가장 가까운 요청을 선택 + 동률 처리 규칙 확인
엘리베이터처럼 한 방향으로 이동하면서 요청을 처리하고, 디스크의 끝까지 이동한 후 방향을 바꾸는 방식이다.
예를 들어 53에서 시작하고 0 방향으로 먼저 이동한다면:
53 → 18 → 9 → 0 → 72 → 120 → ...
여기서 중요한 것은 요청 중 가장 작은 값인 9까지만 가는 것이 아니라 디스크의 끝인 0까지 이동한다는 것이다.
반대로 199 방향이라면 199까지 이동한 후 방향을 바꾼다.
핵심: 한 방향 → 끝까지 → 방향 전환
SCAN과 비슷하지만 한 방향으로만 요청을 처리한다.
예를 들어 53에서 0 방향으로 시작한다면:
53 → 18 → 9 → 0 → 199 → 185 → 150 → ...
0에 도착하면 방향을 바꾸어 처리하는 것이 아니라 반대쪽 끝인 199로 이동한 후 다시 같은 방향으로 처리한다.
핵심: 한 방향 → 끝까지 → 반대쪽 끝으로 이동 → 다시 같은 방향
| 알고리즘 | 핵심 |
|---|---|
| FCFS | 요청 순서대로 처리 |
| SSTF | 현재 위치에서 가장 가까운 요청부터 |
| SCAN | 한 방향으로 끝까지 이동 후 방향 전환 |
| C-SCAN | 한 방향으로 끝까지 이동 후 반대쪽 끝으로 이동 |
디스크 스케줄링 문제는 단순히 처리 순서만 찾는 것이 아니라 각 이동 거리를 계산하여 총 이동 거리까지 구하는 것이 중요하다.
특히 SCAN과 C-SCAN은 디스크의 끝(0 또는 199)을 반드시 고려해야 하며, SSTF에서 같은 거리가 나오는 경우 동률 처리 기준을 확인해야 한다.
수행평가 잘 보셨나여?