foreground VS background process

About_work·2024년 2월 28일
0

cs 기초

목록 보기
24/38

1. 포어그라운드 프로세스

  • 정의:
    • 포어그라운드 프로세스: 사용자 입력에 직접 반응하고, 사용자와 상호작용하는 프로세스
    • 사용자의 즉각적인 입력(키보드 입력, 마우스 클릭 등)을 필요로 하는 작업을 수행
    • 터미널에서 직접 Python 스크립트를 실행시키면, 해당 스크립트는 포어그라운드 프로세스로 시작됩니다.
    • 이 스크립트 내부에서 생성된 멀티프로세스(예를 들어, multiprocessing 모듈을 사용하여 생성된 프로세스들)도 기본적으로 같은 터미널 세션과 연결되어 있으며,
      • 따라서 포어그라운드 프로세스 그룹의 일부가 됩니다.
  • 특징:
    • 사용자가 명령어를 입력하고 실행시키면, 해당 명령어로 시작된 프로세스는 기본적으로 포어그라운드에서 실행
    • 사용자는 프로세스의 실행을 관찰하고, 필요한 경우 상호작용할 수 있음
    • 일반적으로 한 시점에 하나의 포어그라운드 프로세스만이 사용자 입력을 받을 수 있습니다.
    • 포어그라운드 프로세스가 실행 중일 때는, 새로운 명령어를 입력하거나 다른 작업을 수행하기 전에 해당 프로세스가 종료되기를 기다려야 합니다.

2. 백그라운드 프로세스

  • 정의:
    • 백그라운드 프로세스: 사용자와 직접적인 상호작용 없이 실행되는 프로세스
    • 사용자의 즉각적인 입력을 필요로 하지 않으며,
      • 주로 지속적인 서비스 제공, 데이터 처리 작업, 주기적인 작업 등을 수행
  • 특징:
    • 사용자가 프로세스를 백그라운드에서 실행하도록 명시적으로 지시할 수 있음
      • (예: 명령어 끝에 &를 붙임).
    • 백그라운드 프로세스: 사용자의 즉각적인 입력을 기다리지 않으므로, 사용자는 프로세스의 실행을 기다리지 않고 다른 작업을 계속할 수 있음
    • 시스템은 백그라운드 프로세스를 자동으로 관리하며, 이들은 사용자 인터페이스를 차지하지 않습니다.
    • 백그라운드 프로세스도 시스템 자원(CPU 시간, 메모리 등)을 사용하므로, 많은 수의 백그라운드 프로세스가 실행되면 시스템의 성능에 영향을 줄 수 있습니다.

3. 포어그라운드와 백그라운드 프로세스의 전환

  • 사용자는 특정 프로세스를, 포어그라운드와 백그라운드 사이에서 전환할 수 있음
  • 예를 들어,
    • 유닉스 계열 시스템에서는 fg 명령어로 백그라운드 프로세스를 포어그라운드로 가져오거나,
    • bg 명령어로 포어그라운드 프로세스를 백그라운드로 보낼 수 있습니다.
  • 프로세스를 백그라운드로 실행시키면, 터미널은 즉시 다른 명령어 입력을 위해 준비 상태가 됩니다.
    • 이는 장시간 실행이 필요한 프로그램이나 서비스를 백그라운드에서 실행시키면서, 동시에 다른 작업을 진행하고자 할 때 유용
  • 포어그라운드와 백그라운드 프로세스의 관리는 멀티태스킹 운영 체제의 핵심 기능 중 하나
    • 사용자는 이러한 개념을 이해하고 적절히 활용함으로써, 작업 효율성을 높이고 시스템 자원을 효과적으로 관리할 수 있습니다.
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글