-
카테고리
-
세부 분야
시스템
-
해결 여부
미해결
안녕하세요! Ex 4.17 질문입니다.
21.06.17 12:41 작성 조회수 146
2
안녕하세요 교수님! 강의 너무 잘 듣고 있습니다.
Ex 4.17(14분 쯤)에서 질문이 있습니다.
강의 상 P1(자식1), P3(자식1의 자식 - 자식2)는 if 안에서 각각 unique 쓰레드를 생성해서 총 2개의 쓰레드가 생성되는 것까지는 이해가 됩니다.
마지막 fork를 통해 P1(자식1)과 P3(자식2)가 복제가 되는데, 이 과정에서 if내에서 추가된 쓰레드들은 복제가 되지 않나요?
fork는 오로지 프로세스만 복제를 하게 되는건지 문의드립니다!
답변을 작성해보세요.
1
주니온
지식공유자2021.06.18
좋은 질문을 해 주셨네요.
멀티 쓰레디드된 프로세스를 fork()하면 어떻게 되는가? 라는 문제인데요,
실제로 예제 코드를 만들어서 여러 운영체제에서 실험을 해봐야 알겠지만,
제 기억으로는 대부분의 리눅스 계열에서는 멀티 쓰레드를 같이 복사하는 것으로 압니다.
하지만, 어떤 OS들은 fork() 시에 main 쓰레드만 복사하기도 한다고 해요.
따라서 질문하신 내용은 OS 구현체에 달린 문제라고 할 수 있습니다.
POSIX 표준에도 딱히 그 내용을 규정해 둔 것은 없는 것으로 아는데...
정확하지는 않으니까 직접 한 번 조사해 보고 실험해 보시는 것도 좋은 공부가 되실 것 같습니다.
답변 1