2022-08-18

CPU 스케줄링과 다중 큐

CPU 스케줄러가 어떻게 프로세스를 스케줄링하는지, 다중 큐가 무엇인지 알아보자!

CPU 스케줄링

CPU 스케줄러가 프로세스의 상태 변화, CPU 자원 배정, 프로세스 우선 순위 등을 결정하는 일을 말한다.
스케줄링을 통해 프로세스가 아사되는 상태를 방지하고, 모든 프로세스가 작업을 수행할 수 있도록 한다.

스케줄링 수준

스케줄링 고려사항

선점, 비선점

우선순위

프로세스는 우선순위가 있는데 이는 중요도가 다르다는 의미다.
스케줄러는 이 우선순위를 사용해 순위가 높은 프로세스를 자주 빨리 작업시킨다.
프로세스는 크게 커널 프로세스 일반 프로세스가 있으며 커널 프로세스가 우선순위가 더 높다.
같은 유형의 프로세스 안에서도 우선순위가 다르며 일반 프로세스는 사용자가 설정할 수 있다.

집중 프로세스

입출력 집중 프로세스와 CPU 집중 프로세스가 같이 있을 때, 입출력 집중 프로세스를 우선적으로 처리한다.
그 이유는 입출력을 요청하면 대기 상태로 전환되기 때문에 다른 프로세스가 CPU 자원을 받아
작업을 수행할 수 있기 때문이다. 이렇듯 입출력 프로세스가 먼저 작업되는 현상을 사이클 훔치기라 한다.
만약 CPU 집중 프로세스가 우선적으로 처리된다면, 해당 프로세스 타임 슬라이스 동안은
다른 작업을 수행할 수 없기 때문에 입출력을 우선적으로 처리하는 것이다.

전면, 후면 프로세스

다중 큐

스케줄러는 우선순위가 높은 프로세스를 먼저 CPU를 할당하기 때문에,
준비 큐가 하나로 구성되어 있다면 큐 전체를 순환해 제어 블록을 찾아야 하는 비효율적인 동작이 발생한다.
따라서 스케줄링 알고리즘에 의해 준비 큐를 몇개로 나눌지 어떻게 구분할지를 결정해 효율적으로 동작한다.

준비 큐, 대기 큐 모두 다중 큐를 사용하지만 약간의 차이가 있다.
준비 큐는 스케줄러가 디스패치를 한 번에 하나의 제어 블록을 디스패치하는 반면,
대기 큐는 입출력의 형태가 다양하기 때문에 백터 자료구조를 사용해 동시에 여러 제어 블록을 이동시킨다.

스케줄링 알고리즘

CPU 스케줄링 알고리즘은 여러 종류가 있지만 다단계 피드백 큐 알고리즘만 설명한다.
다단계 피드백 큐 알고리즘은 CPU를 점유한 프로세스의 우선순위를 한 단계씩 낮추어 큐잉하는 스케줄링 방법이다.
낮은 우선순위의 프로세스가 아사되는 현상을 방지하기 위해
타임 슬라이스를 크게 사용하게 함으로써 우선순위가 낮은 프로세스 작업이 완료될 수 있게 해준다.

참조

쉽게 배우는 운영체제 - 한빛 아카데미