20. 디스크 스케쥴링(Disk Scheduling)

썹스·2022년 8월 26일
0

운영체제

목록 보기
20/20

1. 디스크 스케쥴링(Disk Scheduling)

디스크 스케줄링(Disk Scheduling)은 분산되어있는 데이터를 액세스하기 위해 디스크 헤드를 움직이는 경로를 결정하는 기법 (트랙(track)의 이동을 최소화하여 탐색 시간을 줄이는 것이 가장 큰 목적)

디스크에 접근하는 시간은 Seek time + rotational delay + transfer time이다. 이 중에서 Seek Time(탐색시간)이 가장 가지고 있기 때문에 있기 때문에 Seek Time을 줄여야 하며, 줄이는 방법을 디스크 스케줄링 알고리즘이라 한다.

1-1. FCFS(First-Come First-Served) 디스크 스케줄링

FCFS 디스크 스케줄링은 Disk queue에 먼저 들어온 track을 처리하는 방법이다. (선입선출 방식)

현재 Disk Queue(30, 60, 70, 110, 10, 90, 20)에 있는 track을 순서대로 처리하면
Total head movement = 20 + 30 + 10 + 40 + 100 + 80 + 70 = 350cylinders의 값이 나온다.

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

SSTF 디스크 스케줄링가장 짧은 탐색 시간을 먼저 선택하는 방법이다. 즉, 현재 헤더의 위치를 기준으로 가장 가까운 track을 찾아 처리하는 방법이다.

현재 Disk Queue(30, 60, 70, 110, 10, 90, 20)에 있는 track을 현재 헤더의 위치를 기준으로 가장 가까운 track 순으로 처리하면
Total head movement = 10 + 10 + 20 + 20 + 80 + 10 + 10 = 160 cylinders의 값이 나온다.

SSTF디스크 스케줄링은 FCFS 디스크 스케줄링보다 적은 결괏값이 나오지만, 지속적으로 새로운 프로세스의 요청이 들어오면 현재 헤더는 가까운 위치의 track만을 찾기 때문에 헤더와 멀리 떨어진 요청은 수행하지 못하여 기아 현상이 발생할 수 있다.

1-3. SCAN 디스크 스케줄링

SCAN 디스크 스케줄링은 헤더가 계속해서 디스크의 앞/뒤를 검사하는 방식을 가지고 있다. 헤더의 위치를 기준으로 진행 방향이 결정되며, 탐색이 짧은 순서에 따라 해당 방향의 모든 요청이 끝난 후 역방향으로 서비스를 진행한다.

Total head movement = 20 + 10 + 10 + 10 + 60 + 10 + 20 + 20 = 160cylinders의 값이 나온다.

1-4. C-Scan(Circular-Scan)

C-Scan(Circular-Scan)SCAN 디스크 스케줄링의 단점을 고안하여 만들어진 알고리즘이다. 간단한 예로 0과 199가 이어진 하나의 원(0 이전은 199, 199 다음은 0)이라고 가정하여 cylinders 값을 구하는 방법이다. 헤더가 "0"을 만나면 바로 "199"로 넘어가서 다시 작업을 수행하는 방법이다. 끝에서 끝으로 넘어갈 때는 데이터를 읽지 않기 때문에 빠른 속도로 움직일 수 있다.

1-5. Look

SCAN 알고리즘과 C-Scan 알고리즘은 무조건 끝에서 끝으로 이동하기 때문에 필요 없는 동선이 발생한다. Look 알고리즘은 이러한 불필요한 동선을 없애고 바로 방향을 틀어서 돌아온다.

1-6. C-Look(Circular Look)

C-Look 알고리즘은 C-Scan 알고리즘을 사용하되 안쪽방향의 모든 작업을 마친 뒤 가장 멀리 있는 반대쪽의 track으로 이동하여 작업을 이어가는 알고리즘이다. 이동할 때는 데이터를 읽지 않기 때문에 빠른 속도로 움직일 수 있다.



Reference

경성대학교 양희재 교수님의 운영체제

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글