CPU burst: I/O 수행 없이 CPU 작업만을 수행하는 시간.
I/O burst: 프로세스가 I/O 요청으로 인해 수행을 중단하고 기다리는 시간.
프로세스는 CPU burst와 I/O burst가 스위칭되어가면서 동작한다.
CPU-bound process: 상대적으로 CPU burst 시간이 긴 프로세스. 예를 들어 머신러닝 코드를 돌린다고 하면 I/O는 거의 없고 CPU burst time이 훨씬 길다. CPU-bound 프로세스는 타임퀀텀을 거의 다 사용한다. I/O가 발생하지 않고 타이머 인터럽트에 의해 레디 큐로 넘어간다. I/O bound 프로세스보다 CPU를 많이 사용한다.
I/O-bound process: 상대적으로 I/O burst 시간이 긴 프로세스. GUI나 로딩바가 차오르는 등의 입출력에 따른 반응을 보여줘야 하는 경우. 사용자와 interactive하게 동작하는 프로세스일 확률이 높다. 타임퀀텀을 다 사용하는 경우가 적다. 프로세스들 통계를 내보면 CPU bound process보다 I/O bound process가 더 많다.
Dispatch: 현재 실행 중인 프로세스를 중단하고 다음 실행할 프로세스를 선택하는 작업. 컨텍스트 스위칭의 일부로 간주된다. Dispatch latency는 dispatcher가 한 프로세스를 멈추고 다른 프로세스를 실행시킬 때까지의 시간이다. 이 구간에서 일어나는 일들은 현재 프로세스 상태를 PCB에 저장하고 스케줄러를 통해 프로세스를 선정하고 다음 실행할 프로세스의 PCB를 복구하는 과정으로, 컨텍스트 스위칭에서 일어나는 작업과 동일하며 커널 모드에서 이루어진다.
Dispatch 과정 안에 스케줄링이 존재한다. Dispatch Latency가 길어지면 효율이 나빠지기 때문에 최대한 시간을 줄여야 한다. PCB 백업 및 복구 과정은 상수 시간에 걸리는 고정된 작업이지만, 스케줄링은 정책에 따라서 시간이 변동될 수 있다. 따라서 Dispatch Latency를 줄이기 위해서 스케줄링 알고리즘을 최적화할 필요가 있다.