UNIX
-
[Unix] fork(), vfork(), Copy On Write, exec()ComputerScience/운영체제 2020. 6. 14. 18:26
유닉스에서 fork()와 exec()를 배웠다. 도대체 fork(), exec()는 무엇일까? 간단히 Process Control을 해준다고 보면 된다. fork() fork()는 현재 부모 프로세스를 메모리상에서 복사한 자식 프로세스를 만드는 과정. 이러한 과정에서 자식은 부모의 변수, 스택 ,힙의 내용을 복사하게 된다. 이 때, PCB또한 복사된다. PCB는 프로세스를 지원하고 관리하기 위한 정보들이 담긴 데이터 구조체이다. 부모와 자식의 주소공간은 다르다. 부모 프로세스는 원래대로 실행되고, fork()를 이용해 생성된 프로세스도 다음 라인부터 실행된다. fork()의 return값은 proceeid를 출력하게 되는데 fork()의 return 값이 0이면 자식 프로세스 0보다 크면 부모 프로세스 ..