프로세스 생성
- 부모 프로세스가 자식을 생성
- 자원공유(안 하는 모델이 일반적임)
- 자료구조 중 트리구조를 따름.
- PCB나 주소공간을 그대로 복사함
- fork로 복제 후 exec로 다른 프로그램으로 덮어씌움(아닐수도)
- Copy-On-Write 기법으로 작동될때가 있음
=> 쓰기 가 발생하기 전까지 PC만 복제해서 같은 주소를 가리키고 있다가, 쓰기가 발생하면 복제한다.


프로세스 종료
- 임무가 끝나거나, 자식이 너무 자원을 막쓰면 종료!
- 부모가 종료명령을 받으면 자식이 다 꺼지고 나서 종료됨

프로세스 관련 시스템 콜 4가지
fork()
- fork()는 자식 프로세스를 생성함.
- 프로세스끼리 고유한 숫자를 메겨 구분한다. 이를 pid라 칭함.
- fork함수로 자식을 생성하면 자식 pid가 리턴, 자식은 0을 리턴함

exec()
- exec()는 다른 프로그램으로 덮어씌움
- exec()아래에 써있는 코드는 실행x

wait()
- wait()는 자식이 끝나길 기다리는 시스템 콜.
예를들어 리눅스 쉘에서 프로그램을 실행시킨다.
그러면 쉘은 blocked상태가 됨
프로그램이 종료되면 다시 ready상태

exit()
프로세스 끝내기! kill이나 Ctrl^C도 마찬가지다.
프로세스 간 협력
세 종류가 있다. 쓰레드는 프로세스 간 협력이라기 보단, 프로세스 내부에서 협력을 하는것.
