스케줄링이란?
스케줄링은 운영체제가 여러 작업중에서 어떤 작업에 CPU를 먼저 할당할지 결정하는 과정이다.
스케줄링이 필요한 이유
CPU는 한번에 한개의 작업만 처리할 수 있다.
하지만 실제 환경에서는 여러 프로그램이 동시에 실행되는것처럼 보인다.
이것을 가능하게 하기 위해 운영체제는 CPU를 여러 작업에 나눠서 사용하는 스케줄링을 수행한다.
동작 원리
- 실행을 기다리는 작업들이 준비상태로 대기한다.
- 운영체제가 하나의 작업을 선택한다.
- CPU를 할당하여 작업을 실행한다.
- 일정 시간이 지나면 실행을 중단한다.
- 다른 작업을 선택하여 실행한다.
- 위 과정을 반복하면서 여러 작업이 동시에 실행되는것처럼 보이게 한다.
Context Switching
작업을 전환하는 과정에서 현재 실행중인 작업의 상태를 저장하고, 다음 작업의 상태를 불러오는 과정이 필요하다.
이를 Context Switching이라고 한다.
주요 스케줄링 방식
- FCFS (First Come First Serve)
먼저 도착한 작업을 먼저 처리하는 방식 - SJF (Shortest Job First)
실행 기간이 짧은 작업을 먼저 처리하는 방식 - Round Robin
일정 시간 단위로 작업을 번갈아 실행하는 방식