CPU Scheduling
CPU Scheduling이란
CPU 스케쥴링이란 I/O와 같은 자원을 사용할 수 없어서 프로세스가 대기상태로 진입한 동안 다른 프로세스가 CPU를 사용할 수 있도록 하는 것이다
CPU 스케쥴링의 목표는 시스템을 효율적이고 빠르고 공평하게 만드는 것이다
Scheduling 분류
선점형 스케쥴링
프로세스가 CPU를 점유하고 있는 중에 다른 프로세스에게 CPU 제어권을 뺏긴다
비선점형 스케쥴링
프로세스가 CPU를 점유하고 있는 중에 다른 프로세스에게 CPU 제어권을 뺏기지 않는다
Scheduling Algorithms
FCFS
First Come First Serve
비선점 스케쥴링기법
Ready Queue에 프로세스가 들어온 순서대로 CPU를 할당한다
SJF
Shortest Job First
비선점 스케쥴링기법
먼저 들어온 순서와 관계없이 작업 시간이 짧은 프로세스에게 CPU를 할당한다
Priority Scheduling
우선순위가 낮은 프로세스가 오랜시간동안 작업을 할당받지 못한다면 Aging 기법을 통해 우선순위를 높힌다
선점형 Priority Scheduling
더 높은 우선순위의 프로세스가 도착하면 Ready Queue의 Head에 삽입한다
비선점형 Priority Scheduling
더 높은 우선순위 프로세스 도착시 실행을 멈추고 CPU를 우선순위가 높은 프로세스에게 할당한다
Round Robin
동일한 사용 시간동안 프로세스에게 CPU를 할당한다
할당된 시간이 만료되면 Ready Queue에 삽입한다
할당시간이 너무 크다면 FCFS와 동일하게 동작하게 되고 너무 작다면 context switch의 오버헤드가 발생하게 된다
Multi Level Queue
Ready Queue를 두가지 종류의 Queue로 분리해 각각 다른 스케쥴링 알고리즘을 적용한다
사용자와 인터렉티브하게 사용되는 서비스 혹은 프로세스의 응답시간이 요구되는 프로세스는 포어그라운드 큐에 할당 되고 상대적으로 중요도가 낮은 서비스는 백그라운드 큐에 할당된다
Foreground Queue
우선순위가 높은 프로세스가 할당되는 큐로 Round Robbin같은 알고리즘이 사용된다
Background Queue
우선순위가 낮은 프로세스가 할당되는 큐로 FCFS같은 알고리즘이 사용된다
Multi Level Feedback Queue
Multi Level Feedback Queue에 기아상태 방지를 위한 Aging 기법을 적용한다
참조
더욱 자세한 내용은 추후 정리한 포스팅에서 확인하실 수 있습니다.