본문 바로가기

OS/Windows

Disk Scheduling

디스크 스케줄링이란?
- 디스크 입출력을 위해 대기하고 있는 요구 ( Request )들 중에서 어느 요구를 먼저 처리할 것인가를 결정
- 대기 중인 요청 들에 대해 서비스하는 순서를 어떻게 결정하는가에 따라 디스크 시스템의 성능이 크게 달라지기 때문이다.

< 디스크 스케줄링 대상 >
탐구시간 ( Seek Time ) - 데이터의 기록/판독을 위해 디스크 헤드를 필요한 실린더로 이동시키는 데 소요되는 시간
회전지연시간 ( Rotational Delay, Latency Time ) - 디스크 헤드가 지정된 실린더에 도착한 후 지정된
                                                                                섹터가 헤드 아래에 도착 할 때까지 기다리는 시간
데이터전송시간 ( Data Transmission Time ) - 디스크 주소 상의 표면 번호에 따라 해당 섹터를 읽어 전송하거나
                                                                        전동된 데이터를 해당 섹터에 기록하는 시간

데이터 접근 시간 ( Data Access Time ) - 탐구 시간 + 회전 지연 시간 + 데이터 전송 시간
비중 - 탐구 시간 > 회전 지연 시간 > 데이터 전송 시간

< 탐구 시간 최적화 스케줄링 >
FCFS ( First Come First Served ) 스케줄링
- 디스크 입출력 요구들이 도착한 순서대로 서비스 하는 기법, 디스크 입출력에 대한 부하가 작을 경우에 적합
# 처음 디스크 헤드 위치 - 100번 실린더
# 총 이동거리 - 60 + 40 + 110 + 80 + 150 + 170 + 70 + 10 = 690

SSTF ( Shortest Seek Time First ) 스케줄링
- 응답 큐에 대기 중인 요구들 중, 현재 헤드의 위치부터 가장 가까운 요구를 먼저 서비스하는 방식
- 큐의 요구들을 처리하는 동안 헤드의 이동 거리 극소화 -> 단위 시간당 처리량 극대화
- 평균 응답 시간도가 비교적 낮게 유지 -> 단 디스크 시스템의 부하가 크지 않을 경우
- 응답시간에 대한 예측성이 저하됨 ( 부하가 커지면 무기한 연기 현상 초래 가능 )
# 처음 디스크 헤드 위치 - 100번 실린더
# 총 이동거리 - 10 + 30 + 10 + 30 + 10 + 20 + 10 + 180 = 300

SCAN 스케줄링
- SSTF 기법과 비슷함
- 현재 큐에 대기 중인 요구들 중에서, 현재 헤드의 진행 방향으로 현재 헤드의 위치와 가장 가까운 요구를 먼저 서비스하고,
  마지막 실린더에 도착했을 때에 방향을 전환한다.
- SSTF 기법의 예측성이 저하되는 단점 해결
  - 대체적으로 단위 시간당 처리량, 평균 응답 시간의 면에서 우수함
  - 실제 디스크 시스템에서 사용되는 스케줄링 기법의 근간

# 처음 디스크 헤드 위치 - 100번 실린더, 먼저 0번 실린더 쪽으로 이동
# 총 이동거리 : 10 + 70 + 20 + 120 + 10 + 30 + 10 + 20 + 10 = 300

LOOK 스케줄링 / 엘레베이터 알고리즘
- SCAN 스케줄링 기법과 유사
- 헤드가 진행하는 도중 진행 방향의 앞쪽으로 더 이상의 요구가 없으면 양 끝의 실린더까지 진행하지 않고 그 자리에서
   방향을 바꿈

# 처음 디스크 헤더 위치 - 100번 실린더, 먼저 0번 실린더 쪽으로 이동, 서비스 하는 동안 추가 요구는 없다고 가정,
# 총 이동거리 - 10 + 70 +100 + 10 + 30 + 10 + 20 + 10 = 260

N-step SCAN 스케줄링
- SCAN 스케줄링 기법과 유사
- 디스크헤드가 방향을 바꾸는 시점에서 큐에 대기 중인 요구들만을 대상으로 서비스 진행
- SCAN과의 차이점 ( 서비스가 진행되는 중에 도착한 요구들에 대해서는 다음번 방향을 바꾼 후에 처리 )
- SSTF나 SCAN기법 보다 응답 시간의 분산이 작음, 무기한 연기의 가능성 배제
# 만약 헤드가 0번 실린더 쪽으로 이동 중 80번 실린더에 요구가 추가로 도착한 경우
SCAN - 90번 실린더 요구 처리 후, 80번 실린더로 이동하며 서비스 시작
N-step SCAN - 20번 실린더 처리 후 0번 실린더에서 방향을 바꾼 후 서비스 시작

C-SCAN ( Circular SCAN ) 스케줄링
- SCAN 기법과 유사
- 미리 정해진 서비스 방향 ( 안쪽 또는 바깥쪽 )으로 헤드가 이동할 때에만 큐의 요구들을 처리
- 응답 시간의 분산이 매우 작은 기법, 응답 시간에 대한 예측성이 매우 높다.
# 처음 디스크 헤더 위치 - 100번 실린더, 먼저 0번 실린더 쪽으로 이동, 서비스 하는 동안 추가 요구는 없다고 가정,
# 총 이동거리 - 10 + 70 +20 + 255 + 55 + 10 + 20 + 10 + 30 + 10 = 490

C-LOOK 스케줄링
- C-SCAN 기법과 기본적으로 비슷하다.
- LOOK 기법처럼 헤드의 진행방향을 더 이상 요구가 없다면 즉시 방향을 바꿈

'OS > Windows' 카테고리의 다른 글

Process Scheduling  (0) 2010.07.04
Register  (0) 2010.07.04