다중 수준 큐는 일반적으로 실시간, 커널 스레드, 대화형 및 백그라운드 프로세스와 같은 광범위한 프로세스 클래스를 구분하기 위한 최상위 일정 분야로 사용됩니다. 각 클래스 내의 특정 스케줄러에서 해당 클래스 내에서 실행할 프로세스를 결정합니다. Windows, Linux 및 OS X를 포함한 대부분의 운영 체제는 다단계 큐 및 일정 클래스의 형태를 지원합니다. 스케줄러는 인터럽트에 의해 호출되고 다른 프로세스가 실행되도록 실행 중인 상태로 프로세스를 이동할 수 있는 경우 선점된 스케줄러입니다. 위의 목록에서 마지막 두 이벤트가 발생할 수 있습니다. 스케줄러가 프로세스에서 CPU를 빼앗을 수 없는 경우 협동 또는 비선인성 스케줄러입니다. OS X 이전의 마이크로 소프트 윈도우 3.1 또는 애플 맥 OS와 같은 오래된 운영 체제는 협력 스케줄러의 예입니다. 이전 일괄 처리 시스템에는 실행-완료 스케줄러가 있었으며 다른 프로세스가 실행되기 전에 프로세스가 종료되도록 실행되었습니다. 가장 짧은 작업 우선(SJF): 버스트 시간이 가장 짧은 프로세스가 먼저 예약됩니다. 두 프로세스가 동일한 버스트 시간을 가지고 있다면 FCFS는 넥타이를 깨는 데 사용됩니다. 비선인성 스케줄링 알고리즘입니다. 프로세스 를 예약하는 가장 간단한 방법은 FIFO(선착권) 실행 큐를 유지하는 것입니다. 새 프로세스는 큐의 끝으로 이동합니다.

스케줄러가 프로세스를 실행해야 하는 경우 큐의 선두에 있는 프로세스를 선택합니다. 이 스케줄러는 선제적이지 않습니다. 프로세스가 I/O에서 차단해야 하는 경우 대기 상태가 되고 스케줄러가 큐의 헤드에서 프로세스를 선택합니다. I/O가 완료되고 대기(차단) 프로세스가 다시 실행될 준비가 되면 큐끝에 배치됩니다. 선착오(FCFS): 프로세스의 도착 시간에 따라 예약하는 가장 간단한 스케줄링 알고리즘입니다. 먼저 제공 예약 알고리즘은 먼저 CPU를 요청하는 프로세스가 먼저 CPU를 할당한다고 명시합니다. FIFO 큐를 사용하여 구현됩니다. 프로세스가 준비 큐에 들어가면 PCB가 큐의 꼬리에 연결됩니다.

CPU가 무료이면 큐의 헤드에 있는 프로세스에 할당됩니다. 그런 다음 실행 중인 프로세스가 큐에서 제거됩니다. FCFS는 비선적 스케줄링 알고리즘입니다. 다음 섹션에서는 몇 가지 일정 알고리즘을 살펴보겠습니다. 장점: 우선 순위 스케줄링은 각 프로세스의 상대적 중요성을 정확하게 정의할 수 있는 좋은 메커니즘을 제공합니다. Linux는 주기적으로 활성 부하 분산을 수행합니다. 스케줄러는 스케줄링 도메인 계층 위로 이동하고 길을 따라 각 그룹을 확인합니다. 정책 규칙에 따라 균형이 다른 그룹으로 간주되는 경우 작업은 한 CPU의 실행 큐에서 다른 CPU의 실행 큐로 이동되어 도메인의 균형을 조정합니다. 1) 선착오(FCFS)이 스케줄링 알고리즘에서 큐에 입력된 첫 번째 프로세스가 먼저 처리됩니다. 이것은 선제적이지 않은 선제적 스케줄링 알고리즘입니다.

선제적 스케줄링을 사용하면 스케줄러가 CPU를 다른 프로세스를 실행하기 위해 너무 오래 실행되었다고 결정한 프로세스에서 CPU를 제거하여 응답 시간을 제어할 수 있습니다. 다음 I/O 작업 또는 다른 시스템 호출까지 프로세스를 완료하거나 실행할 수 있도록 하는 대신 컨텍스트 전환 프로세스의 오버헤드를 처리해야 하기 때문에 비선권적 스케줄링보다 더 많은 오버헤드가 발생합니다. 그러나 더 높은 수준의 동시성과 더 나은 대화형 성능을 허용합니다. 운영 체제는 선점 및 비-선점- 두 가지 유형의 스케줄링 프로세스 실행을 사용합니다.