linux의 쉘이 이론적으로는

1. parent task에서 child를 생성 - fork()
2. child task에서 system call 함수를 호출 - exec()
3. wait(child)로 zombie화 방지
4. parent task 종료.

이런 식으로 이뤄지는 것으로 배웠습니다.

그런데 한가지 의문점이 있습니다.
shell을 복수로 생성할려면, 무한으로 child를 생성해야 하는지, 아니면 backgroud연산자를 써야 하는지 헷갈립니다.

일단 목적은 shell을 동시에 여러개를 실행시키는 겁니다.
child task와 background와의 차이점이 무엇인지 확연하게 설명된 자료가 있을까요?

ps. visio로 만든 token 분석 diagram을 새로 개설된 프로그래밍 사이트에 올릴 방법은 jpg로 변환하는 방법이 유일한가요?