티스토리 뷰

반응형


디스크 스케줄링이란?

🧩 컴퓨터는 하드디스크에서 어떻게 데이터를 찾을까?

우리는 컴퓨터에서 파일을 열거나 저장할 때, 그 파일은 대부분 하드디스크(HDD)에 들어 있습니다. 요즘 SSD도 많지만, 운영체제 설계의 핵심은 여전히 디스크 장치의 구조를 전제로 설계되어 있죠.

💿 하드디스크의 물리 구조

하드디스크는 원형의 금속 판(플래터)이 몇 장 쌓여 있는 구조입니다. 이 플래터는 고속으로 회전하고, 그 위를 읽는 장치인 헤드(head)가 안쪽과 바깥쪽을 이동하며 데이터를 읽습니다.

이 구조는 CD 플레이어나 턴테이블과도 비슷하지만, 읽는 위치를 잡기 위해선 두 가지 동작이 필요합니다:

  • 디스크 회전: 데이터를 찾기 위해 원하는 위치가 올 때까지 기다려야 함
  • 헤드 이동: 원하는 트랙(원형의 고리 모양)에 맞게 안쪽 또는 바깥쪽으로 이동해야 함

🎯 여기서 중요한 건 “헤드 이동”

헤드가 움직이는 거리가 클수록 → 시간이 오래 걸립니다. → 전기도 많이 씁니다. → 하드디스크 수명도 줄어듭니다.

운영체제는 가능한 한 헤드 이동을 최소화하고 싶어합니다.

🚨 그런데 요청이 여러 개 들어오면?

현실에서는 다양한 프로그램이 동시에 디스크에 요청을 보냅니다.

예를 들어 아래와 같은 요청이 거의 동시에 들어온다고 해봅시다:

  • 요청 A: 10번 트랙
  • 요청 B: 150번 트랙
  • 요청 C: 35번 트랙
  • 요청 D: 120번 트랙

현재 헤드가 50번 트랙에 있을 때, 이 요청들을 어떤 순서로 처리해야 할까요?

❌ 그냥 순서대로 처리하면 생기는 문제

가장 단순한 방식은 도착한 순서대로 처리하는 것입니다. 그러나 실제로는 안팎으로 계속 왕복하면서 많은 시간을 허비하게 됩니다.

이처럼 단순한 순서대로 처리하면 → 헤드의 이동 거리가 커지고응답 시간도 늘어나며성능이 심각하게 떨어질 수 있습니다.

🎛 운영체제의 고민

"헤드의 이동을 가장 효율적으로 줄이려면 요청을 어떤 순서로 처리해야 할까?"

이 고민을 해결하기 위해 등장한 것이 바로 디스크 스케줄링(Disk Scheduling)입니다.

🧠 디스크 스케줄링이란?

디스크 스케줄링은 다음과 같은 절차를 자동으로 수행합니다:

  1. 여러 개의 디스크 요청이 들어오면
  2. 그걸 단순한 순서가 아닌 특정 알고리즘 기준에 따라 정렬해서
  3. 디스크 헤드가 움직일 최적의 경로로 요청을 처리함

즉, 운영체제가 직접 "이 요청을 먼저, 그 다음은 이거" 라고 순서를 정해서 처리하는 것입니다.

❗ 이 구조가 없으면 생기는 실제 문제

  • 헤드는 계속 왕복하며 불필요한 이동을 반복
  • 어떤 요청은 빨리 처리되지만, 어떤 요청은 계속 뒤로 밀림
  • 응답 시간에 큰 편차 → 사용자는 속도 일관성 부족
  • 시스템은 디스크 수명 단축, 전력 소모 증가, 성능 저하

📌 정리: 왜 운영체제는 디스크 스케줄링을 직접 하게 되었을까?

상황 설명
디스크는
물리적으로 움직이는 장치
전자적 연산보다 느리고, 자원이 제한됨
요청은 동시에 많이 들어온다 순서를 정하지 않으면 비효율적
단순 순서대로 처리하면 헤드 이동량 증가, 속도 저하
운영체제가 필요로 한 것 헤드 이동을 줄이면서도 요청을 공정하게 처리할 알고리즘


디스크 스케줄링 알고리즘: FCFS와 SSTF

1️⃣ FCFS (First Come First Served)

💬 어떻게 작동하는가?

이 방식은 이름 그대로, 요청이 들어온 순서대로 디스크가 요청을 처리하는 구조입니다. 운영체제는 요청이 들어올 때마다 대기열(queue)에 넣고, 도착한 순서에 따라 하나씩 꺼내서 디스크에게 넘깁니다.

이 구조는 마치 음식점에서 줄 서서 기다리는 방식과 유사합니다. 먼저 온 사람이 먼저 서비스를 받습니다.

📍 예시로 보기

현재 헤드: 50번 트랙
요청: 20 → 85 → 10 → 40

이동 경로: 50 → 20 → 85 → 10 → 40

이동 거리 계산: 30 + 65 + 75 + 30 = 200

✅ 장점

  • 공정함: 먼저 요청한 사용자가 먼저 응답을 받음
  • 구현이 단순: 별도의 정렬이나 계산 필요 없음

