1. 개념 한줄 요약
FCFS 디스크 스케줄링은 디스크 입출력 요청을 먼저 들어온 순서대로 처리하는 가장 기본적인 디스크 접근 관리 방식이다.
2. 쉽게 풀어쓴 설명
컴퓨터에서 파일을 읽거나 저장할 때 저장장치(HDD 또는 SSD)는 디스크 입출력 작업을 수행해야 한다. 여러 프로그램이 동시에 데이터를 요청하면 디스크는 모든 요청을 한 번에 처리할 수 없기 때문에 일정한 순서를 정해 작업을 진행한다.
이때 사용되는 방법 중 하나가 바로 FCFS(First Come First Served) 방식이다. 이름 그대로 먼저 요청된 작업을 먼저 처리하는 구조다.
예를 들어 여러 프로그램이 디스크 접근 요청을 보내면 운영체제는 이 요청을 대기열에 저장하고 가장 먼저 들어온 요청부터 순서대로 처리한다.
쉽게 말해 줄을 선 순서대로 작업을 처리하는 디스크 관리 방식이라고 이해하면 된다.
3. 구조·원리 설명
✔ 디스크 요청 대기열 구조
디스크 입출력 요청이 발생하면 운영체제는 해당 요청을 디스크 대기열에 저장한다. 대기열에는 여러 프로그램이 요청한 작업이 순서대로 등록된다.
이 구조에서 디스크 스케줄러는 대기열에 있는 요청 중 하나를 선택해 디스크 접근 작업을 수행한다.
✔ FCFS 동작 원리
FCFS 방식은 대기열의 순서를 그대로 유지하며 요청을 처리한다. 즉, 가장 먼저 들어온 요청이 가장 먼저 실행된다.
기본적인 처리 과정은 다음과 같다.
① 프로그램에서 디스크 접근 요청 발생
② 요청이 디스크 대기열에 저장
③ 가장 먼저 들어온 요청 선택
④ 디스크 헤드 이동 후 작업 수행
⑤ 다음 요청 처리
이 과정은 요청이 처리될 때마다 반복된다.
✔ 디스크 헤드 이동과 성능 관계
HDD 저장장치에서는 디스크 헤드가 물리적으로 이동하면서 데이터를 읽거나 쓴다. FCFS 방식에서는 요청 순서만 고려하기 때문에 디스크 헤드 이동 거리가 길어질 수 있다.
예를 들어 디스크 요청 위치가 서로 멀리 떨어져 있으면 헤드가 디스크를 계속 이동해야 하므로 처리 시간이 늘어날 수 있다.
✔ 스케줄링 알고리즘 비교 기준
디스크 스케줄링 알고리즘은 다음과 같은 요소에 영향을 받는다.
- 디스크 헤드 이동 거리
- 요청 대기 시간
- 전체 시스템 처리 효율
FCFS는 구조가 단순하지만 이러한 요소를 최적화하지는 않는다.
4. 예시
① 파일 읽기 요청 예시
여러 프로그램이 동시에 파일을 읽으려고 하면 요청이 발생한 순서대로 디스크 접근이 이루어진다.
② 서버 환경 예시
서버에서 여러 사용자 요청이 동시에 발생할 경우 디스크 요청이 대기열에 저장되고 순서대로 처리된다.
③ HDD 환경 예시
디스크 헤드가 여러 위치를 오가면서 데이터를 읽는 과정에서 요청 순서에 따라 이동 거리가 달라질 수 있다.
5. 주의점
❗ 디스크 헤드 이동 증가
요청 순서만 고려하기 때문에 디스크 헤드 이동이 많아질 수 있다.
❗ 평균 대기 시간 증가
일부 작업은 긴 대기 시간을 겪을 수 있다.
❗ 효율성 제한
성능 최적화를 고려하지 않는 단순한 방식이다.
❗ 다른 알고리즘 존재
현대 시스템에서는 SSTF나 SCAN 같은 더 효율적인 디스크 스케줄링 방식이 사용되기도 한다.
6. 요약 정리
FCFS 디스크 스케줄링은 디스크 접근 요청을 발생 순서대로 처리하는 가장 기본적인 스케줄링 방식이다. 구현이 단순하고 공정성을 유지할 수 있지만 디스크 헤드 이동 거리나 처리 효율을 고려하지 않는 구조이기 때문에 성능 측면에서는 한계가 있을 수 있다. 이러한 이유로 실제 시스템에서는 상황에 따라 다른 디스크 스케줄링 알고리즘과 함께 사용되거나 대체되기도 한다.