알고리즘이란 어떠한 주어진 문제를 풀기 위한 절차나 방법을 말하는데 컴퓨터 프로그램을 기술함에 있어 실행명령어들의 순서를 의미하며 아랍의 수학자인 알고리즈미(Al-Khowarizmi)의 이름에서 유래되었다. 알고리즘에서 가장 중요한 것은 효율성이라고 할 수 있는데 동일한 문제를 푸는 데 있어 결과는 같아도 해결방법에 따라 실행속도나 오차·오류 등에 차이가 있을 수 있기 때문이다. 또한, 알고리즘은 명확해야 하는데 이를 위해 프로그래머들은 주로 순서도나 의사코드(pseudocode) 등을 이용하고 있다.CPU 알고리즘별 분류는 다음과 같다.
(1) FIFO (First In First Out) 스케줄링- 비선점 방식
선입 선출(First In First Out, 줄여서 FIFO)은 시간과 우선 순위와 관련된 데이터를 정리하고 이용하는 방식을 줄여 말하는 것이다. 이러한 표현은 선입선처리 행위에 따라 순서대로 처리함으로써 기술을 처리하거나 수요 충돌을 관리하는 대기의 원칙을 말한다. 다시 말해, 먼저 온 것은 먼저 처리되고, 처리가 끝날 때까지 다음 것은 대기 상태에 놓이게 된다.
① 가장 간단한 스케줄링 기법으로 프로세스들이 준비 큐 (ready queue)에 들어온 순서대로 디스패치 된다.
② 일란 한 프로세스가 프로세서를 할당 받으면 그 프로세스가 끝날 때 까지 계속 수행을 한 다. 결국 FIFO 스케줄링은 비선점(Nonpreemptive) 기법임을 알 수 있다.
③ FIFO 기법은 차례대로 처리되기 때문에 예측이 가능하다.