Process Management 1
프로세스 생성.
부모 프로세스(parent process)가 자식 프로세스(children process)를 생성한다.
복제 생성을 하게 된다. 부모 프로세스는 1개. 자식 프로세스는 여러 개가 될 수 있다.
프로세스의 트리(계층 구조) 형성.
프로세스는 자원을 필요로 한다. - 운영체제로부터 받는다.
부모와 자식이 자원을 공유하는 경우도 있고 아닌 경우도 있다. 공유하게 되면 경쟁하게 되어서 일반적으로는 공유하지 않는다.
부모와 자식이 공존하면서 수행되는 모델이 있고 자식이 종료될 때까지 부모가 기다리는 모델도 있다.
- 주소 공간(address space)
자식은 부모의 공간을 복사한다. (binary and OS data)
자식은 그 공간에 새로운 프로그램을 올림.
fork() 시스템 콜이 새로운 프로세스를 생성.
exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올린다. 덮어 씌운다.
운영체제를 통해서 실행이 가능하다.
프로세스 종료는 exit을 통해 실행된다. 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려준다.
프로세스가 종료가 될 때는 자식이 부모에게 output data를 보낸다.
프로세스는 부모보다 자식이 먼저 종료된다.
자발적으로 종료가 되면 exit이고 부모 프로세스가 자식을 강제 종료 시키면 absort이다.
absort는 자식이 할당 자원의 한계치를 넘어서거나 자식에게 할당된 태스크가 더 이상 필요하지 않을 때이다.
부모 프로세스가 종료해야 하는 경우 자식이 먼저 죽어야 하므로 부모 프로세스에서 나온 모든 자식 프로세스를 종료시킨다. 운영체제는 부모 프로세스가 종료하는 경우 자식이 더 이상 수행되도록 두지 않는다. 그 아래 단계부터 단계적인 종료.