Multilevel Queue scheduling
Multilevel Queue scheduuling은 기존의 FCFS or SJF or Priority의 방법은 Queue를 하나씩 두었던 반면에 이 Multilevel scheduling은 Queue를 여러개 두어 각각의 큐마다 우선순위를 두는 방식이다.
우선순위는 위의 System Process Queue가 가장 높고 밑의 Student Process가 가장낮다.
Multilevel Queue Scheduling은 각각의 큐가 서로다른 Priority를 가지고 있어서 기존의 Priority 알고리즘보다 조금 더 세밀한 프로세스의 관리가 가능하고 각각의 Queue마다 서로 다른 알고리즘 구현이 가능하다는 장점이 있지만, 프로세스가 한번 큐에 속하게 되면 다른 큐로 이동이 불가능 하다는 단점이 있다. 만약 student process에 대기중인 프로세스가 있지만, system Queue에 계속해서 프로세스가 들어온다면 student Queue에 있던 프로세스는 stavation 현상이 일어나게 된다.
※Stavation = 프로세스가 실행되지 못하게 계속 남게 되는 현상.
Priority 알고리즘에서는 Queue가 하나이기 때문에 Aging기법으로 해결하였으나, Multilevel Queue알고리즘에는 큐가 여러개이고 한번 속하면 다른 큐로 이동이 불가능 하기 때문에
Multilevel Feedback Queue Scheduling을 이용하여 문제를 해결하였다.
Multilevel Feedback Queue Scheduling
Multilevel Feedback Queue scheduling 은 위의 Multilevel Queue Scheduling 알고리즘을 확장한 개념으로, 프로세스가 큐를 이동할 수 있다는게 특징이다.
위처럼 Queue가 3개가 있다고 가정하자.
맨 위Queue의 우선순위가 가장 높고 맨밑의 우선순위가 가장낮다.
Multilevel feedback Queu Scheduling은 마지막큐를 제외하고는 time quantum을 두어서 실행시킨다.만일 첫번째 큐에 프로세스가 들어왔지만, 지정된 타임퀀텀내에 실행이 종료되지않으면 preemptive가 일어나게 되고 실행되던 프로세스는 두번째 Queue에 들어가게 된다. 만일, 두번째 Queue에서도 실행이 종료되지 않으면 마지막 FCFS Queue에 들어가게되며 실행이 종료된다.
하지만, quantum=16인 Queue의 프로세스가 실행되던 도중에 첫번쨰 Queue에 프로세스가 들어오게 되면 Preemptive가 일어게 됨.
'O.S' 카테고리의 다른 글
파일 디스크립터(File descriptor) (0) | 2012.04.24 |
---|---|
공유메모리 함수 - shmget , shmat , shmdt (2) | 2012.04.23 |
Process Scheduling (0) | 2012.04.19 |
Process Scheduling - Round_Robin (0) | 2012.04.19 |
Process Scheduling - Priority (0) | 2012.04.19 |