SCAN 디스크 알고리즘 구조 이해

1. 개념 한줄 요약

SCAN 디스크 알고리즘은 디스크 헤드가 한 방향으로 이동하면서 요청을 순서대로 처리하는 방식으로, 디스크 탐색 시간을 줄이기 위해 사용되는 대표적인 디스크 스케줄링 알고리즘이다.

2. 쉽게 풀어쓴 설명

컴퓨터에서 파일을 읽거나 저장할 때 저장장치에 있는 데이터를 찾아야 한다. 특히 전통적인 하드디스크(HDD)는 디스크 표면 위를 이동하는 읽기·쓰기 헤드가 데이터를 찾기 때문에 접근 순서에 따라 성능 차이가 발생한다.

만약 데이터 요청이 들어온 순서대로 처리한다면 디스크 헤드가 디스크의 여러 위치를 계속 이동하게 된다. 이렇게 되면 불필요한 이동이 많아져 전체 처리 속도가 느려질 수 있다.

이 문제를 해결하기 위해 운영체제는 디스크 접근 요청을 일정한 규칙에 따라 처리한다. 그중 하나가 바로 ‘SCAN 알고리즘’이다.

SCAN 알고리즘은 디스크 헤드가 한 방향으로 이동하면서 해당 경로에 있는 요청을 순서대로 처리한다. 그리고 끝에 도달하면 반대 방향으로 이동하면서 다시 요청을 처리한다.

이 방식은 엘리베이터가 위아래로 움직이며 사람을 태우는 방식과 유사하기 때문에 ‘엘리베이터 알고리즘(Elevator Algorithm)’이라고도 불린다.

3. 구조·원리 설명

✔ 디스크 헤드 이동 구조

하드디스크는 다음과 같은 구조로 이루어져 있다.

✔ 플래터(Platter)
데이터가 저장되는 회전 디스크

✔ 트랙(Track)
디스크 표면의 원형 데이터 경로

✔ 디스크 헤드
데이터를 읽고 쓰는 장치

디스크 헤드는 원하는 트랙 위치로 이동해 데이터를 읽거나 기록한다.

✔ SCAN 알고리즘 기본 동작

SCAN 알고리즘의 기본 흐름은 다음과 같다.

① 디스크 요청 큐 확인
② 현재 헤드 위치 기준으로 요청 정렬
③ 한 방향으로 이동하며 요청 처리
④ 디스크 끝 도달
⑤ 반대 방향으로 이동하며 요청 처리

이 과정을 반복하면서 모든 요청을 처리한다.

✔ 동작 예시

예를 들어 디스크 요청이 다음과 같이 있다고 가정한다.

요청 트랙
20, 35, 70, 90

현재 헤드 위치
50

헤드 이동 방향
증가 방향

처리 과정

① 70 처리
② 90 처리
③ 디스크 끝 도달
④ 방향 변경
⑤ 35 처리
⑥ 20 처리

이 방식은 디스크 이동을 비교적 효율적으로 유지한다.

✔ SCAN 알고리즘 특징

SCAN 방식은 다음 특징을 가진다.

✔ 디스크 이동 방향 유지
✔ 탐색 시간 감소
✔ 요청 처리 균형 유지

이 방식은 단순 FCFS 방식보다 성능이 개선된다.

✔ C-SCAN과의 차이

SCAN 알고리즘과 비슷한 방식으로 C-SCAN이 존재한다.

SCAN
끝에 도달하면 방향을 바꿔 다시 처리

C-SCAN
한 방향으로만 처리하고 끝에 도달하면 처음 위치로 이동

C-SCAN은 요청 대기 시간을 더 균등하게 만든다.

4. 예시로 이해하는 실제 활용

✔ 운영체제 파일 접근

여러 프로그램이 동시에 디스크 접근 요청을 하면 운영체제가 SCAN 방식으로 처리할 수 있다.

✔ 데이터베이스 서버

대량의 디스크 I/O 요청이 발생하는 환경에서는 효율적인 스케줄링이 중요하다.

✔ 대용량 파일 처리

연속적인 데이터 접근 작업에서 디스크 이동을 줄일 수 있다.

5. 주의점과 오해하기 쉬운 부분

❗ 디스크 끝까지 이동해야 한다

SCAN 알고리즘은 요청이 없어도 끝까지 이동할 수 있다.

❗ 일부 요청 지연 가능

헤드 이동 방향 반대쪽에 있는 요청은 대기 시간이 길어질 수 있다.

❗ SSD에서는 영향 감소

SSD는 디스크 헤드 이동이 없기 때문에 SCAN 알고리즘 효과가 제한적이다.

❗ 워크로드 영향

요청 패턴에 따라 알고리즘 효율이 달라질 수 있다.

6. 요약 정리

✔ SCAN은 디스크 스케줄링 알고리즘이다.
✔ 한 방향으로 이동하며 요청을 처리한다.
✔ 엘리베이터 알고리즘이라고도 불린다.
✔ 디스크 이동 효율을 높인다.
✔ C-SCAN과 구조적으로 유사하다.
✔ HDD 환경에서 성능 개선 효과가 있다.

SCAN 디스크 알고리즘 구조를 이해하면, 운영체제가 저장장치 접근 요청을 어떻게 효율적으로 처리하는지 알 수 있다. 이는 디스크 스케줄링과 시스템 I/O 성능을 이해하는 데 중요한 기본 개념이다.

error: Content is protected !!