4-1.[os] 스케줄링의 개요

CPU 스케줄러

  • 프로세스가 생성된 후 종료될 때까지의 모든 상태 변화를 조정하는 일
  • = 프로세서 스케줄러(processor scheduler)
  • 여러 프로세스 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정

  • 스케줄링의 단계

고수준 스케줄링

  • 시스템 내의 전체 작업 수를 조절
  • 전체 시스템의 부하를 고려하여 작업을 시작할지 말지를 결정
  • 작업 요청이 오면 스케줄러가 시스템의 상황을 고려하여 작업을 승인할지, 거부할지를 결정
  • = 장기 스케줄링(long-term scheduling)
  • = 작업 스케줄링(job scheduling)
  • = 승인 스케줄링(admission scheduling)

중간 수준 스케줄링

  • 프로세스 활성화 된 후에도 시스템 과부하가 걸릴 수 있음
  • 중지활성화로 과부하를 막음
  • 이미 활성화왼 프로세스 중 일부를 보류 상태로 보낸다

저수준 스케줄링

  • 어떤 프로세스에 CPU를 할당할지 (실행, 디스패치)
  • 어떤 프로세스를 대기 상태로 보낼지
  • = 단기 스케줄링(short-term scheduling)

스케줄링의 단계 정리

image.png


스케줄링의 목적

  • 공평성: 모든 프로세스가 자원을 공평하게 배정받아야하며, 자원 배정 과정에서 특정 프로세스가 배제되어서는 안 된다
  • 효율성: 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링하고, 유휴 자원을 사용하려는 프로세스에는 우선원을 줘야한다
  • 안정성: 우선 순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야한다
  • 확장성: 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야한다. 또한 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되게 해야한다.
  • 반응 시간 보장: 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야한다
  • 무한 연기 방지: 특정 프로세스의 작업이 무한히 연기되어서는 안된다

Did you find this article valuable?

Support Software Engineer at Your Service by becoming a sponsor. Any amount is appreciated!