1. 디스크 스케줄링(Disk Scheduling)

  • 디스크 시스템의 성능은 처리율(Throughput)평균 응답시간(Average Response Time) 등을 기준으로 평가
  • disk access 요청의 처리 순서를 적절히 결정하는 것으로 header의 이동과 platter의 회전을 최소화할 수 있음
    => 최적의 성능

 

 

2. Seek Time 최소화

  • FCFS(First Come First Served)
    • 먼저 들어온 요청을 먼저 처리
    • 구현이 간단하고 오버헤드가 적으며 starvation 문제가 없음
    • 최적의 성능을 얻는데는 도움이 되지 않음
    • disk access 횟수자체가 많지 않은 시스템에 적합

  • SSTF(Shortest Seek Time First)
    • 현재 head 위치에서 가장 가까운 요청부터 처리
    • 처리율(Throughput)이 높음
    • 평균 응답시간이 작음(빠름)
    • 멀리 떨어져있는 위치에 대한 disk access 요청의 처리가 늦어질 수 있음(starvation)
    • 일괄 처리 시스템(Batch System)에 적합

  • Scan
    • 현재 head의 진행방향에서 가장 가까운 요청부터 처리
    • SSTF에서 starvation 문제를 해결한 방식
    • 단, 진행방향의 반대쪽의 위치에 대한 요청은 응답시간이 길어진다

  • CScan
    • Scan 방식과는 달리 진행방향을 바꾸지 않고 작업을 수행
    • 마지막 위치에 도달하고나면 시작 위치로 돌아와서 작업을 재시작
    • Scan 방식에서 진행방향의 반대쪽 위치에 대한 요청이 늦게 처리되는 문제 해결
    • 헤더가 초기위치로 돌아오는데 걸리는 시간만큼 오버헤드가 존재

  • Look Scheduling
    • Scan 에서 마지막 실린더까지 이동하지 않고 현재 진행방향에 요청이 없으면 방향을 전환
    • 실제로 Scan을 구현할 때는 이 방식을 사용
    • CScan에서도 같은 방식을 적용 가능(진행방향에 요청이 없을경우 바로 초기위치로)

 

 

3. Rotational Delay 최소화(Shortest Latency Time First)

  • platter 상의 모든 track에 고정된 head가 존재하는 Fixed Header System에서 사용

  • 각 sector마다 해당 sector에서 수행해야할 작업의 대기열(queue)을 유지하고 platter가 회전하면서
    각 sector의 대기열에 있는 작업을 모두 수행한 뒤 다음 sector로 넘어가는 sector queuing 방식 사용

  • head가 움직이는 방식의 디스크에서도 사용 가능
    • head가 특정 실린더에 도달했을 때 헤더를 고정한 뒤 해당 실린더의 모든 요청을 처리

 

 

4. SPTF(Shortest Positioning Time First)

  • Seek Time + Rotational Delay이 가장 작은 요청부터 처리하는 방식

  • 높은 처리율과 빠른 평균 응답시간을 보임

  • SSTF와 마찬가지로 starvation 문제가 발생할 수 있음

  • 에센바흐 알고리즘
    • 실린더 내 track, sector에 다수의 요청이 있다면 하나의 작업만을 수행하고
      나머지는 다음 회전에 처리하도록 요청을 재배열하는 방식

    • head의 이동방식은 CScan과 유사
    • 하드디스크의 물리적 특성상 비효율적인 방식이기에 실제로는 거의 사용되지 않음

+ Recent posts