본문 바로가기

License

[정처기 실기 - 계산식] 디스크 스케줄링 [ FCFS / SSTF / SCAN / C-SCAN / LOOK / C-LOOK ]

728x90
디스크 스케줄링 종류
  • FCFS (First Come First Service) : 요청 순서대로 처리 하는 스케줄링 기법
  • SSTF (Shortest Seek Time First) : 헤드와 가까운 요청을 먼저 처리하는 기법
  • SCAN : 한쪽 방향으로 요청을 처리하다가 가장 끝 주소를 찍고 반대 방향으로 요청을 처리하는 스케줄링 기법
    → 엘리베이터 방식
  • C-SCAN : 한쪽 방향으로 요청을 처리하고 가장 끝 주소를 찍은 뒤, 반대 방향은 처리하지 않고 끝까지 간 뒤 다시 한쪽 방향으로만 처리하는 스케줄링 기법
    • Ex)
    • SCAN : 처음 주소 0, 마지막 주소 200, 0에서 200방향일 경우 마지막 요청 주소가 189번일지라도 200번까지 갔다가 0번으로 진행
    • C-SCAN : 처음 주소 0, 마지막 주소 200, 0에서 200 방향일 경우 0 → 200까지 갔다가 0번으로 다시 돌아간 뒤, 다시 200번 방향으로 요청을 처리
  • LOOK : SCAN 방식을 개선한 방식으로, 가장 끝 주소가 아닌 가장 마지막 요청의 주소까지 갔다가 다시 반대편 방향으로 처리하는 스케줄링 기법
    • Ex) 처음 주소 0, 마지막 주소 200, 가장 낮은 요청 주소 30, 가장 높은 요청 주소 189, 0에서 200방향일 경우 189번까지 처리한 뒤(200번 주소까지 가지 않음) 30번까지 처리
  • C-LOOK : C-SCAN을 개선한 방식으로, 진행 방향의 가장 끝 주소를 찍은 뒤 반대편의 마지막 요청 주소까지 이동(요청 처리 X)하고 다시 한쪽 방향으로만 처리
  • N-Step SCAN : SCAN 처럼 요청을 처리하다가 새로운 요청이 들어올 경우 무시하고, 반대로 돌아올 때 처리하는 스케줄링 기법

FCFS를 제외한 나머지 스케줄링 기법은 요청 주소들이 정렬이 되어있어야만 함




디스크 스케줄링 - FCFS (First Come First Service)

Q. 디스크 대기 큐에 다음과 같은 순서(왼쪽부터 먼저 도착한 순서임)로 트랙의 액세스 요청이 대기 중이다.
모든 트랙을 서비스하기 위하여 FCFS 스케줄링 기법이 사용되었을 때, 총 이동거리는 얼마인가?
(단, 현재 헤드의 위치는 50트랙이다.)
대기 큐 : 10, 40, 55, 35

A. 105

Queue 10 40 55 35
해드 위치 50 10 40 55
이동 거리 40 30 15 20

Q. 디스크 입/출력 요청 대기 큐에 다음과 같은 순서로 기억되어 있다.
현재 헤드가 53에 있을 때, 이들 모두를 처리하기 위한 총 이동 거리는 얼마인가?
(단, FCFS 방식을 사용한다.)
대기 큐 : 98, 183, 37, 122, 14, 124, 65, 67

A. 640

Queue 98 183 37 122 14 124 65 67
헤드 위치 53 98 183 37 122 14 124 65
이동 거리 45 85 146 85 108 110 59 2



디스크 스케줄링 - SSTF (Shortest Seek Time First)

Q. 초기 헤드 위치가 50이며 트랙 0 방향으로 이동 중이다,
디스크 대기 큐에 다음과 같은 순서의 액세스 요청이 대기 중일 때, SSTF 스케줄링을 사용하여 모든 처리를 완료하고자 한다.
가장 먼저 처리되는 트랙을 쓰시오.
(단, 가장 안쪽 트랙 0, 가장 바깥쪽 트랙 200)
대기 큐 : 100, 180, 40, 120, 0, 130, 55, 80, 51, 200

A. 51

  • 풀이
    • 큐 정렬 : 0, 40, 51, 55, 80, 100, 120, 130, 180, 200
    • 헤드 위치 : 50
    • 가장 가까운 요청 : 51

Q. 디스크 큐에 다음과 같이 I/O 요청이 들어왔다.
최소탐색시간 우선 (SSTF) 스케줄링 적용 시 발생하는 총 헤드 이동 거리를 구하시오.
(단, 추가 I/O 요청은 없다고 가정한다. 디스크 헤드는 0부터 150까지 이동 가능하며, 현재 위치는 50이다.)
대기 큐 : 80, 20, 100, 30, 70, 130, 40

