foreground와 background

2021. 3. 7. 00:50Computer(인강)/시스템 프로그래밍

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 foreground와 background에 대해서 배워보도록 할거에요!

바로 시작하도록 하겠습니다

 

 

프로세스 vs 바이너리

 

- 코드 이미지 또는 바이너리: 실행파일

 

- 실행 중인 프로그램: 프로세스

1) 가상 메모리 및 물리 메모리 정보

2) 시스템 리소스 관련 정보

3) 스케쥴링 단위

 

 

리눅스는 다양한 프로세스 실행 환경

- 리눅스는 기본적으로 다양한 프로세스가 실행됨

- 유닉스 철학: 여러 프로그램이 서로 유기적으로 각자의 일을 수행하면서 전체 시스템이 동작하도록 하는 모델

 

 

foreground process / background process

 

foreground process:

쉘(shell)에서 해당 프로세스 실행을 명령한 후,

해당 프로세스 수행 종료까지 사용자가 다른 입력을 하지 못하는 프로세스

 

background process:

사용자 입력과 상관없이 실행되는 프로세스

- 쉘(shell)에서 해당 프로세스 실행시, 맨 뒤에 &를 붙여줌

- 사용 예

 

 

gcc는 gnu c컴파일러입니다

여러분들은 아마 설치할거니? y/n 이런게 많이 뜰겁니다 과감히 Y해주시고요

테스트를 하기 위해서 무한 루프를 만들어보려고 합니다.

 

i 누르시고 (insert) 아래와 같이 입력해주세요

:wq로 저장을 하고요

 

이제 loop라는 실행파일이 생겼네요

실행파일이 만들어졌다면 아래와 같이 입력해봅니다

./loop

현재 디렉토리에서 실행파일을 실행하겠다는 의미입니다

자 그럼 loop파일이 계속 실행이 될거에요 

원래 아래에 명령어를 적어도 안보이는데.. 리눅스가 이럴떈 빠릿빠릿하네요

자 여기서 ctrl + c를 눌러주면 멈춥니다.

하하.. 이걸 왜 했냐면요.

해당 프로세스 실행을 명령한 후에 해당 프로세스 수행 종료까지 사용자가 다른 입력을 하지 못한다 라는걸 

이 foreground process라고 한다 라는걸 예시로 보여드리고 싶었는데

왜 명령어가 입력되는건지^ㅅ^..........난감..ㅠ

우선 foreground의 뜻은 그렇답니다.. 프로세스 수행 종료까지는 사용자가 다른 입력을 하지 못한다!!!!

 

자 다시 background process를 봐볼게요

원래는 ./loop만 하면 멈췄었죠? 근데 ? 지금은 안멈추네요

이렇게 ./loop가 실행되고 있는 와중에도 ls -al 명령을 실행할 수 있습니다.

'

아하... 이런게 바로 background process 라는거군요!

728x90
반응형

'Computer(인강) > 시스템 프로그래밍' 카테고리의 다른 글

리눅스 파일 시스템  (0) 2021.03.07
프로세스 관리 및 제어  (0) 2021.03.07
리다이렉션과 파이프  (0) 2021.03.06
파일 및 권한 관리 - 2  (0) 2021.03.06
파일 및 권한 관리 - 1  (0) 2021.03.06