-
다중 큐(multiple queue)운영체제 2022. 3. 24. 12:40
준비 상태의 다중 큐
여러 우선순위를 가진 프로세스들을 한 큐에 넣는 경우, 매번 가장 높은 우선순위의 프로세스를 찾아서 실행해야 하지만, 우선순위 별로 큐를 만들어 놓는 경우 그럴 필요가 없어서 편리하다.
우선순위 배정 방식
고정 우선순위 방식
프로세스에게 처음에 우선순위를 부여하면 끝까지 바뀌지 않는 방식이다. 구현이 쉽지만 시스템의 변화에 대응이 어려워 작업 효율이 떨어진다.
변동 우선순위 방식
작업 중간에도 우선순위가 변하는 방식이다. 구현이 어렵지만 시스템의 효율성을 높일 수 있다.
반전 우선순위(priority invasion)
프로세스가 기존에 가지던 낮은 우선순위를 높은 우선순위로 바꾸는 것이다. 중요한 자원을 사용하는 프로세스에게 높은 우선순위를 부여하여 빨리 실행을 마치게 하면, 해당 자원을 사용하는 다른 프로세스의 작업도 원활하게 진행될 것이다.
대기 상태의 다중 큐
대기 상태는 입출력이 완료되기를 기다리는 상태이다. 대기 상태의 경우 같은 입출력을 요구한 프로세스끼리 모아 놓으면, 특정 장치의 입출력이 끝나 인터럽트가 발생했을 때 모든 대기 상태 프로세스들을 검색할 필요가 없어서 효율적이다.
입출력은 CPU에서의 실행과는 다르게 여러 개가 동시에 끝날 수도 있다. 이를 처리하기 위해 인터럽트 벡터(interrupt vector)라는 자료구조를 이용한다. 또한 입출력장치의 경우 CPU나 메모리보다 느리기 때문에 작업 속도를 높이기 위해 작업 순서를 바꾸는 경우도 있어, 나중에 요청된 작업이 먼저 처리되기도 한다.
Reference