❌ 단점

  • 헤드가 비효율적으로 왕복 → 이동량 증가
  • 응답 시간에 편차 → 사용자 체감 성능 낮아짐

🔎 요약

항목 내용
처리 순서 도착 순서 그대로
장점 공정함, 구현 쉬움
단점 헤드 이동량 큼, 응답 시간 편차
적합한 상황 요청이 적고 트랙 간 차이가 적을 때

2️⃣ SSTF (Shortest Seek Time First)

💬 어떻게 작동하는가?

SSTF는 현재 디스크 헤드가 있는 위치에서 가장 가까운 요청부터 처리하는 방식입니다. 모든 요청에 대해 거리(트랙 차이)를 계산한 뒤, 가장 짧은 거리의 요청을 먼저 선택합니다.

택시가 여러 손님 중에서 가장 가까운 곳에 서 있는 사람을 먼저 태우는 것과 같습니다.

📍 예시로 보기

현재 헤드: 50번 트랙
요청: 20, 85, 10, 40

이동 순서: 50 → 40 → 20 → 10 → 85

이동 거리 계산: 10 + 20 + 10 + 75 = 115

✅ 장점

  • 이동 거리 최소화
  • 응답 시간 평균 개선

❌ 단점

  • 기아 현상(starvation): 먼 요청은 계속 밀릴 수 있음
  • 거리 계산 필요: 매번 재정렬 필요, 구현 복잡도 증가

🔎 요약

항목 내용
처리 순서 가장 가까운 요청부터
장점 헤드 이동 최소화, 응답 속도 개선
단점 기아 발생 가능성, 거리 계산 필요
적합한 상황 요청 분포가 균등하고 실시간성이 필요한 경우


디스크 스케줄링 알고리즘: SCAN과 C-SCAN

3️⃣ SCAN (엘리베이터 알고리즘)

💬 어떻게 작동하는가?

SCAN은 디스크 헤드가 한 방향으로 이동하면서 그 방향에 있는 요청들을 모두 처리한 후, 끝에 도달하면 반대 방향으로 되돌아가며 나머지 요청을 처리하는 방식입니다.

엘리베이터가 위층까지 올라가며 사람들을 태우고, 끝에 도달한 후 아래층으로 내려오며 다시 사람들을 태우는 방식과 같습니다.

📍 예시로 보기

현재 헤드: 50번 트랙
요청 목록: 10, 20, 40, 65, 90, 130
현재 방향: 오른쪽(증가 방향)

처리 순서: 50 → 65 → 90 → 130 → (199) → 40 → 20 → 10

✅ 장점

  • 요청이 한쪽에 몰려 있지 않아도 고르게 처리 가능
  • 기다리면 모든 요청이 반드시 처리됨 → 기아 현상 없음

❌ 단점

  • 반대 방향 요청은 상대적으로 오래 기다려야 함
  • 헤드가 끝까지 이동한 후 방향을 바꾸는 구조로, 중간 요청이 밀릴 수 있음

🔎 요약

항목 내용
처리 순서 한 방향 이동 후, 반대 방향으로 되돌아오며 처리
장점 공정함 확보, 모든 요청 eventually 처리
단점 중간 요청 대기 시간 증가
비유 엘리베이터가 위로 올라갔다가 아래로 내려오는 구조

4️⃣ C-SCAN (Circular SCAN)

💬 어떻게 작동하는가?

C-SCAN은 SCAN과 유사하지만, 헤드가 방향을 바꾸지 않고 한 방향으로만 이동합니다. 끝까지 도달하면, 다시 처음으로 돌아가 같은 방향으로 다시 시작합니다.

엘리베이터가 맨 꼭대기까지 올라간 후, 비워진 채 1층으로 빠르게 내려왔다가 다시 위로 올라가는 구조입니다.

📍 예시로 보기

현재 헤드: 50번 트랙
요청 목록: 10, 20, 40, 65, 90, 130
현재 방향: 오른쪽

처리 순서: 50 → 65 → 90 → 130 → 199 → (0으로 점프) → 10 → 20 → 40

✅ 장점

  • 요청 처리 간격이 균등 → 예측 가능한 응답 시간 제공
  • 편향 없음 → 모든 요청이 균일한 시간 내에 처리됨

❌ 단점

  • 반대 방향 요청은 무시되므로 공회전 구간 발생
  • 실제 요청이 없는 영역도 이동함

🔎 요약

항목 내용
처리 순서 한 방향만 처리, 끝나면 처음부터 반복
장점 응답 시간 균등, 예측 가능
단점 반대 방향 요청 무시, 공회전 발생
비유 엘리베이터가 꼭대기까지 간 후 다시 1층부터 순환

🎯 네 가지 방식 비교 요약

알고리즘 처리 원리 장점 단점
FCFS 도착 순서 그대로 처리 구현 간단, 공정함 이동 거리 비효율
SSTF 가장 가까운 요청부터 처리 헤드 이동 최소화 기아 현상 가능
SCAN 한 방향으로 모두 처리 후 반대 방향 요청 편향 완화, 공정성 향상 중간 요청 대기
C-SCAN 한 방향만 처리, 끝나면 처음부터 반복 응답 시간 균등, 예측 쉬움 공회전 발생
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형