스케줄러의 종류

임지원·2024년 6월 10일

스케줄러(Scheduler)

어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 모듈을 지칭한다.

스케줄러 종류

단기 스케줄러

메모리 내의 준비하고 있는 작업 중 실행 할 프로세스 선택하여 CPU할당

  • CPU와 메모리 사이의 스케줄링을 담당한다
  • 프로세스의 상태 변화 ready > running > waiting > ready
  • CPU 스케줄러라고도 함
  • 일반적으로 생각하는 스케줄러

중기 스케줄러

너무 많은 프로세스에게 메모리를 할당하면 시스템의 성능이 저하될 수 있기에 이를 해결하기 위해 메모리에 있는 프로세스의 수 관리

  • 메모리의 여유공간을 마련하기 위해 프로세스를 디스크로 보내는 swapping
    (프로세스의 메모리를 통째로 빼앗아 디스크 스왑 영역에 저장하는 스왑 아웃을 하고 여유가 생기면 스왑 인을 하는 행위)
  • 프로세스의 상태 변화 ready > suspended

장기 스케줄러

어떤 프로세스를 ready queue에 넣을 것인지 결정

  • 메모리와 디스크 사이의 스케줄링을 담당
  • 하드 디스크에 있는 프로그램을 메모리에 로드
  • 몇개의 프로그램이 올라갈 것인지 제어
  • 프로세스 상태의 변화 new > ready

스케줄링 알고리즘

비선점 스케줄링

  • CPU할당을 받으면 작업 종료까지 다른 프로세스는 CPU점유가 불가능한 스케줄링 방식

1. FIFO

가장 먼저 들어온 프로세스가 먼저 실행됨

  • 장점
  1. 간단하다
  • 단점
  1. 비선점식으로 대화식 프로세스에 적합하지 않다
  2. 긴 작업이 짧은 작업 앞일 때 대기시간이 길어진다.

2. SJF(Shortest Job First)

실행시간이 짧은 프로세스에게 자원을 할당

  • 장점
  1. 평균 대기시간이 짧다.
  • 단점
  1. 긴 작업은 오래 기다려야한다.
  2. CPU할당이 공평하지 않다.

3. 우선순위(비선점)

프로세스마다 우선순위를 부여하여 높은 우선순위가 먼저 자우너 할당

  • 장점
  1. 프로세스의 중요도를 명시할 수 있다.
  2. 실시간 시스템에 유리
  • 단점
  1. 낮은 프로세스는 계속 기다려야한다.

선점 스케줄링

  • 현재 프로세스가 종료되지 않아도 다른 프로세스에게 CPU할당하는 방식
    1. 우선순위(선점)

    하나의 프로세스가 CPU를 차지하고 있어도 우선순위가 높은 다른 프로세스가 대기하는 경우 현재 프로세스를 중단 시키고 우선순위가 높은 프로세스에게 CPU를 할당하는 스케줄링 방식

  • 장점

  1. 응답이 빠르다.
  • 단점
  1. 처리시간 예측이 어렵다.
  2. 계속 들어오는 경우 오버헤드 발생

2. RR(Round Robin)

동일한 할당시간을 갖고, 실행 후 맨끝으로 가서 기다림

  • 장점
  1. 모든 프로세스가 공정하다.
  • 단점
  1. 타이머가 필요하다.
  2. 시간이 짧을경우 오버헤드 발생
profile
백엔드 새싹

0개의 댓글