4. 프로세스 생성

이 레슨에서는 Linux 시스템에서 새 프로세스가 시작되는 기본 개념을 살펴봅니다. 이 메커니즘을 이해하면 운영 체제의 내부 작동 방식에 대한 통찰력을 얻을 수 있습니다.

Fork 및 Exec 모델

Linux 에서 프로세스를 생성하는 주요 메커니즘은 기존 프로세스가 fork 시스템 호출을 사용하여 자신을 복제하는 것입니다. fork 호출은 거의 동일한 자식 프로세스를 생성합니다. 이 새 자식 프로세스는 고유한 프로세스 ID(PID) 를 받으며, 원본 프로세스는 부모가 되어 부모 프로세스 ID(PPID) 로 식별됩니다.

포크 후, 자식 프로세스는 부모와 동일한 프로그램을 계속 실행하거나, 더 일반적으로 execve 시스템 호출을 사용하여 새 프로그램을 로드하고 실행할 수 있습니다. execve 호출은 프로세스의 메모리 공간을 새 프로그램의 메모리 공간으로 효과적으로 대체하여 다른 작업을 시작할 수 있게 합니다. 이 두 단계의 "fork-exec" 모델은 Linux 에서 프로세스를 생성하는 방법의 초석입니다.

부모 - 자식 관계 관찰

ps 명령을 사용하여 이 부모 - 자식 관계가 작동하는 것을 관찰할 수 있습니다.

ps l

l 옵션은 실행 중인 프로세스에 대한 자세한 정보를 보여주는 "긴 형식" 보기를 제공합니다. PPID라고 표시된 열이 표시되며, 이는 부모 프로세스 ID 를 나타냅니다. 현재 셸 (예: bash) 의 프로세스를 살펴보십시오. ps l 명령을 실행하면 셸 프로세스의 PIDps l 프로세스의 PPID와 일치하는 것을 알 수 있습니다. 이는 셸이 ps 프로세스를 생성하기 위해 자신을 포크했기 때문입니다.

Init 프로세스

모든 프로세스가 다른 프로세스의 자식이라면, 최초의 조상이 있어야 합니다. 이것이 바로 init 프로세스입니다. 시스템이 부팅될 때 커널은 init을 최초의 사용자 공간 프로세스로 생성하고 PID 1 을 할당합니다. init 프로세스는 다른 모든 프로세스의 궁극적인 부모이며 시스템 관리를 위해 루트 권한으로 실행됩니다. 시스템이 종료될 때까지 종료될 수 없으며 시스템을 계속 실행하는 데 필요한 많은 서비스를 생성할 책임이 있습니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

연습이 완벽을 만듭니다! Linux 프로세스 및 관리 이해를 강화하기 위한 실습 랩이 있습니다.

  • Linux 프로세스 관리 및 모니터링 - 이 랩에서는 Linux 시스템에서 프로세스를 관리하고 모니터링하는 데 필수적인 기술을 배웁니다. 전경 및 백그라운드 프로세스와 상호 작용하는 방법, ps로 검사하는 방법, top으로 리소스 모니터링하는 방법, renice로 우선 순위 조정하는 방법, kill로 종료하는 방법을 살펴봅니다.

이 랩은 프로세스 ID, 부모 프로세스 ID 및 프로세스 모니터링 개념을 실제 시나리오에 적용하고 프로세스 관리에 대한 자신감을 구축하는 데 도움이 될 것입니다.

퀴즈

새 프로세스를 생성하는 시스템 호출은 무엇입니까? (단일 소문자 영어 단어로 답하십시오.)