Search

[2장 프로세스 관리(기초)]4.프로세스 부모-자식 관계

Publish Date
Category
Status
Done
1 more property
프로세스 부모-자식 관계
리눅스 시스템에서 모든 프로세스가 부모-자식 관계로 연결된 트리 구조를 이루는 원리를 이해한다.

프로세스 부모-자식 관계

모든 프로세스는 부모 프로세스를 가진다.
부모 프로세스: 프로세스를 생성한 기존 프로세스
자식 프로세스: 새롭게 생성된 프로세스
이렇게 생성된 프로세스는 트리 구조를 형성한다.

사용자 프로세스의 루트 부모

최초의 부모 프로세스는 PID 1을 가진 init/systemd 프로세스이다.
init 프로세스는 커널이 기동한 최초의 사용자 공간 프로세스로, 모든 사용자 프로세스의 루트 부모이다.
컴퓨터 초기화 순서와 프로세스 트리:
1.
컴퓨터 전원을 킨다.
2.
BIOS나 UEFI같은 펌웨어를 기동하고 하드웨어를 초기화한다.
3.
펌웨어(BIOS/UEFI)가 부트로더(GRUB)가 기동한다.
4.
부트 로더가 OS 커널을 기동한다. (여기서는 리눅스 커널)
5.
리눅스 커널이 init 프로세스(PID 1)를 기동한다.
6.
init은 다른 자식 프로세스를 실행하여 프로세스 트리를 구성한다.

트리 구조 확인 pstree

프로세스의 부모-자식 관계를 트리 구조이다. pstree -p 명령어사용하면 각 프로세스의 PID를 확인할 수 있다.
# 설치 apt install -y psmisc # 실행 pstree -p
Shell
복사
systemd(1)─┬─sshd(256) ├─cron(258) ├─bash(12345) └─...
Shell
복사
systemd(PID 1) 또는 init이 트리의 루트에 위치하며, 모든 프로세스는 이 프로세스의 자식 또는 후손이다.
컨테이너 환경에서는 init이 아닌 특정 쉘 프로세스(예: bash)가 최상위 부모(PID 1)가 될 수 있다.

마무리

프로세스는 부모-자식 관계로 트리 구조를 이루며, 이를 통해 자원을 공유하고 운영체제의 효율적인 관리와 제어가 가능해진다. init 또는 systemd와 같은 루트 부모 프로세스는 모든 프로세스의 기원이자 트리 구조의 최상위 노드로, 시스템 부팅 시 다른 프로세스를 생성하여 전체 프로세스 트리를 구성한다.
Search
Main PageCategoryTagskkogggokkAbout MeContact