-
[운영체제] CPU 스케쥴링 알고리즘CS지식 2023. 11. 16. 21:16
CPU 스케줄러는 프로세스에서 해야할 일을 스레드 단위로 CPU에 할당한다.
이 때 할당하는 규칙을 CPU 스케쥴링 알고리즘이라고 한다.
cpu 스케쥴링 알고리즘의 목표 :
cpu 이용률은 높게 (주어진 시간에 많은 일을 하도록), 프로세스의 응답시간은 짧게 설정하는 것
CPU 스케쥴링 알고리즘은 우선 비선점형,선점형로 나눌 수 있다.
비선점형 non-preemptive
프로세스가 한번 cpu를 점유하면 끝날 때까지 나가지 않는다.
(프로세스가 running 과 terminate만 겪는다)
따라서 *컨텍스트 스위칭으로 인한 부하가 적다.
* 컨텍스트 스위칭 : CPU에 실행할 프로세스를 교체하는 기술
교착 상태가 일어날 수 있다.
FCFS : First Come First Served
가장 먼저 온것을 가장 먼저 처리하는 단순한 알고리즘
실행시간이 긴 프로세스 때문에 convoy 현상이 일어날 수 있다.
*convoy 현상 : cpu 사용시간이 짧은 프로세스들이 사용시간이 긴 프로세스를 계속 기다리게 되는 현상
SJF : Short Job First
실행시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘
Starvation(긴 실행시간을 가진 프로세스가 계속해서 실행되지 않는 현상)이 일어난다.
평균대기시간은 짧은 편.
하지만 여기서 생각해봐야할 점은, 사실 프로세스의 실행시간은 미리 알 수 없고 과거의 실행했던 시간을 추측해서 사용하므로 정확히 가장 짧은 프로세스가 먼저 실행되는 것은 아닐 수 도 있다는 점이다
우선순위 : Priority Scheduling or HRN (highest response-ratio next)
Aging 기법을 통해 SJF의 단점을 보완한 알고리즘
*Aging 기법 : 오래된 작업일수록 우선순위를 높이는 방법
HRN는 우선순위 = (대기시간+실행시간) / 실행시간
선점형 preemptive
멀티태스킹,인터럽트 처리 등의 이유로 운영체제가 현재 점유중인 프로세스를 컨텍스트 스위칭으로 중단시켜버리고, 강제로 다른 프로세스에 CPU 소유권을 할당하는 방식.
라운드 로빈 : Round Robin
시분할 알고리즘,우선순위 알고리즘
할당시간동안 실행하고 그 시간동안 끝나지 않으면 다시 준비 큐의 맨 뒤로 가는 알고리즘
할당 시간이 너무 크면 FCFS이 되고
할당 시간이 너무 작으면 컨텍스트 스위칭 비용이 커진다.
일반적으로 전체 작업시간은 길어지지만, 평균 응답시간은 짧아진다.
로드밸런서에서 트래픽 분산 알고리즘으로 사용됨
SRF : Shortest Remaining Time First
시분할 알고리즘 중에서 하나
SJF와 비슷하게
남아있는 작업시간이 가장 작은 프로세스를 고르는 것.
추가로 공부해보면 좋을 블로그
[운영체제] Context Switch
컨텍스트 스위칭은 CPU에 실행할 프로세스를 교체하는 기술이다. 프로세스 스케줄링에서 프로세스를 계속해서 바꿔주는 기술들에 사용되는 게 바로 컨텍스트 스위칭이다. 프로세스는 다음에 실
velog.io
참고 도서
면접을 위한 CS 전공지식노트
'CS지식' 카테고리의 다른 글
[실습] http api 통신 구현(HttpURLConnection,RestTemplate,WebClient) (0) 2023.12.28 유지보수 가능한 코딩의 기술 자바편 - 책 리뷰 (0) 2023.05.11 의미있는 코딩 포스트를 작성하는 법(Everyone Prefers to Read Clean Posts) (0) 2022.11.24