CPU 스케쥴링 알고리즘

kler_HJ·2020년 7월 8일

INTERVIEW

목록 보기
5/5

CPU 스케쥴링

CPU 스케쥴링 알고리즘에는 현재 처리중인 작업을 모두 완료하고 다음 작업을 처리하는 비선점 방식과, 정해진 규칙에 따라 우선순위가 높은 다음 프로세스로 작업을 이행하는 선점 방식이 있다.

비선점 방식

1. FCFS (Fisrt Come First Served)

먼저 도착한 프로세스부터 처리하고, 도착한 순서대로 다음 프로세스를 처리하는 방식이다.
작업 시간이 긴 프로세스가 도착하면 뒤에 프로세스가 오래 대기해야하는 단점이 있다.

2. SJF (Shortest Job First)

도착한 프로세스들 중에서 작업 시간이 가장 짧은 프로세스 부터 처리하는 방식이다.
작업 시간이 짧은 프로세스를 우선적으로 처리함으로써 평균 대기시간을 낮출 수 있는 장점이 있다.

3. Priority Scheduling

작업 대기 큐에 있는 프로세스가 정해진 우선순위에 따라 처리되는 방식이다.
실행 중에 더 높은 우선순위를 가진 프로세스가 도착하면 문맥 교환이 일어나는 선점 방식의 우선 순위 스케쥴링 방식도 존재한다.

선점 방식

1. RR (Round Robin)

프로세스를 정해진 Time Slice (시간 할당량) 만큼 처리한 후 대기 큐에 있는 프로세스를 처리하는 방식이다. 새로 도착한 프로세스와 정해진 시간만큼 실행이 완료된 프로세스는 대기 큐의 끝에 들어간다.
타임 슬라이스를 작게 할당하면, 멀티 쓰레드 상에서 동시에 프로세스를 처리하는 것 같이 보이는 효과를 낼 수 있지만, 잦은 문맥 교환(Context Switching)에 작업 효율이 떨어지게된다.
반대로 타임 슬라이스를 너무 크게 할당하면, 먼저 도착한 프로세스를 끝까지 처리하는 FCFS 방식과 유사하게 된다.

2. SRT (Shortest Remaining Time)

SJF의 선점형 방식으로, 프로세스 처리 중간에 남은 작업 시간이 더 짧은 프로세스가 들어오면, 해당 프로세스에 작업을 넘겨주는 방식이다.


참고

profile
더 나은 제품과 디자인에 대해 고민하기를 즐기는 Front-end 개발자입니다.

0개의 댓글