본문 바로가기
CS 지식

[운영체제] 스케줄러

by chanfficial 2023. 2. 5.

스케줄러(Scheduler)

: 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중 하나를 선택하는 역할을 수행한다. 가장 자주 사용되는 스케줄러는 장기 스케줄러와 단기 스케줄러이며 주로 일괄처리 시스템에 사용된다.

 

장기 스케줄러(Long Term Schedular)

  • 작업 스케줄러, 승인 스케줄러 라고도 부른다.
  • 디스크 내의 작업을 어떤 순서로 메모리에 가져올지 결정한다.
  • 디스크와 같은 저장장치에 작업들을 저장해둔 후, 필요할 때 실행할 작업을 작업 큐에서 꺼내 준비 큐를 통해 메인 메모리에 적재한다.
  • 장기 스케줄러에 의해 new 상태에서 ready 상태로 전이를 승인한다.

 

단기 스케줄러(Short Term Scheduler)

  • 프로세스 스케줄러, CPU 스케줄러 라고도 부른다.
  • CPU 에 필요한 데이터를 확보한 후, 메모리에 있는 프로세스 중 하나를 선택해서 CPU 에게 할당한다.
  • 준비 큐에 있는 프로그램 중 먼저 도착한 프로세스에 CPU 를 할당한다.
  • 단기 스케줄러에 의해 ready 상태에서 running 상태로 전이된다.

 


 

CPU 스케줄러

  • CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다.
  • CPU 스케줄러의 스케줄링은 어떤 프로세스에 CPU 를 배정할지 결정하는데, 이 작업은 컴퓨터 시스템의 효율에 직결되는 중요한 일이다.

 

CPU 스케줄링의 목적

  1. 공평성 : 모든 프로세스가 자원을 공평하게 배정받아야 하고 특정 프로세스가 배제되면 안된다.
  2. 효율성 : 시스템 자원을 놀리는 시간 없이 스케줄링해야 한다.
  3. 안정성 : 우선순위를 사용하여 중요한 프로세스가 먼저 처리되도록 해야한다.
  4. 반응시간 보장 : 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하므로 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 한다.
  5. 무한연기 방지 : 특정 프로세스의 작업이 무한히 연기되어서는 안된다.

 

CPU 스케줄링의 단계

  1. 고수준 스케줄링(long-term scheduling) : 가장 큰 틀에서 이루어지는 CPU 스케줄링으로, 시스템 내의 전체 작업 수를 조절한다. 시스템 과부하를 막기 위해 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정하므로 시스템 내에서 동작 시 실행 가능한 프로세스의 총 개수가 정해진다.
  2. 중간 수준 스케줄링 : 중지(suspend)와 활성화(active)로 전체 시스템의 활성화된 프로세스 수를 조절한다. 이로 인해 저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할을 한다.
  3. 저수준 스케줄랑(short-term scheduling) : 가장 작은 단위의 스케줄링으로 어떤 프로세스에 CPU 를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정한다. 중간 수준의 스케줄링은 프로세스를 보류 상태로 보내고, 저수준 스케줄링은 대기 상태로 보낸다.