프로세스 그룹
Process groupPOSIX 대응 운영체제에서 프로세스 그룹은 하나 이상의 [1]프로세스의 집합을 나타낸다.특히 프로세스 그룹은 신호의 분포를 제어하기 위해 사용된다.신호가 프로세스 그룹으로 향할 때 신호는 그룹의 [2]구성원인 각 프로세스에 전달된다.
마찬가지로 세션은 하나 이상의 프로세스 [3]그룹의 집합을 나타냅니다.프로세스는 다른 세션에 속하는 프로세스 그룹을 생성할 수 없습니다.또한 프로세스는 다른 세션의 멤버인 프로세스 그룹에 가입할 수 없습니다.즉, 프로세스는 세션 간에 이행할 수 없습니다.
프로세스가 이미지를 (함수 중 하나를 호출함으로써) 새로운 이미지로 치환하면 새로운 이미지는 이전 이미지와 동일한 프로세스 그룹(및 세션) 멤버십을 받게 됩니다.
적용들
프로세스 그룹에 대한 신호의 분배는 셸 프로그램에서 사용되는 작업 제어의 기초를 형성합니다.TTY 디바이스 드라이버는, 키보드 인터럽트에 의해서 생성된 신호, 특히 SIGINT(「인터럽트」)를 송신하는 전경 프로세스 그룹의 개념을 짜넣고 있습니다.Control+),C SIGTSTP("단말기 정지",Z +), SIGQUIT("종료",\ +")입니다.또한 단말기에서 읽기 또는 쓰기를 시도하고 포그라운드프로세스 그룹에 포함되지 않은 모든 프로세스에 SIGTTIN 및 SIGTTOU 신호를 전송합니다.다음으로 셸은 작성한 명령어파이프라인을 프로세스 그룹으로 분할하고 제어 단말기의 전경 프로세스 그룹인 프로세스 그룹을 제어함으로써 언제든지 단말기에서 I/O를 실행할 수 있는 프로세스(및 명령어파이프라인이 무엇인지)를 결정합니다.
셸이 명령어 파이프라인의 새로운 자식 프로세스인 경우 부모 셸 프로세스와 자식 프로세스는 모두 즉시 자식 프로세스를 명령어 파이프라인의 프로세스 그룹의 리더로 만듭니다.이렇게 하면 부모 또는 자녀 중 하나가 이에 의존하기 전에 자녀가 프로세스 그룹의 리더가 되는 것이 보증됩니다.
Unix 계열 시스템에서 텍스트 사용자 인터페이스를 사용하는 경우 세션은 로그인 세션을 구현하기 위해 사용됩니다.세션 리더라는 단일 프로세스는 사용자가 단말기 연결을 "끊을" 때 모든 프로그램이 종료되도록 제어 단말기와 상호 작용합니다.(세션 리더가 없는 경우 단말기의 포그라운드프로세스 그룹의 프로세스가 전화를 끊습니다).
그래피컬 사용자 인터페이스가 사용되는 경우 세션 개념은 대부분 손실되고 커널의 세션 개념은 대부분 무시됩니다.그래피컬 사용자 인터페이스(X 디스플레이 매니저가 사용되는 장소 등)에서는 로그인 세션 구현에 다른 메커니즘이 사용됩니다.
세부 사항
시스템 콜 setsid
는 단일(새로운) 프로세스 그룹을 포함하는 새 세션을 작성하기 위해 사용되며 현재 프로세스는 해당 단일 프로세스 [4]그룹의 세션리더 및 프로세스 그룹 리더로 사용됩니다.프로세스 그룹은 정의 정수인 프로세스 그룹 ID로 식별됩니다.이 ID는 프로세스 그룹 리더(또는 리더)였던 프로세스의 프로세스 식별자입니다.프로세스 그룹은 항상 리더로 시작하지만 반드시 리더를 둘 필요는 없습니다.세션은 세션리더의 프로세스 그룹 ID로 식별됩니다.POSIX에서는 세션리더의 프로세스 그룹 ID를 변경할 수 없습니다.
시스템 콜setpgid
는 프로세스의 프로세스 그룹 ID를 설정하기 위해 사용됩니다.그 결과 기존 프로세스 그룹에 프로세스를 참여시키거나 프로세스 세션 내에서 새로운 프로세스 그룹을 생성하여 프로세스가 새로 생성된 그룹의 프로세스 [5]그룹 리더가 됩니다.POSIX는 식별자를 가진 프로세스 그룹이 여전히 존재하는 경우(즉, 프로세스 그룹의 리더가 종료되었지만 그룹 내의 다른 프로세스가 여전히 존재하는 경우) 프로세스 ID의 재사용을 금지합니다.따라서 프로세스가 실수로 프로세스 그룹 리더가 되지 않도록 보장합니다.
시스템 콜은 개별 프로세스 또는 프로세스 [2]그룹에 신호를 전송할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ IEEE and The Open Group (2018). "3. Definitions". The Open Group Base Specifications Issue 7. § 296. Retrieved 2020-08-30.
A collection of processes that permits the signaling of related processes.
- ^ a b 단일 UNIX 사양, The Open Group 버전 4 – System Interfaces Reference,
- ^ IEEE and The Open Group (2018). "3. Definitions". The Open Group Base Specifications Issue 7. § 343. Retrieved 2020-08-30.
A collection of process groups [...]. Each process group is a member of a session.
- ^ 단일 UNIX 사양, The Open Group 버전 4 – System Interfaces Reference,
- ^ 단일 UNIX 사양, The Open Group 버전 4 – System Interfaces Reference,
추가 정보
- McKusick, Marshall Kirk; Neville-Neil, George V. (2004-08-02). "FreeBSD Process Management: Process Groups and Sessions". The Design and Implementation of the FreeBSD Operating System. Addison Wesley. ISBN 0-201-70245-2.
- UNIX 신호 및 프로세스 그룹