Child_Process(자식 프로세스)

김형준 Kim Hyeong Jun·2023년 5월 28일
0

Reference
https://4legs-study.tistory.com/37

Child Process

한 프로세스는 실행되는 도중 프로세스 생성 시스템 콜을 통해 새로운 프로세스들을 생성할 수 있다.

다른 프로세스를 생성하는 프로세스를 부모 프로세스(Parent Process)라 하고, 다른 프로세스에 의해 생성된 프로세스를 자식 프로세스(Child Process)라고하 한다. 프로세스의 부모-자식 관계들은 트리의 형태로 나타나게 된다.

대부분의 운영체제에서는 프로세들을 구별하기 위해 프로세스들에게 유일성을 가진 정수 PID(Process Identifier)를 부여한다.

어떤 프로세스가 다른 프로세스를 하나 생성하면, 생성된 프로세스는 운영체제로부터 직접 자원을 제공받거나 부모 프로세스 자원의 일부를 한정적으로 사용할 수 있다.

한 프로세스가 다른 프로세스 하나를 생성했을 때, 두 프로세스들은 다음과 같이 실행될 수 있다.
1. 부모 프로세스가 자식 프로세스들과 병렬되어 같이 실행된다.
2. 자식프로세스들이 모두 종료될 때까지 대기한다.

또한, 생성된 새 프로세스의 주소 공간(Address Space)은 다음과 같은 경우로 나뉜다.
1. 자식 프로세스는 부모 프로세스의 완전히 같은 복사본이 된다.
2. 자식 프로세스는 부모 프로세스와 다른 새 프로그램이 탑재된다.

IPC(InterProcess Communication)

운영체제 내에서 동시에 실행되고 있는 프로세스들은 서로 독립적이거나, Cooperating 관계에 있다. 어떤 프로세스가 다른 프로세스에 영향을 주지 않고, 받지도 않을 때 두 프로세스는 독립적(Independent)이라 한다. 그렇지 않은 프로세스는 Cooperating이라 한다.

Cooperating 프로세스들은 IPC 메커니즘을 필요로 한다. IPC는 프로세스 간 데이터 교환을 가능하게 해 주며, 크게 두 가지 유형으로 나뉜다.

  1. 공유 메모리(Shared Memory)
    ㄴ 운영체제에 의해 메모리의 특정 구간을 공유
    ㄴ 프로세스들은 단순히 메모리를 읽고 쓰기만 한다.
    ㄴ 공유 메모리에 대한 갱신은 다른 모든 프로세스들에게 즉시 보여진다.

  2. 메시지 패싱(Message Passing)
    ㄴ 데이터는 메시지 형식으로 전달된다.
    ㄴ 분산형 시스템에 더 적합하다.

profile
I want be a developer🙂

0개의 댓글