=== 결과 ===
address of foo: fbf1f2a0
foo: 4
child terminated!
address of foo: fbf1f2a0
foo: 3
parent terminated!
결과를 보면, 자식 프로세스는 부모 프로세스의 힙 데이터를 복사하는데 같은 주소의 데이터를 공유하는 것이 아닌 힙 데이터 하나하나 다 새로 할당해서 자식 프로세스에 넘겨주는 거야? 그렇다면 fork 하면 부모 프로세스에서 할당 받은 힙 데이터만큼 추가로 할당받는 오버헤드가 존재하는거야?
https://unix.stackexchange.com/questions/155017/does-fork-immediately-copy-the-entire-process-heap-in-linux
핑프였네 ㅈㅅ;; 뭐라 검색해야 될 지 몰라서 안 했는데 좀만 검색해 볼 걸. ㄱㅅㄱㅅ
그러면 foo에 값 쓰고 다시 보면 주소가 달라져있나?
위에 코드 보면 안 달라짐. foo는 스택에 쌓여있는 값이니 바뀌면 안 되지. 가상메모리니까 아마 os에서 적절히 연결시켜 주겠지
전자와 후자의 중간인 CoW
ㄱㅅㄱㅅ