Operation System - 7. CPU 스케줄링 편

Perdy·2023년 7월 30일
0

CS

목록 보기
7/20

CPU 스케줄링

스케줄링 알고리즘

CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당합니다.

비선점형 : FCFS, SJF, 우선 순위
선점형 : 라운드로빈, SRF, 다단계큐

비선점형 방식

프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않습니다. 따라서 컨텍스트 스위칭으로 인한 부하가 적습니다.

FCFS
First Come, First Served.
가장 먼저 온 것을 가장 먼저 처리하는 알고리즘으로, 길게 수행되는 프로세스 때문에 'convoy 현상'이 발생하는 단점이 있습니다.

SJF
Shorter Job First.
실행시간이 가장 짧은 프로세스를 가장 먼저 처리하는 알고리즘입니다. 긴 시간을 가진 프로세스가 실행되지 않는 현상(starvation)이 일어나며 평균 대기 시간이 가장 짧습니다. 실제로는 실행 시간을 알 수 없기 때문에 과거의 실행했던 시간을 토대로 추측하여 사용합니다.

우선 순위
기존 SJF 스케줄링의 긴 시간을 가진 프로세스가 실행되지 않는 현상을 보완한 알고리즘으로, 오래된 작업일수록 '우선 순위를 높이는 방법(aging)'을 통해 단점을 보완하였습니다.

선점형 문제

현대 운영체제가 쓰는 방식으로, 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜버리고, 강제로 다른 프로세스에 CPU 소유권을 할당하는 방식을 말합니다.

라운드 로빈
현대 컴퓨터가 쓰는 스케줄링인 우선 순위 스케줄링의 일종으로, 각 프로세스에게 동일한 할당 시간을 주고, 그 시간 안에 끝나지 않으면 다시 준비 큐의 뒤로 가는 알고리즘입니다.
할당 시간이 너무 크면 FCFS가 되고, 짧으면 컨텍스트 스위칭이 잦아져서 오버헤드, 비용이 커집니다. 일반적으로 전체 작업 시간은 길어지지만, 평균 응답 시간은 짧아집니다.

SRF
Shorter Remaining Time First
중간에 실행 시간이 더 짧은 작업이 들어와도 기존 짧은 작업을 모두 수행하고 그 다음 짧은 작업을 이어나갑니다. 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘입니다.

다단계 큐
우선 순위에 따른 큐를 여러 개 사용하고, 큐마다 라운드 로빈이나 FCFS 등 다른 스케줄링 알고리즘을 적용하는 것을 말하며, 큐 간의 프로세스 이동이 안되므로 스케줄링 부담이 적지만 유연성이 떨어지는 특징이 있습니다.

profile
영원한 뉴비. 꾸준히 한다면 언젠가는 높은 곳에 도달할지도?

0개의 댓글