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

