프로세스 ID, 프로세스 식별자, 프로세스 식별 ID

(2026-02-14)

PID , PPID


1. [Unix/Linux]  개별 프로세스 식별자  :  (PID & PPID) 

   ㅇ 모든 프로세스는, 생성되는 순간, 시스템으로부터 고유한 번호를 부여 받게됨
      - PID (Process ID)  :  현재 프로세스의 고유 번호
      - PPID (Parent Process ID)  :  나를 생성한 '부모' 프로세스의 번호
         . 대부분의 프로세스는, 사용자나 다른 프로그램에 의해 실행되므로, 항상 부모가 존재
         
  ㅇ 한편,  init (PID 1)  :  시스템 부팅커널이 직접 실행하는 최초의 사용자 프로세스
     - 모든 프로세스의 '조상'이며, 
     - 부모가 종료되어 고아가 된 프로세스를 입양하여 관리하기도함


2. [Unix/Linux]  프로세스 식별자의 특징

  ㅇ 값의 범위  :  전통적으로, 16비트 정수(1 ~ 32,767)를 사용하지만, 
     - 현대 리눅스에서는, /proc/sys/kernel/pid_max 설정을 통해,
        . 이 상한선을 훨씬 높게도 (222) 조정 가능
     - init (모든 프로세스의 조상)  :  1, ... (통상, 1 ~ 300 : 시스템 프로세스,데몬 등) 

  ㅇ 재사용  :  프로세스가 종료되면, 해당 PID는 커널로 반환됨
     - 일정 시간이 지난 후, 다른 새 프로세스에 이를 할당 가능


3. [Unix/Linux]  PID를 다루는 예시시스템 호출 例)
     
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>

int main() {
    pid_t my_pid = getpid();   // 현재 프로세스 ID
    pid_t parent_pid = getppid(); // 부모 프로세스 ID

    printf("My PID: %d\n", my_pid);
    printf("Parent PID: %d\n", parent_pid);
    return 0;
}
- 응용 프로그램 내 pid 참조 : sys/types.h 내 정의된 pid_t(typedef 별칭)를 이용하면 됨 - pid,ppid 확인용 시스템호출 : getpid(), getppid() ㅇ 주요 명령어 例) - ps -ef : 시스템의 모든 프로세스와 PPID를 함께 출력 - ps aux : 실행 중인 모든 프로세스의 상세 정보(CPU, 메모리 점유 등) 확인 - top 또는 htop : 실시간으로 프로세스 상태 및 PID 모니터링 - echo $$ : 현재 사용 중인 (Shell)의 PID 확인

Unix/Linux 프로세스
1. 프로세스   2. PID, PPID   3. 시스템 호출   4. init, exec, fork   5. 시그널   6. 좀비  
용어해설 종합 (단일 페이지 형태)

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]