본문 바로가기
운영체제

운영체제 - 프로세스 스케줄러

by icblue21 2022. 12. 5.
728x90

스케줄러

프로세스의 실행은 목표에 따라 스케줄러가 담당한다. 예를 들어 프로세스 응답 시간을 짧게 가져가고 싶은 경우엔 시분할 시스템을, CPU 활용도를 최대로 높혀 프로세스를 빨리 실행하고 싶은 경우엔 멀티 프로그래밍을 사용한다.

이번 글에서는 다양한 스케줄러 기법에 대해 정리해보았다.

 

FIFO 스케줄링

 

FIFO 스케줄링은 먼저 들어온 프로세스를 먼저 실행 시키는 알고리즘이다. 가장 간단한 스케쥴러이며 배치 처리 시스템이라 불리기도 한다. 프로세스가 저장매체를 읽는다던지, 프린팅을 한다던지 하는 작업 없이 처음부터 끝까지 쭉 CPU를 사용한다.

 

 

최단 작업 우선(Shortest Job First) 스케줄링

 

최단 작업 우선 스케줄링은 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행 시키는 알고리즘이다.

 

우선순위 기반(Priority Based) 스케줄링

 

우선순위 기반 스케줄링은 우선순위가 높은 프로세스를 먼저 실행 시키는 알고리즘이다. 프로세스마다 우선순위를 미리 지정하는 정적 우선순위 기법과 스케줄러가 상황에 따라 우선순위를 동적으로 변경하는 동적 우선순위 기법이 있다.

 

 

Round Robin 스케줄링

라운드 로빈 스케줄링은 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum/Slice) CPU를 할당하는 방식의 CPU 스케줄링 알고리즘이다.

 

 

 

프로세스 상태 기반 스케줄링

 

프로세스 상태 기반 스케줄링은 멀티 프로그래밍 기반으로, 프로세스의 상태를 보고 어떤 프로세스를 실행할 지 정하는 알고리즘이다.

running state : 현재 CPU에서 실행중인 상태

ready state : CPU에서 실행 가능 상태(실행 대기 상태)

block state : 특정 이벤트 발생 대기 상태 (ex. 프린팅 완료 )

 

 

댓글