ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12-2. 디스크 스케쥴링
    OS/os 공부 2022. 1. 27. 23:07

    디스크 스케쥴링은 디스크에 접근하는 요청들의 처리 순서를 결정하는 정책으로 디스크 시스템의 성능을 향상시키는 것을 목적으로 한다.

     

    성능향상의 평가기준은

    1. Throughput : 단위 시간당 얼마나 처리하느냐

    2. Mean response time : 평균 응답 시간을 얼마나 줄이느냐

    3. Predictability : 응답시간을 예측할 수 있어 요청이 무기한 연기되는 starvation을 되지 않도록 하느냐 

    이다.

     

    Data access time 에는 Seek time, Rotational delay, Data transmission time 3가지 요소가 있다. 여기서 데이터 읽어오는 시간은 항상 같으니 디스크의 head를 필요한 실린더로 이동시키는Seek time 과 필요한 섹터를 헤드로 위치시키기 위한 회전 시간인 Rotational delay 타임을 줄이는 방향으로 스케쥴링을 고려해본다.

     

     

    Optimiaing Seek Time

    예시에 나오는 디스크는 총 256개의실린더로 구성되어있다 가정하고

    Head의 시작위치는 100번 실린더

    Access request queue는 좌측의 요청이 먼저 들어온 것으로 한다.

    FCFS(First Come First Service)

    먼저 요청이 들어온 것을 먼저 서비스 해주는 FCFS방식은 간단하고 먼저 요청이 들어온 순서대로 공평한 처리를 해주어starvation이 생기는 일은 없으나 최적 성능 달성에 대한 고려가 없다. 디스크 접근부하가 적은 경우라면 적합하다.

     

     SSTF(Shortest Seek Time First)

     

    SSTF는 현재 헤드의 위치에서 가장 가가운 요청을 먼저 처리하는 방식으로 단위시간당 처리량은 높아지나 평균응답 시간이 길어지며 starvation현상이 발생할 수 있다.

    일괄적인 처리 시스템에서 적합하다.

     

    Scan Scheduling

    스캔 스케쥴링은 헤드의 진행방향에서 가까운 요청을 먼저 처리 하는 방식으로 진행방향 기준 마지막 실린더 도착이후 반대 방향으로 진행하며 나머리 요청을 처리하는 방식이다. 

    SSTF의 starvation 문제가 해결되고 Troughput 과 평균 응답시간이 우수하지만 진행 방향 반재쪽 끝의 요청에 대한 응답시간이 길어 질 수 있다는 문제점이 있다.

    C-Scan Scheduling

    Scan 스케쥴링 방식과 유사하지만 C스캔 스케쥴링은 마지막 실린더 도착후 시작 실린더로 이동후 재시작을 하는 방식이다. 

    스캔에 비해 균등한 기회를 제공한다는 이점이 있다. 하지만 마지막 실린더 도착후 시작 실린더로 이동하는 이동시간이 크게 작용한다는 단점이 있다.

     

    Look Scheduling

    Elevator algorithm으로도 불리는데 Scan이나 C scan 방법이 요청이 없더라도 마지막이나 처음 실린더로 이동했더라면 룩스케쥴링은 현재 진행방향에 대한 요청이 없을 경우 방향을 전환하는 알고리즘을 적용한 방법이다.

    스캔에서의 불필요한 head이동을 제거한 방법으로 좀더 효율적인 방법이다.

     


    Optimiaing Rotational Delay

    다음으로는 이제 섹터를 헤드로 이동시키는 시간을 줄이는 방법에 대해 생각해본다.

     

    SLTF(Shortest Latency Time First)

    SLTF는 Fixed head Disk 시스템에 사용하며 각 트랙마다 head를 가진 디스크라 생각하면 된다. 

    각 섹터별 queue를 유지하여 헤드 아래 먼저 도착한 섹터의 queue에 들어있는 요청을 처리하는 방식이다.

     

    헤드가 움직이는 Moving head disk의 경우 헤드가 특정 실린더에 도착하면 고정 후 해당 실린더의 요청을 모두 처리후 이동하는 방식으로 사용 가능한다.

     

    SPTF(Shortest Positioning Time First)

    포지셔닝 타임은 Seek time과 Rotaional delay를 합한 시간으로 헤드를 가장 적게 움직일 수있는 요청들이 있는 실린더 쪽을 먼저 해결하는 것이다.

    하지만 이 경우 가장 안쪽과 바깥쪽 요청에 대해 Starvation현상이 발생 가능한다

     

     Starvation 현상을 해결하기 위한 스케쥴링 방법으로 Eschenbach scheduling 이 고안 되었는데 이 스케쥴링 방법은 디스크가 1회 회전하는 동안 최대한 많은 요청을 처리 할 수 있도록 요청들을 정렬한 방법이다.

     

    하지만 한 실린더/트랙/섹터 안에 다수의 요청이 있다면 다음 회전에 처리되어 효율이 떨어질 수도 있다.

    'OS > os 공부' 카테고리의 다른 글

    12-1. 입출력 시스템 관리  (0) 2022.01.27
    11-5. File System Implementation(디스크 할당,빈공간 관리)  (0) 2022.01.27
    11-4. File Protection Mechanism  (0) 2022.01.26
    11-3. Directory Structure  (0) 2022.01.26
    11-2. File System overview  (0) 2022.01.25

    댓글

Designed by Tistory.