Multi level Queue
- 우선순위의 이슈가 생기니 좀 더 세분화하여 프로세스들을 관리할 방법을 생각하다 보니, Multi level Queue의 개념이 나왔다.
앞선 CPU Scheduling Algorithms에 대해 알고 있어야 우선순위 이슈가 왜 생겼는지 알 수 있다. 이에 앞선 글을 참고하는 걸 추천한다.
각설하고, 기본적으로 single queue에서는 모든 프로세서의 우선순위를 찾아야 하기 때문에 시간 복잡도가 Q(n)이다. 하지만 Multi level Queue를 도입하면 이 시간 복잡도를 1로 줄일 수 있다. 먼저 우선순위가 높은 queue에서 schedule을 할 수 있기 때문이다.
이렇게 Multi level Queue를 도입하면 뭐가 좋을까?? 프로세서별로 특징이 다르다. 응답이 빨리 와야 하는 프로세서가 있고 계속 돌아가야 하는 프로그램도 있고 비교적 천천히 처리해도 되는 프로세서가 있다. 예를 들면 카톡은 켜놓기만 하고 메시지가 올 때만 확인하면 되지만, 게임 같은 경우에는 상태를 계속 업데이트해줘야 한다.
이처럼 특징에 따라 다른 알고리즘을 사용할 수 있다는 점이 가장 큰 장점이다. 높은 우선순위를 줘야 하는 프로세서와 낮은 우선순위를 갖는 프로세서를 따로 관리할 수 있다는 점이다. 가령 높은 우선순위를 가지는 애들은 RR 알고리즘을 사용하고 낮은 우선순위를 가지는 애들은 FCFS 알고리즘을 사용하는 것처럼 유연성을 가진다.
하지만 이렇게 되면 한번 높은 큐에 들어가면 낮은 큐로 이동하기 쉽지 않다. 이에 낮은 우선순위를 가진 애들은 실행되기 어렵다. 즉 유연성이 낮아진다. 이런 점을 보완하고자 Multilevel Feedback Queue가 나왔다.
바로 이어서 포스팅하겠다.
댓글