먼저 스케줄러란 어떤 프로세스에게 자원을 할당할 지를 결정하는 운영체제 커널의 모듈을 지칭한다. 스케줄러에는 장기, 단기, 중기 스케줄러가 있다.
또한, 프로세스를 스케줄링하기 위한 Queue에는 세 가지 종류가 존재한다.
Job Queue
: 현재 시스템 내에 있는 모든 프로세스의 집합Ready Queue
: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합Device Queue
: Device I/O 작업을 대기하고 있는 프로세스의 집합‼️승인 (Admitted) : 프로세스 생성이 가능하여 승인됨
‼️스케줄러 디스패치 (Scheduler Dispatch) : 준비 상태에 있는 프로세스 중 하나를 선택하여 실행시키는 것
‼️인터럽트 (Interrupt) : 예외, 입출력, 이벤트 등이 발생하여 현재 실행 중인 프로세스를 준비 상태로 바꾸고, 해당 작업을 먼저 처리하는 것
‼️입출력 또는 이벤트 대기 (I/O or Event wait) : 실행 중인 프로세스가 입출력이나 이벤트를 처리해야 하는 경우, 입출력/이벤트가 모두 끝날 때까지 대기 상태로 만드는 것
‼️입출력 또는 이벤트 완료 (I/O or Event Completion) : 입출력/이벤트가 끝난 프로세스를 준비 상태로 전환하여 스케줄러에 의해 선택될 수 있도록 만드는 것