맨위로가기

프로세스 그룹

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

프로세스 그룹은 셸 프로그램의 작업 제어, 특히 터미널 제어의 핵심 개념이다. TTY 장치 드라이버는 전경 프로세스 그룹에 키보드 인터럽트로 생성된 신호를 보낸다. 셸은 명령 파이프라인을 프로세스 그룹으로 나누고, 제어 터미널의 전경 프로세스 그룹을 제어하여 터미널 입출력을 관리한다. 텍스트 사용자 인터페이스에서는 로그인 세션을 구현하는 데 사용되며, 그래픽 사용자 인터페이스에서는 세션 개념이 대부분 사라진다. 시스템 호출 `setsid`는 새로운 세션을 생성하고, `setpgid`는 프로세스의 프로세스 그룹 ID를 설정하며, `kill` 시스템 호출은 프로세스 또는 프로세스 그룹으로 신호를 보낼 수 있다.

더 읽어볼만한 페이지

  • POSIX - 오픈 그룹
    오픈 그룹은 다양한 기술 공급업체, 구매자, 정부 기관을 포함하는 국제 컨소시엄으로, 표준 개발, 인증 프로그램 운영, TOGAF와 같은 IT 아키텍처 프레임워크 제공 및 UNIX 상표 권리 보유를 통해 개방형 IT 표준 개발 및 보급에 기여한다.
  • POSIX - 본 셸
    본 셸은 스티븐 본이 개발하여 1979년 유닉스에 포함된 셸로, 셸 스크립트, 제어 흐름, 변수, 시그널 처리 등의 기능을 제공하며 여러 셸에 영향을 주었고 현재도 널리 사용된다.
  • 프로세스 - 문맥 교환
    문맥 교환은 운영 체제에서 CPU가 여러 프로세스나 스레드를 번갈아 실행하기 위해 현재 작업 상태를 저장하고 다른 작업 상태를 복원하는 과정으로, 멀티태스킹 환경에서 필수적인 기술이며 프로세스 제어 블록을 통해 관리된다.
  • 프로세스 - 데몬 (컴퓨팅)
    데몬은 운영 체제에서 사용자와 상호 작용 없이 백그라운드에서 실행되며 시스템의 다양한 작업을 처리하는 프로세스이다.
  • 토막글 틀에 과도한 변수를 사용한 문서 - 전향
    전향은 종교적 개종이나 노선 변경을 의미하며, 근대 이후 정치적 이념 변화를 지칭하는 용어로 확장되어 개인의 신념 변화, 정치적 압력 등 다양한 요인으로 발생하며, 사회주의·공산주의로부터의 전향, 전향 문학, 냉전 시대 이후의 전향 현상 등을 폭넓게 논의한다.
  • 토막글 틀에 과도한 변수를 사용한 문서 - 포토마스크
    포토마스크는 반도체, 디스플레이, 인쇄 회로 기판 제조 시 웨이퍼에 회로 패턴을 전사하는 마스크로, 기술 발전을 거듭하며 융용 실리카 기판과 금속 흡수막을 사용하고 위상 천이 마스크, EUV 마스크 등의 고급 기술이 개발되어 반도체 미세화에 기여하고 있지만, 높은 제작 비용과 기술적 어려움은 해결해야 할 과제이다.
프로세스 그룹

2. 활용

프로세스 그룹에 신호를 분배하는 것은 셸 프로그램에서 사용되는 작업 제어의 기초이다. TTY 장치 드라이버는 '''전경 프로세스 그룹''' 개념을 포함하며, 이 그룹에 키보드 인터럽트로 생성된 신호를 보낸다.[1]

2. 1. 터미널 제어

프로세스 그룹에 신호를 보내는 것은 셸 프로그램에서 사용되는 작업 제어의 기초를 형성한다. TTY 장치 드라이버는 '''전경 프로세스 그룹'''이라는 개념을 포함하며, 이 그룹에 키보드 인터럽트로 생성된 신호를 보낸다. 특히 SIGINT(중단), SIGTSTP(터미널 중지), SIGQUIT(종료) 신호가 있다.

또한 터미널에서 읽거나 쓰려고 시도하는 프로세스 중 전경 프로세스 그룹에 ''없는'' 프로세스에는 SIGTTIN 및 SIGTTOU 신호가 보내진다. 셸은 생성하는 명령 파이프라인을 프로세스 그룹으로 분할하고, 제어 터미널의 전경 프로세스 그룹을 제어하여 어떤 프로세스(따라서 어떤 명령 파이프라인)가 언제든지 터미널과의 입출력을 수행할 수 있는지 결정한다.

셸이 명령 파이프라인에 대해 새로운 자식 프로세스를 fork할 때, 부모 셸 프로세스와 자식 프로세스 모두 즉시 자식 프로세스를 명령 파이프라인에 대한 프로세스 그룹의 리더로 만든다. 이렇게 하면 부모 또는 자식이 이 상황에 의존하기 전에 자식이 프로세스 그룹의 리더가 되도록 보장한다.

