상세 컨텐츠

본문 제목

[운영체제] 부모 프로세스(parent process)와 자식 프로세스(child process)

운영체제

by ~지우~ 2021. 6. 18. 21:43

본문

728x90

오늘은 부모 프로세스와 자식 프로세스가 어떻게 작동이 되는지 알아보겠습니다.

 

먼저, 자식 프로세스가 어떻게 생성되는지 알아보겠습니다.

fork()라는 함수를 통해 부모 프로세스와 동일한 내용을 가진 자식 프로세스의 메모리 공간이 생기게 됩니다.

부모 프로세스의 fork() 함수 return 값은 자식 프로세스의 pid이고, 자식 프로세스의 fork() 함수 return 값은 0 입니다. 

(참고로, pid는 프로세스를 식별할 수 있는 고유 id라고 할 수 있습니다.)

 

fork() 함수로 자식 프로세스를 생성한 후, exec() 함수를 이용해 자식 프로세스가 새로운 프로그램을 실행하도록 할 수 있습니다.

부모 프로세스는 wait() 함수를 이용해서 자식 프로세스가 종료할 때 까지 기다릴 수 있습니다.

아니면 kill(pid, SIGKILL)함수를 통해 자식 프로세스를 강제로 종료시킬 수도 있습니다.

 

몇 가지 코드를 보면서 부모 프로세스와 자식 프로세스가 어떻게 작동하는지 살펴보겠습니다.

 

1. 총 몇 개의 프로세스 존재?

총 8개

 

2. 출력값은? (부모의 pid는 1200, 자식의 pid는 1204이라고 가정)

0

1204

1204

1200

위에서 언급했듯이 부모의 fork() 리턴값은 자식의 pid이고 자식의 fork() 리턴값은 0이다. 

 

3. 출력값(부모 프로세스의 num값)은? 

10

부모 프로세스와 자식 프로세스의 메모리 공간은 별개이다. 

728x90

관련글 더보기

댓글 영역