CPU 스케줄링의 개요

꿀떡냠·2024년 5월 21일

CPU 스케줄러프로세스 스케줄러라고도 하며, 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정한다. 스케줄링은 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일을 말한다.

CPU 스케줄링

  • CPU 스케줄링은 규모에 따라 고수준 스케줄링, 중간 수준 스케줄링, 저수준 스케줄링으로 구분된다.

고수준 스케줄링

  • 장기 스케줄링, 작업 스케줄링, 승인 스케줄링
  • 시스템내의 전체 작업 수를 조절한다.
  • 작업 요청이 오면 스케줄러가 시스템의 상황을 고려하여 작업을 승인할지, 거부할지를 결정한다.
  • 고수준 스케줄링에 따라 실행 가능한 프로세스의 총 개수 결정된다.
  • 메인 프레임과 같은 큰 시스템에서 규모가 큰 일괄 작업을 처리할 때 사용된다.

저수준 스케줄링

  • 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 일을 한다.
  • 준비 상태에 있는 프로세스 중 하나를 골라 실행 상태로 보내고, 실행 상태에 있는 프로세스를 대기 상태로 보내며, 대기 상태의 프로세스를 준비 상태로 보내는 것을 예로 들 수 있다.
  • 아주 짧은 시간에 일어나기 때문에 단기 스케줄링이라고 부른다.
  • 오늘날의 CPU 스케줄러는 대부분 중간 수준 스케줄링과 저수준 스케줄링으로 구성되어 있다.
  • 준비 상태에 있는 프로세스 중 어떤 프로세스를 선택할지, 어떤 기준에 따라 타임 슬라이스를 정할지 등은 시스템 성능에 많은 영향을 미친다.

중간수준 스케줄링

  • 시스템 부하를 조절하기 위한 스케줄링
  • 전체 프로세스 수를 조절한다.
  • 이미 활성화 된 프로세스 중 일부를 보류 상태로 보내고, 보류된 프로세스들은 처리 능력에 여유가 생기면 다시 활성화 된다. (프로세스 보류 상태)
  • 중지와 활성화로 전체 시스템의 활성화된 프로세스를 조절하여 과부하를 막는다.

스케줄링의 목적

특정 프로세스에 편중되지 않고 자원을 골고루 배분하여 모든 프로세스가 공평하게 작업하도록 하는 것

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

시스템의 안정성과 효율성을 높이기 위해 다른 프로세스보다 먼저 처리해야하는 프로세스가 있으므로 CPU 스케줄러는 일정 부분 공평성을 희생한다. 일반 프로세스 간에도 우선순위에 따라 CPU 배정 순서가 달라지기도 한다.

profile
백엔드 개발자로 살아남기

0개의 댓글