Search

포그라운드와 백그라운드 차이점

 포그라운드

포그라운드에서 실행되는 프로세스는 사용자와 상호 작용하는 프로세스입니다. 
프로세스는 화면에 출력되며, 사용자의 입력을 받아들이고 사용자와의 상호 작용을 통해 작업을 수행합니다.
대부분의 인터랙티브한 프로그램들은 포그라운드에서 실행되며, 사용자와의 커뮤니케이션을 위해 화면에 결과를 표시하거나 입력을 받아들입니다.
쉘(Shell)에서 해당 프로세스를 수행할 동안 다른 동작은 할 수 없는 상태이며, 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 방식입니다.
포그라운드 명령을 했는데, 무한루프가 걸리거나 오래걸릴 때 강제 종료하는 방법은 CTRL + c 를 눌러서 프로세스 작업을 취소(종료)할 수 있습니다.
터미널과 직접 연결된 상태에서 입출력을 주고받는 프로세스
예시
터미널에서 명령어를 입력하고 실행되는 명령은 포그라운드에서 실행됩니다.
해당 명령이 실행 중인 동안 터미널은 그 명령의 출력을 보여주고, 사용자가 추가 입력을 할 수 있습니다.

 백그라운드

백그라운드에서 실행되는 프로세스는 사용자와의 직접적인 상호 작용 없이 실행되는 프로세스입니다.
이러한 프로세스는 주로 긴 작업을 수행하거나 백엔드에서 실행되는 서비스 형태의 프로그램에 사용됩니다.
백그라운드에서 실행되는 프로세스는 포그라운드와 달리 화면에 출력되지 않으며, 사용자 입력을 기다리지 않고 동작합니다.
하나의 쉘(터미널)에서 여러 개의 프로세스를 동시에 실행할 수 있는 방식이라 한 동작을 수행하는 동안에도 동시에 여러 다른 동작을 할 수 있습니다.
터미널 입출력과 상관없이 독립적으로 실행되는 프로세스