프로세스는 여러 상태를 거치면서 실행된다.
프로세스는 그냥 갑자기 튀어나오는게 아니라 부모 프로세스로부터 태어나야한다. 컴퓨터를 부팅하면 최초의 프로세스가 실행되는데, 이 조상님같은 프로세스가 자식 프로세스를 낳는다. 프로세스들의 가족관계도를 프로세스 계층 구조라고 한다.
컴퓨터를 켜서 로그인을 하고 문서 편집기 프로그램을 실행할 때
1. 사용자가 컴퓨터를 켠 순간 최초 프로세스가 생성
2. 최초 프로세스는 PC 로그인을 담당하는 자식 생성
3. 로그인 시 로그인 프로세스는 사용자 인터페이스 프로세스를 자식으로 생성
4. 사용자 인터페이스 프로세스는 문서 편집기 프로그램을 자식으로 생성
그럼 프로세스를 어떻게 낳는걸까?
fork
: 부모 프로세스가 본인을 복제해서 자식 프로세스를 생성exec
: 자식 프로세스가 자신의 메모리공간을 새 프로그램으로 교체