Develop+

스케줄링의 목적과 스케줄링 기법 정리 본문

운영체제

스케줄링의 목적과 스케줄링 기법 정리

Sunny Buddy 2021. 1. 3. 21:55
728x90

스케줄링

프로세스가 작업을 수행하려면 스케줄러로부터 cpu를 할당 받아야 한다.
할당을 받는 건 순서에 의해 받을 수 있고, 처리하게 되는 시간을 배정을 받는다.
할당 작업은 운영체제에서 구현이 되며 프로세스에게 효율적으로 자원을 할당하기 위한 정책이다.

목적

공정한 스케줄링
모든 프로세스에게 공정하게 할당을 해야함
응답시간 최소화
대화식 사용자에게는 최대한 응답시간(response time)을 빠르게 함
반환시간 최소화
프로세스를 제출한 시간부터 완료시까지 걸리는 반환시간(turn around time)을 최소화 한다.
대기시간 최소화
프로세스 준비 상태 큐에서 대기하는 시간을 최소화 해야함
앞에서 처리가 늦어지면 뒤에서 부하가 생기기 때문에 빠르게 처리해야함.
우선 순위 제도
먼저 처리해야 하는 것에 우선 순위를 부여해서 먼저 처리 함.
처리량 극대화
단위시간당 할 수 있는 처리량을 최대화 한다.
균형 있는
자원 사용
자원들이 유휴 상태에 놓이지 않도록 골고루 사용하게 함.
 
무한 연기 회피
자원을 사용하기 위해 무한정 연기하는 경우를 회피
 

스케줄링 기법

▶선점 스케줄링 (preemptive scheduling)

한 프로세스가 cpu를 할당받아서 실행하고 있을 때 다른 프로세스가 cpu를 사용하고 있는 프로세스를 중지시키고 cpu를 차지할 수 있는 스케줄링 기법을 선점 스케줄링 기법이라고 한다.
우선순위가 높은 프로세스를 먼저 수행할 때 유리하고 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 유용한다.
많은 오버헤드(overhead)를 초래함
A라는 프로세스가 cpu를 사용하고 있을 때 잠시 중지시키고 B를 시키는 상황에 사용됨.
예 )  round robin, SRT, 선점 우선 순위 등의 알고리즘이 있다.
 

▶비선점 스케줄링(non-preemptive scheduling)

이미 사용되는 cpu를 빼았지는 못하고 사용이 끝날 때 까지 기다리는 스케줄링 기법이다.
할당 받은 cpu는 끝날 때 까지 사용함.
응답 시간을 예측할 수 있고 일괄 처리 방식이 적합하다.
모든 프로세스에 요구에 대해 공정하다.
중요도가 높은 작업이 낮은 작업이 기다리는 경우가 발생할 수 있다.
 
예 ) FCFS(first come first service), SJF(shortest job first), 우선 순위, HRN(heighest response next)등이 있다.
-> 높은 우선순위가 먼저 실행되고 낮은 작업이 기다리게 된다.

 

728x90