인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박세은님의 프로필 이미지
박세은

작성한 질문수

운영체제 공룡책 강의

Thread & Concurrency (Part 2) 질문드립니다

작성

·

155

0

안녕하세요 주니온님 좋은 강의 

 

다름이 아니라 Thread & Concurrency (Part 2) 에 대해 의문이 있어 질문드립니다.

저희 자료 ch04 threads 기준 30p 예제에 관한 것인데, 여기서

if(pid==0) // child process 에서 thread가 2개 생성된다고 하셨는데, 이게 왜 2개인지 도무지 이해가 되질 않습니다. 

원래 thread가 하나 있어서 2개가 된건가요? 어느 pthread_creat로 하나가 만들어진 것 까지는 이해하겠으나, 두 개째는 언제 만들어진 것인지 도무지 모르겠습니다

답변 1

1

주니온님의 프로필 이미지
주니온
지식공유자

Exercise 4.17 말씀하시는 것 같군요.

 

이 문제는  child process에서 쓰레드를 생성한 후에 fork()를 호출했을 때,

thread 정보가 함께 복제가 되는가? 라는 문제입니다.

 

개념적으로 process의 컨텍스트가 모두 복사된다면 

thread까지 복사가 되므로 두 개의 쓰레드가 "될 수도 있다"라는 것이지,

두 개가 된다, 라는 뜻은 아니고요,

시스템마다 다르지만,

제가 테스트해 본 바로는 Linux에서는 쓰레드가 복제 안 되는 것 같습니다.

 

박세은님의 프로필 이미지
박세은
질문자

친절하신 답변 감사드립니다!

다만 질문드린 예제는 4.19번 예제입니다! 제가 제대로 말씀드리지 않았네요...!
질문 내용은 동일한데, 혹시 다시 답변 부탁드려도 될까요?

박세은님의 프로필 이미지
박세은

작성한 질문수

질문하기