프로그램은 하드디스크에 존재하는 명령어집합으로서 실행 시 다음과 같은 과정을 거칩니다.
하드디스크에 적재되어 있는 프로그램이 프로세스 풀에 올라옵니다. 이때가 프로세스 실행주기 중 new에 해당됩니다.
장기 스케쥴러에 의해 프로세스 풀에 올라와 있는 프로세스 중 하나가 선택되어 ready que로 들어오게 되어 메모리가 할당됩니다.
단기 스케쥴러에 의해 ready que에 있는 프로세스 중 하나에게 cpu 자원을 할당합니다. 자원을 할당 받은 프로세스는 running 상태가 됩니다. 이때 ready que에서 어떤 프로세스를 선택할지는 cpu 스케쥴링 알고리즘에 의해 결정됩니다.
위가 프로세스 관점에 본 프로그램 동작 과정입니다. 그러나 유닉스 계열에서는 루트 프로세스만 이렇게 실행을 하고 다른 프로세스는 아래와 같은 복제기법을 거쳐 실행됩니다.