전공 지식/OS

# 04-2 스케줄러

Calice 2022. 11. 7. 20:09

1. 스케줄러란 

 

정의

  • 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 역할

 

 

종류

 

(1) 장기 스케줄러(Long-term scheduler) / 잡 스케줄러(Job scheduler)

- degree of multiprogramming 제어

- 디스크와 메모리 사이의 스케줄링 담당

- 어떤 프로세스에 메모리를 할당할여 ready queue로 보낼지 결정하는 역할

 

(2) 단기 스케줄러(Short-term scheduler) / CPU 스케줄러(CPU scheduler)

- 메모리와 CPU 사이의 스케줄링 담당

- 어떤 프로세스를 running 상태로 전환 시킬지 결정하는 역할

 

(3) 중기 스케줄러(Mid-term scheduler) / 스와퍼(Swapper)

- degree of multiprogramming 제어

- 여유 공간을 마련하기 위해 프로세스를 통째로 메모리에서 디스크로 쫓아내는 역할(swap in/ swap out)

 

 

 

목적

  • 우선순위 제도 : 우선순위가 높은 프로세스를 먼저 실행합니다.
  • 오버헤드 최소화 : 오버헤드를 최소화합니다.
  • 응답시간 최소화 : 작업을 지시하고 반응하기 시작하는 시간을 최소화합니다.
  • 반환시간 : 프로세스를 제출한 시간부터 실행이 완료되는 시간을 최소화합니다.
  • 반환시간 최소화 : 프로세스를 제출한 시간부터 실행이 완료될떄까지 걸리는 시간을 최소화합니다.
  • 대기시간 최소화 : 프로세스가 준비상태 큐에서 대기하는 시간을 최소화합니다.
  • 균형있는 자원의 사용 : 메모리, 입출력장치 등의 자원을 균형있게 사용합니다.
  • 무한 연기 회피 : 자원을 사용하기 위해 무한정 연기되는 상태를 회피합니다.