A. 140

Queue 80 20 100 30 70 130 40
정렬 20 30 40 70 80 100 130
헤드 위치 50 40 30 20 70 80 100
처리 요청 40 30 20 70 80 100 130
이동 거리 10 10 10 50 10 20 30

Q. 현재 헤드의 위치가 50에 있고, 트랙 0번 방향으로 이동하며, 요청 대기 열에는 아래와 같은 순서로 들어 있다고 가정할 때 SSTF 스케줄링 알고리즘에 의한 헤드의 총 이동 거리를 구하시오.
대기큐 : 100, 180, 40, 120, 0, 130, 70, 80, 150, 200

A. 370

Queue 100 180 40 120 0 130 70 80 150 200
정렬 0 40 70 80 100 120 130 150 180 200
헤드 위치 50 40 70 80 100 120 130 150 180 200
처리 요청 40 70 80 100 120 130 150 180 200 0
이동 거리 10 30 10 20 20 10 20 30 20 200

Q. 사용자가 요청한 디스크 I/O 내용이 다음과 같은 순서로 큐에 들어있을 때 SSTF 스케줄링을 사용한 경우의 처리 순서를 쓰시오.
(단, 현재 헤드 위치는 53이고, 제일 안쪽이 1번, 바깥쪽이 200번 트랙이다.)
대기 큐 : 98, 183, 37, 122, 14, 124, 65, 67
A. 53, 65, 67, 37, 14, 98, 122, 124, 183

Queue 98 183 37 122 14 124 65 67
정렬 14 37 65 67 98 122 124 183
헤드 위치 53 65 67 37 14 98 122 124
처리 요청 65 67 37 14 98 122 124 183



디스크 스케줄링 - SCAN

Q. 디스크 스케줄링에서 SCAN 기법을 사용할 경우, 다음과 같은 작업 대기 큐의 작업들을 수행하기 위한 총 트랙 이동 거리는?
(단, 초기 헤드의 위치는 30이고, 현재 0번 트랙으로 이동 중이다.)
대기 큐 : 7, 46, 15, 38, 3

A. 76

  • 풀이
    • SCAN은 가장 끝 주소까지 가기 때문에 30 → 0으로 이동한 뒤 다시 반대 방향으로 이동함
Queue 7 46 15 38 3  
정렬 3 7 15 38 46  
헤드 위치 30 15 7 3 0 38
처리 요청 15 7 3 0 38 46
이동 거리 15 8 4 3 38 8

Q. 디스크 스케줄링 기법 중 SCAN을 사용하여 다음 작업대기 큐의 작업을 모두 처리하고자 할 경우, 가장 최후에 처리되는 트랙은?
(단, 현재 디스크 헤드는 50 트랙에서 40 트랙으로 이동해왔다고 가정한다.)
대기 큐 : 7, 55, 15, 38, 3
A. 55

Queue 7 55 15 38 3  
정렬 3 7 15 38 55  
헤드 위치 40 38 15 7 3 0
처리 요청 38 15 7 3 0 55

Q. 디스크에서 헤드가 70트랙을 처리하고 60트랙으로 이동해왔다.
디스크 스케줄링 기법으로 SCAN 방식을 사용할 때 다음 디스크 대기큐에서 가장 먼저 처리되는 트랙은?
대기큐 : 20, 50, 95, 100

A. 50




디스크 스케줄링 - C-SCAN

Q. 트랙 번호가 0부터 199인 200개의 트랙을 가진 디스크가 있다.
디스크 스케줄링 기법 중 C-SCAN을 사용하여 다음과 같은 작업 대기 큐(디스크 큐)의 작업을 처리하고자 하는 경우, 처리되는 트랙의 순서를 바르게 나열하시오.
(단, 현재 디스크 헤드는 트랙 35에서 트랙 47로 이동해왔다고 가정한다.)

대기 큐 : 139, 22, 175, 86, 13, 158

A.  (35 - 47 생략 가능) - 86 - 139 - 158 - 175 - 199 - 0 - 13 - 22

  • 풀이
    • C-SCAN은 한쪽 방향(199까지)으로만 요청을 처리하고 반대쪽으로는 아무런 처리를 하지 않고 가장 끝 주소(0)로 이동
    • 35 → 47로 이동한 것은 문제에서 제시했기 때문에 적든 안 적든 상관 없다고 함
