3 min read

<운영체제> Disk Scheduling - Rotational Optimization

본 게시물은 영남대학교 곽종욱 교수님의 강의를 기반으로 작성됨

Rotational Latency Optimization

  • 이전까지는 Seek-Time을 Optimization하는 방법들을 배웠고, 이후로는 Rotational Latency을 최소화하는 스케쥴링 정책들을 소개한다.

Eschenbach Scheduling이란?

  1. “에션바흐” 라고 읽으며, track의 모든 부분의 요청을 전부 처리하지만, 한 섹터당 한개의 요청만 처리하는 알고리즘이다. 즉, 헤더가 트랙을 돌면서 각각의 섹터에 도착할때 하나의 요청만 처리하고, 해당 섹터의 다른 요청이 있다면 한바퀴 돌고와서 처리해야하는 방식이다.
  2. 심지어 요청이 존재하지 않는 섹터의 회전하는 시간도 헤더는 기다린다.
  3. 초장기의 Rotational Latency를 줄이기 위한 정책이다. 지금은 쓰이지 않는다
  4. 요청의 시간이 오래 걸리는 시스템에 적합한 방식이다.(어차피 한바퀴 돌면서 모든 섹터에 방문하기 때문이다.)

Sector Queueing이란?

  1. Eschenbach scheduling보다 이전의 정책이며, 이는 트랙이 하나고 헤드가 고정된 형태의 디스크(이를 Drum이라 함)가 사용될적의 스케쥴링 방식이다.
  2. Eschenbach scheduling와의 차이점은 헤더가 움직일 필요가 없는 고정방식이라는 것이고 섹터마다 요청을 하나만 처리하는 방법을 공통적이다.
  3. 헤더가 움직이지 않기에 Seek-Time이 존재하지 않는다.

Sector Queueing 이미지

SLTF이란?

  1. Shortest Latency Time First의 스케쥴링 방식이다. 헤더를 움직이는 디스크에서 사용된다.
  2. 일반적으로 Rotational Latency Optimization에서 사용되는 방식으로 가장 직관적인 알고리즘을 가진다. 헤더 기준 가장 가까이 있는 요청부터 처리하는 방식이다.
  3. 아래의 이미지 기준으로 (1 -> 2 -> 3) 순으로 요청을 처리한다.

SLTF 이미지

SPTF와 SATF란?

  1. 이름에서도 보이듯이 SLTF의 변형 버전이다.
  2. SPTF는 Shortest Positioning Time First이며, SATF는 Shortest Access Time First이다.
  3. Positioning Time은 seek-time + Rotational-latency의 합으로 계산한다.
  4. Access Time은 Positioning-Time + transmission time의 합으로 계산한다.
  5. Transmission Time은 실제 전송되는 데이터의 크기에 의해 계산되는 값이다.
  6. 아래그림의 (a) 상황에서의 A,B의 전송 데이터 크기는 동일하다
  7. 아래그림의 (a)인 상황에서의 정책 비교
    : SSTF(A -> B), SPTF(B -> A), SATF(B -> A)
  8. 아래그림의 (b) 상황에서 B가 A보다 전송하는 데이터 크기가 크다.
  9. 아래그림의 (b)인 상황에서의 정책 비교
    : SSTF(B -> A), SPTF(B -> A), SATF(A -> B)

SPTF와 SATF 이미지