컴퓨터 공학 스터디 W2.운영체제👏
운영체제 스터디를 뭐할까..? 생각해보면서 구글링도 해보고 유튜브 강의도 찾아 봤는데 '디스크 스케줄링'이라는 것을 처음 들어봐서 공부 해보고 싶었다. 그럼 디스크 스케줄링이 무엇인지 진짜 설명을 시작해보겠다.
데이터가 순서대로 데이터1, 데이터2, 데이터3, 데이터4 이렇게 있다고 가정해보자. 이때 데이터는 순서대로 쌓이지 않는다고 한다.
이러한 형태로 데이터는 저장되지 않는다. 사용자는 그때 그때마다 필요한 데이터가 다르다. 사용자가 데이터 3을 원한다면 데이터 3을 먼저 저장해야한다. 그렇게 저장을 하면 데이터가 여기 저기 흩어지게 저장이 된다.
위와 같은 사진처럼 데이터는 이곳 저곳에 저장이 될 것이다. 이러한 데이터들을 찾을 때 사용되는 것이 바로 디스크 스케줄링이다.
디스크 스케줄링은 데이터를 액세스하기 위해 디스크 헤드를 움직이는 경로를 결정하는 기법이다. 여기서 디스크 헤드란?
하드디스크의 저 부분에 해당한다. 디스크 헤드는 플래터의 데이터를 기록 또는 판독하는 장치이다.
디스크 스케줄링은 어떻게 효율적으로 데이터를 액세스 할 것인가에 대한 고민과 방법이라고도 해석이 가능하다.
디스크 스케줄링 목적으로는 다음과 같이 4가지가 있다
디스크 스케줄링의 기법은 정말 많다
등 굉장히 많은 기법들이 있다. 위에 4개의 스케줄링 기법에 대해 자세히 설명해보도록 하겠다
FCFS(First Come First Served)
FCFS기법은 여러 스케줄링과 마찬가지로 큐에 요청이 들어온 순서대로 처리한다. 이 스케줄링 기법의 장점은 다른 기법들 보다 단순하며 공정하다. 단점은 비용이 많이 발생되어 비효율적이라고 한다.
다음과 같은 큐가 있다고 해보자. FCFS 기법은 큐에 요청이 들어온 순서대로 처리 되기 때문에 처리 순서는
6 -> 14 -> 45 -> 27 -> 13 -> 30
순서이다. 이렇게 되면 총 이동 거리는 135가 된다.
SSTF(Shortest Seek Time First)
SSTF기법은 현재 위치에서 탐색거리가 가장 짧은 요청부터 처리하는 기법이다. SSTF기법은 일괄처리시스템에 유용하게 쓰이지만 기아 현상이 발생할 수 있는 단점이 있다.
아까와 같은 큐에서 현재 위치가 10이라고 해보면 가장 먼저 처리 되는 것은 13일 것이다. 그 이유는 현재 위치에서 탐색거리가 가장 짧은 요청이기 때문에 13부터 처리를 해야한다. 13 다음으로는 14를 처리한다. 현재 위치가 10에서 13으로 변경되었기 때문에 13에서 가장 가까운 요청인 14를 처리한다. 이러한 방식으로 처리를 하면 처리 순서는
10 -> 13 -> 14 -> 6 -> 27 -> 30 -> 45
이렇게 된다. 총 이동거리는 38이 된다
SCAN
다음은 SCAN 기법이다. SCAN 기법은 현재 진행 중인 방향으로 가장 짧은 탐색 거리에 있는 요청을 처리한다. 현재 진행 방향에 더 이상 처리할 요청이 없으면 방향을 바꾼다.
아까와 같은 큐에서 현재 진행방향이 10에서 50 방향이라고 하면 처리 순서는
10 -> 13 -> 14 -> 27 -> 30 -> 45 -> 6
이엏게 된다. 10에서 50 방향으로 움직이는데 45까지 처리하고 나면 이제 더 이상 그 방향으로 처리할 요청이 남아있지 않기 때문에 6을 처리한다. 총 이동거리는 74가 된다.
C-SCAN
마지막은 C-SCAN 기법이다. C-SCAN 기법은 항상 바깥쪽에서 안쪽으로 움직이고 가장 짧은 탐색 거리를 갖는다. 안쪽으로 끝까지 이동했다면 가장 바깥쪽에서 안쪽으로 이동한다.
이 큐에서 현재 위치가 20이라면 20을 기준으로 안쪽, 즉 왼쪽으로 움직인다. 그러므로 20 다음으로 처리되는 것은 14이고 쭉쭉 처리하고 가장 왼쪽에 있는 6까지 처리 했다면 가장 바깥쪽(= 가장 오른쪽)에 있는 45부터 안쪽으로 처리한다. 이러한 방식으로 처리하면 순서는
20 -> 14 -> 13 -> 6 -> 40 -> 30 -> 27
순서로 처리된다.
디스크 스케줄링을 조사하면서 학교 수업시간에 들었던 프로세스 스케줄링이 떠올랐다. 디스크 스케줄링이 프로세스 스케줄링보다는 처리 방식이 간단한 것 같다.