Queue 139 22 175 86 13 158    
정렬 13 22 86 139 158 175    
헤드 위치 47 86 139 158 175 199 0 13
처리 요청 86 139 158 175 199 0 13 22

Q. 현재 헤드의 위치가 50에 있고, 요청 대기열의 순서가 다음과 같을 경우, C-SCAN 스케줄링 알고리즘에 의한 헤드의 총 이동 거리는 얼마인가?
(단, 현재 헤더의 이동 방향은 안쪽이며, 안쪽의 위치는 0으로 가정한다.)
대기 큐 : 100, 180, 40, 120, 0, 130, 70, 80, 150, 200
A. 380

Queue 100 180 40 120 0 130 70 80 150 200
정렬 0 40 70 80 100 120 130 150 180 200
헤드 위치 50 40 0 200 180 150 130 120 100 80
처리 요청
방향 : ←
40 0 200 180 150 130 120 100 80 70
이동 거리 10 40 200 20 30 20 10 20 20 10

Q. 표의 내용은 0 ~ 199번의 200개 트랙으로 이루어진 디스크 시스템에서 큐에 저장된 일련의 입출력 요청들과 어떤 디스크 스케줄링 방식에 의해 처리된 서비스 순서이다.
이 디스크 스케줄링 방식을 쓰시오.
(단, 표의 숫자는 입출력할 디스크 블록들이 위치한 트랙 번호를 의미하며, 현재 디스크 헤드의 위치는 50번이라고 가정한다.)

요청 큐 : 99, 182, 35, 121, 12, 125, 64, 66
서비스 순서 : 64, 66, 99, 121, 125, 182, 0, 12, 35

A. C-SCAN

  • 풀이
    • 헤드 위치 : 40
    • 처리 방향 :
      ㄴ 처리 순서(서비스 순서)가 64, 66, 99이기 때문
    • 182까지 처리한 뒤 0번으로 이동하는 중12와 35를 처리하지 않음
    • SCAN 방식이였다면 182 다음 35 - 12 - 0의 순서로 처리하기 때문에 C-SCAN 또는 C-LOOK으로 좁혀짐
    • 하지만, 큐에 0은 없었기 때문 C-SCAN 방식
정렬 12 35 64 66 99 121 125 182



디스크 스케줄링 - LOOK

Q. 디스크 스케줄링 방법 중 LOOK 방식을 사용할 때 현재 헤드가 60에서 50으로 이동해 왔다고 가정할 경우 다음과 같은 디스크 큐에서 가장 먼저 처리되는 것은?
대기 큐 : 70, 80, 100, 90

A. 100

Queue 70 80 100 90
정렬 70 80 90 100
헤드 위치 50
(처리할 것이 더 없음)
70 80 90
처리 요청 70 80 90 100

Q. 다음과 같은 트랙이 요청되어 큐에 도착하였다.
모든 트랙을 서비스하기 위하여 LOOK 스케줄링 기법이 사용되었을 때 모두 몇 트랙의 헤드 이동이 생기는가?
(단, 현재 헤드의 위치는 50트랙이고, 헤드는 트랙 0방향으로 움직이고 있다.)
대기 큐 : 10, 40, 55, 35
A. 85

Queue 10 40 55 35
정렬 10 35 40 55
헤드 위치 50 40 35 10
처리 요청 40 35 10 55
이동 거리 10 5 25 45



디스크 스케줄링 - C-LOOK

Q. 디스크의 서비스 요청 대기 큐에 도착한 요청이 다음과 같을 때 C-LOOK 스케줄링 알고리즘에 의한 헤드의 총 이동거리는 얼마인가?
(단, 현재 헤드의 위치는 50에 있고, 헤드의 이동 방향은 0에서 199 방향이다.)
대기 큐 : 65, 112, 40, 16, 90, 170, 165, 35, 180

A. 318

Queue 65 112 40 16 90 170 165 35 180
정렬 16 35 40 65 90 112 165 170 180
헤드 위치 50 65 90 112 165 170 180 16 35
처리 요청 65 90 112 165 170 180 16 35 40
이동 거리 15 25 22 53 5 10 164 19 5



디스크 스케줄링 - N-step SCAN

Q. SCAN의 무한 대기 발생 가능성을 제거한 것으로 SCAN보다 응답 시간의 편차가 적고, SCAN과 같이 진행 방향상의 요청을 서비스하지만, 진행 중에 새로이 추가된 요청은 서비스하지 않고 다음 진행 시에 서비스하는 디스크 스케줄링 기법을 쓰시오.

A. N-step SCAN

728x90