Study

Foreground vs Background process

스파이더웹 2022. 8. 2. 21:49
728x90
반응형

httpd에 스터디를 하던 도중 http는 알겠는데 'd'는 무엇인가에대한 질문을 받았다.
'd'가 demon 이며, Backgroud의 프로세스이며 메모리에 상주하면서 특정한 요청이오면 즉시 대응하는 프로세스의 일종이라고 말을 하였다.. 그런데 추가적으로 Background는 무엇이며, 프로세스는 무엇인지에 대해서 질문을 받았을때는 정확하게 답을 하지 못했다.

그래서 알아보기로하여 이렇게 글을 남긴다

Process란?

프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다
프로세스 내부에는 최소 하나의 스레드를 가지고 있는데, 실제로는 스레드 단위로 스케줄링 한다

Program과 Process의 차이

프로그램은 실행파일이다. 즉, 파일 시스템에 존재하는 실행파일이 프로그램이다.
프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 지칭한다
프로그램을 실행 시키는 주체 (인스턴스) 다시말해 프로그램의 하나의 인스턴스가 프로세스 이다

그렇다면 Foreground 작업과 Background 작업는 무엇인가?

포그라운드 작업

터미널에서 작업할 때 일반적으로 사용자가 명령을 입력하면 은 사용자가 입력한 명령을 해석하여 실행하고 그 결과를 화면에 출력한다. 그러면 사용자는 화면에 출력된 결과를 보고 다시 명령을 입력하는 대화식으로 작업을 수행한다. 이렇게 사용자가 입력한 명령이 실행되어 결과가 출력될때 까지 기다려야 하는 포그라운드 방식으로 처리되는 프로세스를 포그라운드 프로세스라고 하며, 이를 작업 제어에서는 포그라운드 작업이라고 한다.

포그라운드 작업은 사용자가 명령을 실행하는 방식이기에 다른 명령을 입력할 수 없고 기다려야 한다

백그라운드 작업

포그라운드 작업은 명령을 한번에 하나씩 실행하므로 동시에 여러개의 프로세스를 실행할 수 없다. 그러나 백그라운드 기능을 사용하면 앞에서 프로세스가 실행되는 동안 다른 프로세스가 실행될 수 있으므로 한 터미널에서 여러개의 프로세스를 동시에 실행할 수 있다

백그라운드 방식으로 명령을 실행하면 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속 할 수 있다. 즉 필요한 여러 작업을 백그라운드로 실행한 후 터미널에서는 포그라운드 작업을 계속 진행할 수 있다. 이처럼 백그라운드 방식으로 처리되는 프로세스를 백그라운드 프로세스라고 하며, 작업 제어에서는 백그라운드 작업이라고 한다. 백그라운드 작업은 명령의 실행 시간이 많이 걸릴 것으로 예상되거나 명령을 실행한 후 다른 작업을 할 필요가 있을 때 많이 사용한다.

728x90
반응형