2013-06-10 2 views
3

스레드를 사용하여 프로세스를 포크 할 때 함정을 설명하는 article을 우연히 발견했습니다. 저자는 복수 스레드가있는 프로세스에서 fork이 수행되면 전체 프로세스 메모리가 하위로 복사된다는 점을 언급합니다 (즉, 복사 - 기록시 발생하지 않음). 맞습니까? 커널 소스 코드에서 찾아 보려고했지만, 이런 일이 발생했을 때 그 장소를 찾지 못했습니다.다중 스레드 프로세스 포크 : 모든 프로세스 메모리가 복사됩니까?

CentOS 6.3 (커널 2.6.32-279.22.1.el6.x86_64)을 사용하고 있습니다.

+0

기사에서 주장을 지적 할 수 있습니까? 문제가 발생했습니다. – Hasturkun

+0

기사 시작 부분 : fork (2) 함수는 프로세스의 복사본을 만듭니다. * 모든 메모리 페이지가 복사됩니다. * 열린 파일 설명자가 복사됩니다. –

+0

기사에서 COW를 무시하고, 의견을 참조하십시오 : http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them#comment-318 – Hasturkun

답변

0

다중 스레드 및 단일 스레드 프로그램 AFAICT에 대한 fork() 호출간에 COW 동작에는 차이가 없습니다. 정기적 인 copy-on-write 동작 (또는 그 부족)이 존재합니다.

관련 문제