CS 기초

[운영체제] CPU 스케줄러

태현123 2021. 9. 13. 21:40
728x90
반응형
SMALL

CPU의 스케줄링에 대해 알아보자.

 

스케줄링은 무엇인가?

- OS의 Ready Queue에 있는 프로세스들을 특정 우선순위를 기반으로 CPU를 할당받게 해주는 알고리즘이다.

 

스케줄링 알고리즘의 종류는 무엇이 있는가?

- FCFS (First Come First Served)

- SJF (Shortest Job First)

- Priority Scheduling

- RR (Round Robin)

 

하나씩 알아보도록 하자.

 

FCFS (First Come First Served)

- 말 그대로 먼저 온 프로세스부터 처리하는 알고리즘이다.

문제점 : 소요시간이 긴 프로세스가 먼저 도달할 경우 효율성을 낮추는 현상이 생길 수 있다.

 

SJF (Shortest Job First)

- 먼저 도착한 프로세스와 상관 없이, CPU의 처리시간이 가장 짧은 프로세스에게 먼저 할당해주는 알고리즘이다.

문제점 : 기아(Starvation) CPU의 처리시간이 긴 프로세스의 경우, 계속해서 우선순위가 뒤로 밀려날 수 있다.

 

Priority Scheduling

- 우선순위가 가장 높은 프로세스에게 CPU를 할당하는 스케줄링이다.

문제점 : 기아(Starvation)

해결책 : Aging - 아무리 우선순위가 낮은 프로세스라도, 오래 기다렸다면, 우선순위를 높여주는 형식으로 해결

 

RR (Round Robin)

- 각 프로세스는 동일한 크기의 할당시간을 갖는다. 할당 시간이 끝날 경우, 프로세스가 선점당하고, 다시 ReadyQueue의 맨 뒤로 줄을 선다. 최근에 가장 많이 사용하는 스케줄링 알고리즘이다.

장점

1. 공정한 스케줄링이다. (자원을 한 프로세스이 끝날 때까지 기다리는게 아니라, 시간이 끝나면 맨 뒤로 보내기 때문) 

2. 반응속도가 빠르다. (ReadyQueue에 n개의 프로세스와 q의 time quantum을 가지고있다고 가정하면, 모든 프로세스는 최대한 (n-1)q 시간 안에 CPU사용을 시작하게 됨을 보장할 수 있다.

주의사항

time quantum이 너무 커지면 FCFS랑 다를게 없어지고, 너무 작아지면 잦은 문맥교환으로 성능이 저하될 수 있다. 그러므로, time quantum을 적당하게 조절해주어야 한다.

반응형
LIST

'CS 기초' 카테고리의 다른 글

[운영체제] 메모리의 구조  (0) 2021.11.01
[Design Pattern] MVC Pattern  (0) 2021.09.28
[CS기초] 컴파일러, 인터프리터  (0) 2021.09.14
[운영체제] 프로세스와 쓰레드  (0) 2021.09.13