2017년 6월 6일 화요일

19. 디스크 스케쥴링4


4) SCAN 스케쥴링

 (1) SCAN 스케쥴링
    * 디스크 해드가 어느 한쪽 방향의 끝으로 이동하면서 요청한 트랙을 처리하고 다시 다른 방향으로 이동하면서 처리하는 스케쥴링이다.
    * 53 ---> 0 ---> 199 ---> 0     / 화살표시는 방향을 의미함


 (2) C-SCAN 스케쥴링
    * 디스크 해드가 어느 한쪽 방향의 끝으로 이동하면서 요청한 트랙을 처리하고 다시 반대 방향의 끝으로 한 번에 즉시 이동한 다음 다시  요청한 트랙을 처리하는 스케쥴링이다.
    *  53 ---> 199 =점프=> 0 ---> 199



 (3) LOOK 스케쥴링
    * SCAN 스케쥴링과 동일하지만 어느 방향을 끝까지 해드가 이동하지 않고 요청작업이 있는 곳까지만 이동한다음 다시 다른 방향으로 해드가 움직이는 스케쥴링이다.
    *  53 ---> 34 ---> 183 ---> 34



 (4) C-LOOK 스케쥴링
    * C-SCAN 스케쥴링과 LOOK 스케쥴링의 결합된 형태이다.
      어느 한족 방향으로 이동하면서 요청작업을 처리하지만 디스크의 끝까지 이동하는 것이 아니라 마지막 요청 트랙까지만 이동하고 반대방향의 최초 요청 트랙으로 즉시 이동한뒤 다시 해드가 디스크 요청을 처리하는 스케쥴링이다.
    *  53 ---> 183 =점프=> 34 --->183



참고) SCAN 스케쥴링은 이동 거리는 많을 수 있지만 탐색시간이 최소가 되어 빠른 처리가 가능하다.
      SCAN 스케쥴링은 엘리베이터 알고리즘이라고도 한다.
      엘리베이터와 흡사한 이동특성을 보이고 있기 때문이다.

19. 디스크 스케쥴링3


3) SSTF(Shortest Seek Time First, 최소 탐색시간 우선 스케쥴링)

  * 제일 가까운 트랙의 요청부터 처리하는 스케쥴링

  * 예시)
    디스크 트랙:  0 ~ 199
    현재 해드의 위치: 53 트랙
    디스크 요청 트랙:  98  183  37  122  14  124  65  67

    총 이동거리: 236 트랙

  * 기아(Starvation)이 발생할 수 있다.
  * 가장 효과적인 방법은 아니다.
   

19. 디스크 스케쥴링2


2) FCFS(First-Come, First-Served, 선입선처리 스케쥴링)

  * 제일 먼저 요청한 작업부터 처리하는 스케쥴링이다.

  * 예시)
    디스크 트랙:  0 ~ 199
    현재 해드의 위치: 53 트랙
    디스크 요청 트랙:  98  183  37  122  14  124  65  67

    총 이동거리: 640 트랙

  * 가장 단순하면서 공정하긴 하지만 성능이 좋지 않다.
    디스크 요청이 흩어져 있는 경우 탐색시간이 오래걸려 처리량이 감소한다.

19. 디스크 스케쥴링1


1) 디스크 스케쥴링이란?
  * 디스크 엑세스 시간
   : 탐색 시간(Seek Time) - 디스크 해드가 해당 트랙으로 이동하는 시간
   : 회전 시간(Rotational Delay) - 디스크 회전 시간
   : 전송 시간(Transfer Time) - 디스크의 데이타가 읽혀지고 메인메모리에 전달되는 시간

  * 멀티프로그래밍 환경에서는 많은 프로세스들이 디스크 서비스(I/O 처리)를 받기위해 I/O Queue(입출력 대기 큐)에 대기하게 된다.

  * 운영체제는 어떤 방식으로 I/O Queue를 처리할 것인가를 결정해야 한다.
    이를 처리하는 알고리즘을 디스크 스케쥴링이라고 한다.

  * 디스크 스케쥴링의 알고리즘의 종류
   : FCFS(First-Come, First-Served, 선입선처리 스케쥴링)
   : SSTF(Shortest Seek Time First, 최소 탐색시간 우선 스케쥴링)
   : SCAN 스케쥴링 (또는엘리베이터 알고리즘; Elevator Algorithm)
     - 순수 SCAN 스케쥴링
     - C-SCAN 스케쥴링
     - LOOK 스케쥴링
     - C-LOOK 스케쥴링