방법 : Copy-on-write(COW)
자식은 부모의 주소공간을 복사함 (binary and OS data)
자식은 그 공간에 새로운 프로그램을 올림
fork() - 새로운 프로세스를 생성
부모를 그대로 복사하여 주소공간을 할당한다.
*** 부모 프로세스의 문맥을 그대로 복사한다! (정확히는 PC)
⇒ ****때문에 다음에 수행해야할 곳을 fork()가 아니란 걸 알고 있기에fork() 가 무한정으로 이루어지지는 않는다.
exec() - 새로운 프로그램을 메모리에 올림
fork()로 복사가 된 후, 자식 프로세스는 exec() 을 수행하게 된다.
exec() 을 실행하게 되면 새로운 프로그램으로 완전히 바뀌게 된다.
⇒ exec() 이후에 실행될 코드가 있었다면, 이는 실행 될 수 없게 됨.
execlp("프로그램 이름", "프로그램 이름", "전달할 인자", (char) 0); 과 같은 형식으로 작성되어 사용된다.*