1
fork()와 exec()
Unix/Linux에서 프로세스를 생성하는 핵심 시스템 콜은 fork()와 exec()입니다.
운영체제에서 새로운 프로세스는 어떻게 만들어질까요? 대부분의 OS에서 프로세스는 기존의 다른 프로세스가 생성합니다.
fork와 exec의 역할, 부모-자식 관계, 종료 상태 수거를 기준으로 프로세스 수명 주기를 봅니다.
Unix/Linux에서 프로세스를 생성하는 핵심 시스템 콜은 fork()와 exec()입니다.
Python의 multiprocessing 모듈은 Unix에서는 내부적으로 fork()를, Windows에서는 spawn()을 기본 방식으로 사용합니다.
부모 프로세스는 wait() 또는 waitpid() 시스템 콜로 자식의 종료를 기다리고, 종료 상태(Exit Status)를 수거합니다.
프로세스의 수명 주기에서 두 가지 비정상적인 상태가 있습니다.