6. 기억장치 - 59. 디스크 스케줄링
59. 디스크 스케줄링
1. SSTF
디스크 스케줄링(Disk Scheduling)
사용할 데이터가 디스크의 여러 곳에 저장되어 있을 때 데이터를 액세스 하기 위해 디스크 헤드의 이동 경로를 결정하는 기법이다.
하드디스크는 트랙이 있고, 액세스암과 헤드가 있어 왔다갔다하며 자료를 검색한다.
이때 어떤 순서로 검색할 것인가를 말한다.
FCFS (First Come First Serve)
디스크 대기 큐에 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법이다.
- FIFO (First in Fist Out) 방식이라고도 한다.
- 구현은 쉬운 반면 부하(맡은 짐,직책)가 크면 응답 지연이 발생한다.
예 )
사용자가 요청한 디스크 입.출력 내용이 다음의 작업 대기 큐(90 183 37 122 14 128 65 67)와 같다.
(단, 현재 디스크 헤드 위치는 53이고, 가장 안쪽이 1번, 가장 바깥쪽이 200번 트랙이라고 가정한다.)
FCFS 이동 순서 : 53 → 90 → 183 → 37 → 122 → 14 → 128 → 65 →67
너무 왔다갔다함. 즉, 효율적이지 못함
1. SSTF (Shortest Seek Time First) ☆
탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법이다.
- 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 서비스를 적게 받아 탐색 패턴이 편중된다.
- 응답 시간 편차로 인해 대화형에는 부적합하다.
예 )
현재 헤드 위치가 53에 있고 트랙 1번 방향으로 이동 중이다. 요청 대기 큐에는 다음과 같은 순서의 액세스 요청이 대기 중일 때 SSTF 스케줄링 알고리즘을 사용한다면 헤드의 총 이동 거리는 얼마인가? (단, 현재 디스크 헤드 위치는 53이고, 가장 안쪽이 1번 가장 바깥쪽이 203번 트랙이라고 가정한다.)
- 요청 대기 큐 : 98,203,37,122,14, 124, 65, 67 [98(45),203(150),37(16),122(69),14(39), 124(71), 65(12), 67(14)]
- 현재 위치 : 53 → 65 → 67 → 37 → 14 → 98 → 122 → 124 → 203
12+2+30+23+84+24+2+79=256
SCAN
현재 헤드의 위치에서 진행 방향의 모든 요청을 서비스하면서 끝까지 이동한 후 반대 방향의 요청을 서비스하는 기법이다.
바깥쪽 트랙이 안쪽 트랙보다 서비스를 적게 받게 된다.
C-SCAN(Circular SCAN)
헤드가 항상 바깥쪽에서 안쪽으로 움직이며 모든 요청을 서비스하면서 끝까지 이동한 후 다시 바깥쪽에서 안쪽으로 이동하면서 요청을 서비스하는 기법이다.
예 )
사용자가 요청한 디스크 입. 출력 내용이 다음의 작업 대기큐(90,183,37,122,14,128,65,67)와 같다.
(단, 현재 디스크 헤드 위치는 53이고, 가장 안쪽이 1번, 가장 바깥쪽이 200번 트랙이라고 가정한다.)
SCAN 이동 순서 : 53 → 37 →14 → 1 → 200 →183 → 128 → 122 → 90 → 67 → 65
N-step SCAN
어떤 방향의 진행이 시작될 당시에 대기 중이던 요청들만 서비스하고, 진행 도중 도착한 요청들은 한데 모아서 다음의 반대 방향 진행 때 최적으로 서비스하는 기법이다.
에센바흐 (Eschenach) 스케줄링
헤드가 진행하는 과정에서 각 실린더에 대해 한 번의 디스크팩 회전 시간 동안만 입. 출력 요구들을 처리하는 기법이다.
즉, 한 회전 동안 서비스를 받지 못하는 요구들에 대한 처리는 다음으로 미루는 기법이다.
실린더
상위에서 봤을 때 디스크가 4장인데, 4장이였을 때 수직으로 동일한 트랙을 실린더라고 이야기한다.
그래서 위의 트랙이 4개가 있으면 실린더 갯수도 4개이다.
문제 풀이
1. 디스크 스케줄링 기법 중에서 탐색 거리가 가장 짧은 요청이 먼저 서비스를 받는 기법이며, 탐색 패턴이 편중되어 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 서비스를 덜 받는 경향이 있는 기법은?
SSTF
2. 다음 디스크 스케줄링과 관계된 방법 중 그 성격이 다른 하나는?
① C-SCAN
② FCFS
③ SLTF
④ SSTF
3번
3. 사용자가 요청한 디스크 입.출력 내용이 다음과 같은 순서로 큐에 들어 있을 때 SSTF 스케쥴링을 사용한 경우의 처리 순서는? (단, 현재 헤드 위치는 53이고, 제일 안쪽이 1번, 바깥쪽이 200번 트랙이다.)
큐의 내용 : 98,183,37,122,14,124,65,67
① 53-65-67-37-14-98-122-124-183
② 53-98-183-37-122-14-124-65-67
③ 53-37-14-65-67-98-122-124-183
④ 53-67-65-124-14-122-37-183-98
1번
4. 디스크 입.출력 요청 대기 큐에 다음과 같은 순서로 기억되어 있다. 현재 헤드가 53에 있을 때, 이들 모두를 처리하기 위한 총 이동 거리는 얼마인가? (단, FCFS 방식을 사용한다.)
대기 큐 : 87,183,37,122,14,124,65,67
① 320
② 640
③ 710
④ 763
2번