fork() 호출하면


parent process 랑 fork()로 생성된 child process 가 동시에 작업하는거임? 아니면 parent process 일 끝나고 sleep같은거로 잠시 프로세스를 재울때 child process가 동작하는거임? 테스트해보려고 


pid = fork();

if(pid == 0){

puts("child process run");

return 1;

}

else{

puts("parent process run");

sleep(10);

}

return 0;


요렇게 테스트 해봤는데 결과는


parent process run


10초후


child process run 


요렇게 나왔는데 프로세스 실행현황에서는 그 10초동안 fork로 생성한 프로세스가 좀비 프로세스로 나타나는데 이 말인 즉슨 이미 child process는 할일 다 마치고 parent process가 끝날때까지 기다리는건데 그러면 왜 puts("child process run") 이라는 문구가 10초뒤에 나오는거지..? 알려주셈 실행환경은 리눅스 우분투