inflearn logo
강의

Course

Instructor

Operating System Dinosaur Book Lecture

04. Process Creation: Chapter 3. Processes (Part 2)

교수님 fork()함수에 대해 질문이 있습니다.

878

cjh70105

1 asked

0

fork() 함수를 호출하면 부모 process의 주소공간을 그대로 복사한다고 했는데, 자식 프로세스에서 pid = fork(); 명령을 수행하는것인지, 아니면 그 다음줄 부터 수행하는것인지 해깔립니다. 만약 자식프로세스가 pid = fork()를 수행하면 자식 프로세스가 또 자식프로세스를 만들어서 프로세스가 무한으로 증식되지 않을까 하는 걱정때문에 다음줄부터 수행하는것이 아닌가 생각됩니다. 그렇다면 자식 프로세스의 pid변수가 0을 같는 이유는 초기화가 안되어서 0이 되는것이라고 추측할수 있을텐데, 교수님이 중간에 자식프로세스는 pid= fork() 명령은 0을 리턴받는다고 말씀하셔서 해깔립니다.

동시성 운영체제

Answer 2

1

cjh70105

답변 감사합니다! OS에서 자식 프로세스에겐 0을 리턴해주는것이었군요. 이해 됐습니다.

0

joonion

fork()를 호출하는 시점에서 process의 주소공간을 그대로 복사해 주는 역할은 O/S가 담당합니다. 그 후에 두 개의 process가 각각 PC(Program Counter)가 가리키는 주소의 명령을 실행하는 것이므로, fork() 함수 호출 이후의 인스트럭션을 실행하겠지요? 따라서 무한 증식은 걱정할 필요가 없을 것 같고요. 호출한 결과값을 리턴해 주는 것은 역시 fork() 시스템 호출이므로 fork()를 호출한 parent 프로세스에는 pid를, child 프로세스에는 0을 러턴해주는 것이니까 초기화와는 관련이 없다고 보셔도 될 것 같습니다.

퀴즈 7번의 답에 대한 질문입니다.

0

541

1

이해하고 있는것이 맞는건지 궁금합니다 ㅠㅠ

0

802

1

타우시간

0

533

1

퀴즈1 1번 질문합니다 !

1

593

1

Page는 Text Data이외에 다른 메모리도 포함하나요?

1

369

0

IPC shared memory 코드

0

508

1

[간단한 질문 ]banker's algorithm 을 linux 에서 실제로 프로세스 관리할때 쓰이나요?

0

393

0

user mode i/o 관련 질문

0

273

1

shared memory 관련해서 질문 드립니다.

0

508

1

process 와 thread

0

360

1

교수님 Docker 로 실습해도 괜찮을까요?

1

855

1

Mac OS에서 Docker 이용하여 Ubuntu 20.04 환경설정 방법 공유

22

3313

2

moniter, condition variable, synchronized에 대해서 궁금한점이 있습니다..

0

660

1

왜 무료인지 이해를 못 하겠네요..

3

420

1

7.1 Classic Problems of Synchronization 질문이 있습니다

0

292

1

공룡책 8판과 10판중

0

589

1

6.3 peterson's solution 질문이 있습니다

0

217

1

08-01 연습문제 8번 질문있습니다!

0

275

0

06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4) 에 그림 3.16 3.17 실습 오류

0

259

1

안녕하세요 교수님 실습 해봤는데 LINE J가 실행이 됩니다

1

347

1

2강 실습을 위한 개발환경 구축(Windows 10 + WSL 2 + Visual Studio Code)에서 출력오류

0

337

1

아래 질문 관련하여 다시 문의드립니다

0

192

1

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

0

181

1

vmware에 ubuntu 설치관련 질문드립니다

0

209

1