텍스트 사용자 인터페이스가 유닉스 계열 시스템에서 사용되는 경우, 세션은 로그인 세션을 구현하는 데 사용된다. 단일 프로세스인 '''세션 리더'''는 제어 터미널과 상호 작용하여 사용자가 터미널 연결을 "끊을" 때 모든 프로그램이 종료되도록 한다. (세션 리더가 없는 경우, 터미널의 전경 프로세스 그룹에 있는 프로세스가 끊김을 처리하도록 예상된다.)

그래픽 사용자 인터페이스가 사용되는 경우, 세션 개념은 대부분 사라지고, 커널의 세션 개념은 대부분 무시된다. X 디스플레이 관리자가 사용되는 경우와 같은 그래픽 사용자 인터페이스는 로그인 세션을 구현하기 위해 다른 메커니즘을 사용한다.

2. 2. 세션 관리

TTY 장치 드라이버는 '''전경 프로세스 그룹''' 개념을 포함하며, 이 그룹에 키보드 인터럽트로 생성된 신호를 보낸다. 특히 SIGINT (중단), SIGTSTP (터미널 중지), SIGQUIT (종료) 신호가 있다. 또한 터미널에서 읽거나 쓰려고 시도하는 프로세스 중 전경 프로세스 그룹에 ''없는'' 프로세스에 SIGTTIN 및 SIGTTOU 신호를 보낸다.[1]

셸은 생성하는 명령 파이프라인을 프로세스 그룹으로 분할하고, 제어 터미널의 전경 프로세스 그룹을 제어하여, 어떤 프로세스(따라서 어떤 명령 파이프라인)가 언제든지 터미널과의 입출력을 수행할 수 있는지 결정한다.[1]

셸이 명령 파이프라인에 대해 새로운 자식 프로세스를 fork할 때, 부모 셸 프로세스와 자식 프로세스 모두 즉시 자식 프로세스를 명령 파이프라인에 대한 프로세스 그룹의 리더로 만든다. 이렇게 하면 부모 또는 자식이 이 상황에 의존하기 전에 자식이 프로세스 그룹의 리더가 되도록 보장한다.[1]

텍스트 사용자 인터페이스가 유닉스 계열 시스템에서 사용되는 경우, 세션은 '''로그인 세션'''을 구현하는 데 사용된다. 단일 프로세스인 '''세션 리더'''는 제어 터미널과 상호 작용하여 사용자가 터미널 연결을 "끊을" 때 모든 프로그램이 종료되도록 한다. (세션 리더가 없는 경우, 터미널의 전경 프로세스 그룹에 있는 프로세스가 끊김을 처리하도록 예상된다.)[1]

3. 상세 정보

시스템 호출 `setsid`는 단일 (새로운) 프로세스 그룹을 포함하는 새로운 세션을 생성하는 데 사용되며, 현재 프로세스는 세션 리더이자 해당 단일 프로세스 그룹의 '''프로세스 그룹 리더''' 역할을 한다.[4]

프로세스 그룹은 양의 정수인 '''프로세스 그룹 ID'''로 식별되며, 이는 프로세스 그룹 리더인 프로세스(또는 프로세스 그룹 리더였던 프로세스)의 프로세스 식별자이다.

프로세스 그룹은 반드시 리더를 가질 필요는 없지만 항상 리더로 시작한다.

세션은 세션 리더의 프로세스 그룹 ID로 식별된다.

POSIX는 세션 리더의 프로세스 그룹 ID 변경을 금지한다.

시스템 호출 `setpgid`는 프로세스의 프로세스 그룹 ID를 설정하는 데 사용되며, 이를 통해 프로세스를 기존 프로세스 그룹에 가입시키거나 프로세스를 프로세스 그룹 리더로 하여 프로세스의 세션 내에서 새로운 프로세스 그룹을 생성할 수 있다.[5]

POSIX는 해당 식별자를 가진 프로세스 그룹이 여전히 존재하는 경우(즉, 프로세스 그룹의 리더가 종료되었지만 그룹 내 다른 프로세스가 여전히 존재하는 경우) 프로세스 ID를 재사용하는 것을 금지한다.

따라서 프로세스가 실수로 프로세스 그룹 리더가 되는 것을 방지한다.

시스템 호출 `kill`은 개별 프로세스 또는 프로세스 그룹으로 신호를 보낼 수 있다.[6]

참조

[1] 웹사이트 Job Objects - Win32 apps https://docs.microso[...] Karl-Bridge-Microsoft 2022-08-28
[2] 서적 The Open Group Base Specifications Issue 7 2020-08-30
[3] 서적 The Open Group Base Specifications Issue 7 2020-08-30
[4] 간행물 sh
[5] 간행물 sh
[6] 간행물 sh
[7] 문서
[8] 문서



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com