스케줄링

김태희·2020년 12월 23일
0
post-custom-banner

스케줄링이란?


운영체제가 모든 프로세스들이 시간적, 공간적으로 가장 효율적으로 실행되도록 관리하는 것을 스케줄링이라고 한다.

스케줄링은 장기, 중기, 단기 스케줄링의 단계로 이루어져이 있다.

  • 장기 스케줄링

    • 어떤 프로세스가 시스템의 자원을 사용할 수 있도록 할 것인가를 결정하여 준비 상태 큐로 보내는 작업이다.
    • 작업 스케줄러에 의해 수행된다.
    • 작업 스케줄링, 상위 스케줄링이라고도 한다.
    • 수행 빈도가 적고, 느리다.
  • 중기 스케줄링

    • 어떤 프로세스들이 CPU를 할당받을 것인지를 결정하는 작업이다.
    • CPU를 할당받으려는 프로세스가 많을 경우, 프로세스를 일시 대기시킨 후 활성화해서 일시적으로 부하를 조절한다.
  • 단기 스케줄링

    • 프로세스가 실행되기 위해 CPU를 할당받을 시기와 할당받을 프로세스를 지정하는 작업을 의미한다.
    • 프로세서 스케줄링, 하위 스케줄링이라고도 한다.
    • 컨텍스트 스위치는 프로세서 스케줄러에 의해 수행된다.
    • 수행 빈도가 잦고, 빠르다.

스케줄링 기법 종류


비선점 스케줄링

특정 프로세스에 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.

한 프로세스가 CPU를 할당받으면, 해당 프로세스가 완료될 때 까지 할당받은 CPU를 계속 사용한다.

프로세스 응답 시간을 예측하기 쉽다.

선점 방식보다 스케줄러 호출 빈도가 낮고, 컨텍스트 스위치에 의한 오버헤드가 적다.

일괄 처리 시스템(프로그램 흐름에 따라 순차적으로 처리하는 방식)에 적합하다.

짧고 중요한 작업이 길고 중요하지 않은 작업이 끝날 때 까지 기다리는 경우가 발생할 수 있다.

선점 스케줄링

어떤 프로세스가 CPU를 할당받아 실행되고 있을 때, 우선순위가 더 높은 다른 프로세스가 해당 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.

우선순위가 높은 프로세스를 빠르게 처리할 수 있다.

주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용된다.

많은 오버헤드를 발생시킨다.

profile
Web Back-End (Spring, JPA, AWS)
post-custom-banner

0개의 댓글