OS/LINUX

[정보] 프로세스 세션 리더(Session Leader)와 프로세스 그룹 리더(Group Leader)

투칼론 2016. 9. 20. 17:06
반응형

리눅스의 모든 프로세스는 아래와 같은 ID를 가지고 있다. 각 ID가 의미는 아래와 같다.


1. 개요

  • Process ID (PID)
    프로세스를 구별하는 임의의 숫자인다. 모든 프로세스는 고유한 ID를 가지고 있다. 그러나 프로세스가 종료(exit)하고 부모 프로세스가 종료를 인지했을 때, 다른 프로세스가 해당 프로세스 ID를 사용할 수 있도록 되는 것이다.

  • Parent Process ID (PPID)
    해당 프로세스를 시작시킨 프로세스의 PID(부모 프로세스 ID)이다.

  • Process Group ID (PGID)
    프로세스 그룹 리더의 PID이다. PID와 PGID가 같다면, 해당 프로세스를 프로세스 그룹 리더라고 한다.

  • Session ID (SID)
    세션 리더의 PID이다. PID와 SID가 같다면, 해당 프로세스를 세션 리더라고 한다.


2. 특징

  • 세션과 프로세스 그룹은 어떠한 단위로서 관련된 프로세스의 묶음이라고 볼수 있다. 

  • 모든 프로세스 그룹에 멤버 프로세스는 동일한 세션에 속하지만, 세션은 복 수개의 프로세스 그룹을 가질 수 있다.

  • 일반적으로 쉘(shell)이 세션 리더이고, 모든 파이프라인은 동일한 프로세스 그룹이고 쉘에 의해 수행된다.


    3. 예시 화면

    • Process Group Leader


    • Session Group Leader



    4. 프로세스 ID 관련 시스템 콜

    • pid_t setsid(void) - 새로운 세션을 생성
    • pid_t getsid(pid_t pid) - pid가 가리키는 프로세스의 세션 ID를 반환
    • int setpgid(pid_t pid, pid_t pgid) - pid 인자로 지정한 프로세스의 프로세스 그룹 ID를 pgid로 설정
    • pid_t getpid(pid_t pid) - 프로세스의 프로세스 그룹 ID를 반환

    [그림 출처] http://www.geekpills.com/operating-system/linux/the-ultimate-pid-ppid-pgid-process-group-leader-sid-session-leader
     

    'OS > LINUX' 카테고리의 다른 글

    [명령어] more 설명  (0) 2016.10.17
    [툴] ctags 사용법  (0) 2016.09.27
    [명령어] sar 설명  (0) 2016.09.17
    [명령어] iostat 설명  (0) 2016.09.06
    [명령어] mpstat 설명  (0) 2016.08.31