[운영체제] CPU 스케쥴링

Wuchang·2023년 7월 19일

운영체제

목록 보기
8/9

CPU 스케쥴링 알고리즘

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

  • CPU 알고리즘은 선점형, 비선점형 방식으로 나뉨

비선점형

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

FCFS

FCFS(First Come, First Served)는 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘이다. 만약 길게 수행되는 프로세스가 있다면, 'convoy effect' 발생할 수 있음

SJF

SJF(Shortest Job First)는 실행시간이 짧은 프로세스를 가장 먼저 실행하는 알고리즘이다.
긴 시간을 가진 프로세스가 실행되지 않는 'starvation'현상이 일어날 수 있고, 평균 대기 시간이 가장 짧다.
하지만 실제로는 실행 시간을 알 수 없기 때문에 과거의 실행했던 시간을 토대로 추측해서 사용한다.

우선순위

SJF 스케쥴링의 보완된 버젼이다. SJF 의 경우 긴 시간의 프로세스가 할당되지 않는 문제가 있었는데, 해당 프로세스에 우선순위를 부여해 단점을 보완했다.

선점형

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

RR(라운드로빈)

RR은 현대 컴퓨터가 쓰는 스케쥴링인 우선순위 스케쥴링의 일종으로, 각 프로세스는 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시 ready queue의 뒤로 가는 알고리즘이다.

  • 할당시간이 너무 크면 FCFS 가 되고, 너무 작으면 컨텍스트 스위칭이 잦아져 비용이 커진다.

RR 알고리즘은 로드밸런서에서 트래픽 분산 알고리즘으로도 쓰인다

SRF(Short Remaining job First)

기존의 SJF는 중간에 실행시간이 더 짧은 프로세스가 들어와도 기존에 실행되고 있는 작업을 다 마치고 다음 작업을 이어가는데, SRF 의 경우 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행한다.

다단계 큐

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

profile
우창의 개발일지🐈

0개의 댓글