정답: 2번 초기 헤드 위치: 50 이동 방향: 트랙 0 방향 (감소하는 방향) 트랙 범위: 0 ~ 200 대기 큐: 100, 180, 40, 120, 0, 130, 70, 80, 150, 200 각 디스크 스케줄링 기법별 총 이동 거리를 계산한다. **1. FIFO (First-In, First-Out)** 요청 순서대로 처리한다: 100, 180, 40, 120, 0, 130, 70, 80, 150, 200 * 50 -> 100: \(|100 - 50| = 50\) * 100 -> 180: \(|180 - 100| = 80\) * 180 -> 40: \(|40 - 180| = 140\) * 40 -> 120: \(|120 - 40| = 80\) * 120 -> 0: \(|0 - 120| = 120\) * 0 -> 130: \(|130 - 0| = 130\) * 130 -> 70: \(|70 - 130| = 60\) * 70 -> 80: \(|80 - 70| = 10\) * 80 -> 150: \(|150 - 80| = 70\) * 150 -> 200: \(|200 - 150| = 50\) 총 이동 거리 = \(50 + 80 + 140 + 80 + 120 + 130 + 60 + 10 + 70 + 50 = 790\) **2. SSTF (Shortest Seek Time First)** 현재 헤드 위치에서 가장 가까운 요청을 먼저 처리한다. 요청 큐 (정렬): 0, 40, 70, 80, 100, 120, 130, 150, 180, 200 * 현재 50 * 50 -> 40: \(|40 - 50| = 10\). (남은 요청: 0, 70, 80, 100, 120, 130, 150, 180, 200) * 현재 40 * 40 -> 70: \(|70 - 40| = 30\). (남은 요청: 0, 80, 100, 120, 130, 150, 180, 200) * 현재 70 * 70 -> 80: \(|80 - 70| = 10\). (남은 요청: 0, 100, 120, 130, 150, 180, 200) * 현재 80 * 80 -> 100: \(|100 - 80| = 20\). (남은 요청: 0, 120, 130, 150, 180, 200) * 현재 100 * 100 -> 120: \(|120 - 100| = 20\). (남은 요청: 0, 130, 150, 180, 200) * 현재 120 * 120 -> 130: \(|130 - 120| = 10\). (남은 요청: 0, 150, 180, 200) * 현재 130 * 130 -> 150: \(|150 - 130| = 20\). (남은 요청: 0, 180, 200) * 현재 150 * 150 -> 180: \(|180 - 150| = 30\). (남은 요청: 0, 200) * 현재 180 * 180 -> 200: \(|200 - 180| = 20\). (남은 요청: 0) * 현재 200 * 200 -> 0: \(|0 - 200| = 200\). (남은 요청: 없음) 총 이동 거리 = \(10 + 30 + 10 + 20 + 20 + 10 + 20 + 30 + 20 + 200 = 370\) **3. SCAN** 초기 방향(0 방향)으로 이동하며 요청을 처리하고, 끝(0번 트랙)에 도달하면 방향을 바꿔 다른 끝(200번 트랙)으로 이동하며 요청을 처리한다. 요청 큐 (정렬): 0, 40, 70, 80, 100, 120, 130, 150, 180, 200 * 현재 50, 0 방향으로 이동 * 50 -> 40: \(|40 - 50| = 10\) * 40 -> 0: \(|0 - 40| = 40\) (0번 트랙에 도달) * 방향 전환, 200 방향으로 이동 * 0 -> 70: \(|70 - 0| = 70\) * 70 -> 80: \(|80 - 70| = 10\) * 80 -> 100: \(|100 - 80| = 20\) * 100 -> 120: \(|120 - 100| = 20\) * 120 -> 130: \(|130 - 120| = 10\) * 130 -> 150: \(|150 - 130| = 20\) * 150 -> 180: \(|180 - 150| = 30\) * 180 -> 200: \(|200 - 180| = 20\) 총 이동 거리 = \(10 + 40 + 70 + 10 + 20 + 20 + 10 + 20 + 30 + 20 = 270\) **4. C-SCAN** 초기 방향(0 방향)으로 이동하며 요청을 처리하고, 끝(0번 트랙)에 도달하면 반대 끝(200번 트랙)으로 이동한 후, 다시 0 방향으로 이동하며 처리한다. (일반적으로 한 방향으로만 서비스하고 끝에 도달하면 반대편 끝으로 점프하여 다시 같은 방향으로 서비스한다.) 초기 방향이 0 방향이므로 0까지 이동 후 200으로 점프, 이후 0 방향으로 이동하며 요청 처리. 요청 큐 (정렬): 0, 40, 70, 80, 100, 120, 130, 150, 180, 200 * 현재 50, 0 방향으로 이동 * 50 -> 40: \(|40 - 50| = 10\) * 40 -> 0: \(|0 - 40| = 40\) (0번 트랙에 도달) * 0번 트랙에서 200번 트랙으로 점프 (요청 처리 없이) * 0 -> 200: \(|200 - 0| = 200\) * 200번 트랙에서 0 방향으로 이동하며 남은 요청을 처리 (오름차순으로): * 200 -> 70: \(|70 - 200| = 130\) * 70 -> 80: \(|80 - 70| = 10\) * 80 -> 100: \(|100 - 80| = 20\) * 100 -> 120: \(|120 - 100| = 20\) * 120 -> 130: \(|130 - 120| = 10\) * 130 -> 150: \(|150 - 130| = 20\) * 150 -> 180: \(|180 - 150| = 30\) * 180 -> 200: \(|200 - 180| = 20\) 총 이동 거리 = \(10 + 40 + 200 + 130 + 10 + 20 + 20 + 10 + 20 + 30 + 20 = 510\) 계산 결과, SSTF의 총 이동 거리가 370으로 문제에서 제시된 값과 일치한다.