프로세스 그룹은 어떻게 프로세스 ID를 갖나요?

프로세스 그룹은 어떻게 프로세스 ID를 갖나요?

나는 프로세스 그룹과 쉘을 논의하는 교과서를 읽고 있었는데 다음과 같이 말했습니다.

Unix 셸은 작업 추상화를 사용하여 단일 명령줄을 평가한 결과 생성된 프로세스를 나타냅니다. 어느 시점에서든 최대 하나의 포그라운드 작업과 0개 이상의 백그라운드 작업이 있을 수 있습니다. 예를 들어, 타이핑을 하면 linux> ls | sortUnix 파이프로 연결된 두 프로세스로 구성된 포그라운드 작업이 생성됩니다. 하나는 ls 프로그램을 실행하고 다른 하나는 sort 프로그램을 실행합니다. 쉘은 각 작업에 대해 별도의 프로세스 그룹을 생성합니다.

여기 사진이 있습니다: 여기에 이미지 설명을 입력하세요.

포그라운드 작업에는 프로세스 ID(pid)와 프로세스 그룹 ID(pgid)가 있으며 둘 다 20임을 알 수 있습니다.

내 질문은 다음과 같습니다

Q1- 프로세스 그룹도 작업으로 간주할 수 있다고 들었는데, 그림의 전경 작업에는 왜 프로세스 ID가 있나요? 내가 이해하는 바는 프로세스는 실행 프로그램의 인스턴스이고 프로세스 그룹은 멤버 프로세스로 구성되어 있으므로 프로세스 그룹은 거의 추상적인 개념인데 어떻게 개념이 실행 프로그램의 인스턴스가 될 수 있습니까?

Q2-I는 또한 관례상 프로세스 그룹의 프로세스 그룹 ID가 프로세스 그룹의 첫 번째 구성원의 프로세스 ID와 동일하다는 정보를 받았습니다. 그러면 그림에서 첫 번째 멤버(하위 프로세스)의 pid가 21이므로 포그라운드 작업의 pgid는 21이어야 합니까?

답변1

다이어그램에서 프로세스 그룹 개념은 원 대신 점선 사각형으로 표시됩니다. 원은 모두 프로세스를 나타내며 "작업"은 각 그룹의 첫 번째 프로세스입니다.

바라보다프로세스 그룹 ID는 어떻게 설정되나요?더 알아보기.

관련 정보