본문 바로가기
Knowledge/CS

[CS] 스케줄링 알고리즘

by YoonJong 2022. 12. 13.
728x90

이전 시분할 관련한 포스팅에 이어 CPU 스케줄러에 대해 알아보자.

먼저, 현대 운영체제에서는 선점형 방식을 사용하고 있다.

이유는 프로세스가 CPU를 독점하지 못하게 할 수 있어 효율적으로 운영이 가능하기 때문이다.

 

스케줄링 알고리즘에 따라 프로세스에게 해야 하는 일을 스레드 단위로 CPU에 할당 하는 것을 의미한다.

 

해당 알고리즘의 목표는 프로세스가 효율적으로 작업될 수 있도록 하는 것이다.

1. CPU 이 최대한 일을 할 수 있게.

2. 주어진 시간에 많은 일을 하도록.

3. 준비 큐에 있는 프로세는 적게.

4. 응답시간은 짧게.

 

 

CPU 스케줄링 알고리즘의 종류로는 크게 비선점형과 선점형 방식이 있다.

두가지의 차이는 프로세스가 CPU 를 점유하고 있을 때 가로챌수 있는지 없는지에 대한 차이이다.

 

비선점형 방식은 프로세스가 CPU를 점유하고 있으면 뺏을 수 없다.

1. FCFS ( First Come First Serve ) 

큐 알고리즘처럼 먼저 온것을 먼저 처리한다.

가장 공평한 방법인 것 처럼 보일 수 있지만, 처음온 프로세스가 굉장히 긴 작업이라면, 이후 프로세스는 짧은 작업이라도

첫번째 프로세스가 끝날 때 까지 기다려야 할 수 있다.

 

2. SJF ( Shortest Job First )

실행시간이 가장 짧은 프로세스를 먼저 실행한다.

실제 실행시간이 얼마나 걸릴지 알 수 없기때문에, 과거의 실행시간을 토대로 추측해 사용한다.

 

3. 우선순위 알고리즘

오래된 작업일 수록, 우선순위가 높을 수록 먼저 실행하는 알고리즘

작업관리자에서 우선순위를 직접 설정할 수 있다.


선점형 방식은 프로세스가 CPU를 할당받아 실행중이더라도, 운영체제가 뺏을 수 있다.

처리시간이 긴 프로세스의 CPU 독점 사용을 막을 수 있어 효율적으로 운영이 가능하다.

현대 운영체제가 사용하는 방식이다.

 

라운드로빈

각 프로세스는 동일한 할당 시간을 주고 그 시간안에 끝나지 않으면 다시 준비 큐의 가장 뒤로 간다.

 

SRF(Shortest Remaining Time First)

중간에 더 짧은 작업이 들어오면 수행하던 프로세스는 중지되고 새로 들어온 작업을 진행한다.

 

728x90

'Knowledge > CS' 카테고리의 다른 글

[CS] JVM 이란?  (0) 2022.12.17
[CS] Spring MVC 이란?  (0) 2022.12.16
[CS] 시분할 시스템이란?  (0) 2022.12.12
[CS] Overriding 과 Overloading의 차이점  (0) 2022.12.09
기술면접 주요질문 - 공개X  (0) 2022.12.09

댓글