1. 개념 한줄 요약
디스크 스케줄링 알고리즘은 저장장치의 읽기·쓰기 요청 순서를 효율적으로 정렬해 디스크 접근 시간을 줄이고 시스템 성능을 높이기 위한 운영체제의 작업 관리 방식이다.
2. 쉽게 풀어쓴 설명
컴퓨터에서 파일을 읽거나 저장할 때는 저장장치에 접근해야 한다. 특히 하드디스크(HDD)는 내부에 회전하는 디스크와 읽기·쓰기 헤드가 존재하기 때문에 데이터 위치에 따라 접근 시간이 달라진다.
예를 들어 디스크의 서로 멀리 떨어진 위치에 있는 데이터를 순서 없이 계속 접근하면 헤드가 계속 이동해야 하므로 시간이 오래 걸린다. 이런 상황이 반복되면 전체 시스템 성능이 떨어질 수 있다.
이 문제를 해결하기 위해 운영체제는 디스크 접근 요청을 일정한 규칙에 따라 정렬해 처리한다. 이러한 방식이 바로 ‘디스크 스케줄링 알고리즘(Disk Scheduling Algorithm)’이다.
디스크 스케줄링은 요청을 효율적인 순서로 처리해 디스크 헤드 이동을 최소화하고 데이터 접근 시간을 줄이는 것을 목표로 한다.
3. 구조·원리 설명
✔ 디스크 접근 구조 이해
전통적인 하드디스크는 다음 구조로 이루어져 있다.
✔ 플래터(Platter)
데이터가 저장되는 회전 디스크
✔ 트랙(Track)
디스크 표면의 원형 데이터 경로
✔ 섹터(Sector)
데이터 저장 단위
✔ 디스크 헤드
데이터 읽기·쓰기 장치
데이터 위치에 따라 헤드 이동 시간이 발생한다.
✔ 디스크 접근 시간 요소
디스크 접근 시간은 크게 세 가지 요소로 구성된다.
① 탐색 시간(Seek Time)
헤드가 목표 트랙으로 이동하는 시간
② 회전 지연(Rotational Delay)
디스크 회전으로 데이터 위치가 도착할 때까지 기다리는 시간
③ 전송 시간(Transfer Time)
실제 데이터 읽기·쓰기 시간
이 중 탐색 시간이 가장 큰 영향을 준다.
✔ 대표적인 디스크 스케줄링 알고리즘
운영체제는 여러 알고리즘을 사용해 요청 순서를 결정한다.
① FCFS (First Come First Served)
요청이 들어온 순서대로 처리하는 방식이다.
특징
✔ 구현이 단순
✔ 디스크 이동이 많아질 수 있음
② SSTF (Shortest Seek Time First)
현재 위치에서 가장 가까운 요청을 먼저 처리한다.
특징
✔ 탐색 시간 감소
✔ 특정 요청이 오래 기다릴 수 있음
③ SCAN (엘리베이터 알고리즘)
디스크 헤드가 한 방향으로 이동하며 요청을 처리한다.
특징
✔ 엘리베이터 이동 방식과 유사
✔ 비교적 안정적인 성능
④ C-SCAN (Circular SCAN)
한 방향으로만 요청을 처리하고 끝에 도달하면 처음 위치로 이동한다.
특징
✔ 응답 시간 균일
✔ 서버 환경에서 유리
✔ SSD 환경 변화
SSD는 HDD와 달리 디스크 헤드 이동이 존재하지 않는다.
그래서 SSD에서는 전통적인 디스크 스케줄링의 영향이 상대적으로 작다. 대신 다음 요소가 중요해진다.
✔ 컨트롤러 큐 관리
✔ 병렬 채널 처리
✔ 웨어레벨링
4. 예시로 이해하는 디스크 작업 처리
✔ 파일 읽기 요청
여러 프로그램이 동시에 파일을 요청하면 운영체제가 요청 순서를 정렬해 처리한다.
✔ 데이터베이스 서버
대량의 디스크 요청이 발생하는 서버 환경에서는 효율적인 스케줄링이 매우 중요하다.
✔ 운영체제 파일 접근
운영체제는 디스크 요청 큐를 관리해 전체 시스템 성능을 유지한다.
5. 주의점과 오해하기 쉬운 부분
❗ HDD와 SSD 차이
디스크 스케줄링은 HDD에서 더 큰 영향을 미친다.
❗ 응답 시간과 공정성 문제
일부 알고리즘은 특정 요청이 오래 대기할 수 있다.
❗ 운영체제별 구현 차이
리눅스, 윈도우 등 운영체제마다 스케줄링 방식이 다를 수 있다.
❗ 워크로드 영향
디스크 요청 패턴에 따라 알고리즘 효율이 달라진다.
6. 요약 정리
✔ 디스크 스케줄링은 저장장치 접근 순서를 관리한다.
✔ 디스크 헤드 이동을 최소화하는 것이 목표다.
✔ FCFS, SSTF, SCAN 등의 알고리즘이 존재한다.
✔ HDD 환경에서 특히 중요하다.
✔ SSD에서는 영향이 상대적으로 작다.
✔ 시스템 I/O 성능에 중요한 요소다.
디스크 스케줄링 알고리즘 개념을 이해하면, 운영체제가 저장장치 접근을 어떻게 최적화하는지 알 수 있다. 이는 컴퓨터 저장장치 구조와 시스템 성능을 이해하는 데 중요한 기본 개념이다.