0. 스케줄링(Scheduling)이란?

  • 스케줄링은 컴퓨터의 자원을 보다 효율적으로 이용하기 위하여 작업 순서와 시간을 할당하는 것.
  • 즉, 프로세스(실행 중인 프로그램)들이 자원을 사용하는 순서(우선순위)를 결정하는 일.
  • 스케줄링 작업을 수행하는 프로그램을 스케줄러(Scheduler)라고 한다.
  • 스케줄링 기법은 선점형과 비선점형으로 나뉜다.

 

1. 선점형(Preemptive)

  • 하나의 프로세스가 다른 프로세스 대신에 CPU를 강제로 차지할 수 있다.(스레드)
  • 프로세스의 우선순위가 높은 프로세스가 CPU를 먼저 차지하기가 쉬어 높은 우선순위의 프로세스들이 급히 실행해야 할 경우에 유용
  • 많은 오버헤드를 초래한다.
  • - 문맥 교환이 비선점에 비해 많다.
  • - 대화식 시분활 시스템에서 빠른 응답시간을 유지하는데 요구된다.

* 오버헤드(Overhead) : 근본적으로 해야 할 일들을 하기 위해서 준비하는 작업이나, 먼저 처리해두어야 하는 일 등으로 원래 하려던 작업이 아닌, 부가적인 작업을 일컫으며 이를 위해 추가적으로 시간, 메모리, 자원이 사용된다.

 

2. 비선점형(Non-Preemtive)

  • 하나의 프로세스가 CPU를 할당받으면 종료되기 전까지 CPU를 독점하여 사용한다. 
  • 다른 프로세스가 CPU를 강제로 차지할 수 없다. (코루틴)
  • 응답시간의 예측이 쉽고, 문맥 교환 횟수가 적다
  • CPU 사용 시간이 짧은 작업이 사용시간이 긴 작업을 기다리는 경우가 발생할 수 있다.
  • 일괄처리(Batch Processing)에 유리

+ Recent posts