foreground-background는 두 개의 waiting list를 기반으로 이해할 수 있다.
우선 두 개의 waiting list 중에서 첫 번째 list를 foreground라고 부르고
두 번째 list를 background라고 부른다.
그 이유는 모든 프로세스는 생성이 되면 초기에 foreground로 가기 때문이며, foregound에서 실행 시간을 사용한 후에 모든 프로세스는 background로 옮겨지기 때문이다.
기존에 존재하는 프로세스 대신에 새로운 프로세스를 생성하고 그것을 A 프로세스라고 가정하면 A 프로세스는 생성이 되자마자 그 즉시 foreground에서 실행 시간에 맞게 동작하기 위한 준비를 하면서 그와 동시에 강제로 이전 프로세스를 중지하고 background로 옮긴다.
background list로 옮겨진 프로세스들은 오직 foreground list가 비어있을 때 동작한다.
foreground-background 알고리즘의 장점은 새롭게 생성된 프로세스에게 그 즉시 실행하기 위한 기회를 주는 것이다.