[완료]fork() 함수의 호출로 힙영역의 복사 시점에 대해서 궁금한 게 있습니다~~..
글쓴이: cain / 작성시간: 목, 2010/09/30 - 4:41오후
fork() 함수 시 , 메모리의 영역이 복사되는 점에 대해서 여쭤보고 싶습니다.
fork()함수를 호출하면,
만약 힙 영역에 동적으로 할당된 영역이 있다면 그것을 가리키는 포인터 int*a 라는 변수가 있다고 가정하면,
부모프로세스에서 할당된 힙 영역을 가리키는 포인터만 복사되나요 아니면 힙 영역까지 복사 되나요 ?
힙 영역에 수정이 일어날 때만 자식 프로세스에 힙 영역이 복사되어 그때서야 개별적인 메모리 영역을 가리키게 되고 수정이 일어나기 전까진 같은 (부모프로세스의) 힙 영역을 가리키는 포인터 변수만 복사된다는 말을 들어서... 헷갈리네요..
어떤 게 맞는 말인지.. 답변 부탁드립니다..
Forums:
text영역을 제외한
text영역을 제외한 모든 영역..
힙도 같이 복사가 되므로 child/parent 각각에서 해제를 해야 합니다.
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
Copy On Write?
커널의 COW (Copy On Write) 구현에 대한 내용과 혼동하시는 것 같은데
그냥 힙 영역 전체가 복사된다고 생각하시면 됩니다.
아... 이해했습니다 ^^
답변 달아주신 분들께 정말 고맙습니다..//
선배께서 알려주신 부분인데, 잠깐 헷갈리셨나보네요.. ^^;;
WANNA BE FREE
by chaoxifer
댓글 달기