[면접을 위한 CS 지식 노트] CPU 스케쥴링 알고리즘

재오·2023년 5월 8일
2

CS

목록 보기
15/35
post-thumbnail

해당 포스트는 '면접을 위한 CS 전공지식 노트: 주홍철 지음' 책을 참고하였습니다.

프로그램이 실행될 때에는 CPU 스케쥴링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정한다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다.

비선점형 방식

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

FCFS

FCFS(First Come, First Served)는 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘이다. 준비 큐에서 오래 기다리는 현상이 발생하는 단점이 있다.

SJF

SJF(Shortest Job First)는 실행 시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘이다. 평균 대기 시간이 가장 짧다. 하지만 실제로는 실행 시간을 알 수 없다.

선점형 방식

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

라운드 로빈

라운드 로빈은 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시 준비 큐의 뒤로 가는 알고리즘이다.

SRF

SJF는 중간에 실행 시간이 더 짧은 작업이 들어와도 기존 짧은 작업을 모두 수행하고 다음 짧은 작업을 이어나가는데 SRF는 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘이다.

다단계 큐

다단계 큐는 우선순위에 따른 준비 큐를 여러 개 사용하고, 큐마다 라운드 로빈이나 FCFS등 다른 스케쥴링 알고리즘을 적용한 것을 말한다.

profile
블로그 이전했습니다

0개의 댓글