<운영체제> Disk Scheduling - Rotational Optimization
본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성됨
Rotational Latency Optimization
- 이전까지는 Seek-Time을 Optimization하는 방법들을 배웠고, 이후로는 Rotational Latency을 최소화하는 스케쥴링 정책들을 소개한다.
Eschenbach Scheduling이란?
- “에션바흐” 라고 읽으며, track의 모든 부분의 요청을 전부 처리하지만, 한 섹터당 한개의 요청만 처리하는 알고리즘이다. 즉, 헤더가 트랙을 돌면서 각각의 섹터에 도착할때 하나의 요청만 처리하고, 해당 섹터의 다른 요청이 있다면 한바퀴 돌고와서 처리해야하는 방식이다.
- 심지어 요청이 존재하지 않는 섹터의 회전하는 시간도 헤더는 기다린다.
- 초장기의 Rotational Latency를 줄이기 위한 정책이다. 지금은 쓰이지 않는다
- 요청의 시간이 오래 걸리는 시스템에 적합한 방식이다.(어차피 한바퀴 돌면서 모든 섹터에 방문하기 때문이다.)
Sector Queueing이란?
- Eschenbach scheduling보다 이전의 정책이며, 이는 트랙이 하나고 헤드가 고정된 형태의 디스크(이를 Drum이라 함)가 사용될적의 스케쥴링 방식이다.
- Eschenbach scheduling와의 차이점은 헤더가 움직일 필요가 없는 고정방식이라는 것이고 섹터마다 요청을 하나만 처리하는 방법을 공통적이다.
- 헤더가 움직이지 않기에 Seek-Time이 존재하지 않는다.
Sector Queueing 이미지
SLTF이란?
- Shortest Latency Time First의 스케쥴링 방식이다. 헤더를 움직이는 디스크에서 사용된다.
- 일반적으로 Rotational Latency Optimization에서 사용되는 방식으로 가장 직관적인 알고리즘을 가진다. 헤더 기준 가장 가까이 있는 요청부터 처리하는 방식이다.
- 아래의 이미지 기준으로 (1 -> 2 -> 3) 순으로 요청을 처리한다.
SLTF 이미지
SPTF와 SATF란?
- 이름에서도 보이듯이 SLTF의 변형 버전이다.
- SPTF는 Shortest Positioning Time First이며, SATF는 Shortest Access Time First이다.
- Positioning Time은 seek-time + Rotational-latency의 합으로 계산한다.
- Access Time은 Positioning-Time + transmission time의 합으로 계산한다.
- Transmission Time은 실제 전송되는 데이터의 크기에 의해 계산되는 값이다.
- 아래그림의 (a) 상황에서의 A,B의 전송 데이터 크기는 동일하다
- 아래그림의 (a)인 상황에서의 정책 비교
: SSTF(A -> B), SPTF(B -> A), SATF(B -> A) - 아래그림의 (b) 상황에서 B가 A보다 전송하는 데이터 크기가 크다.
- 아래그림의 (b)인 상황에서의 정책 비교
: SSTF(B -> A), SPTF(B -> A), SATF(A -> B)