본문 바로가기
Linux

[Linux] 18. 프로세스의 개념

by 상도동개발자 2023. 2. 15.
SMALL

프로세스는 현재 시스템에서 실행 중인 프로그램을 뜻한다. 리눅스는 다중 프로세스 시스템이므로 여러 개의 프로세스가 동시에 실행된다.

1. 프로세스의 부모 - 자식 관계

- 리눅스에서 모든 프로세스는 부모 - 자식 관계를 가지고 있다.

- 필요에 따라 부모 프로세스는 자식 프로세스를 생성한다.

- 리눅스를 부팅할 때 스케쥴러가 실행한 프로세스인 systemd, kthreadd 프로세스를 제외하면 모든 프로세스는 부모프로세스를 가지고 있다.

부모 프로세스와 자식 프로세스의 관계

- 자식 프로세스는 할 일이 끝나면 부모 프로세스에 결과를 돌려주고 종료된다.

 

2. 프로세스의 번호

- 각 프로세스는 고유한 번호를 가지고 있는데 이를 PID라고 한다.

- PID는 1번부터 시작하고 프로세스가 실행되면서 하나씩 증가하여 부여된다.

 

3. 프로세스의 종류

- 리눅스의 프로세스 중 사용자가 실행한 일반적인 프로세스는 잠깐 실행되었다가 바로 종료된다.

- 아래는 일반적인 프로세스외에 프로세스 종류이다.

 

3-1. 데몬 프로세스

- 특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행된다.

- 평소에 대기 상태로 있다가 서비스 요청이 들어오면 서비스를 제공한다.

 

3-2. 고아 프로세스

- 자식 프로세스는 종료되면 부모프로세스로 돌아가지만 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료되면 고아 프로세스가 된다.

 

3-3. 좀비 프로세스

- 자식 프로세스는 종료될 때 부모 프로세스에 종료 정보를 보내고, 부모 프로세스가 이 정보를 받으면 자식 프로세스는 프로세스 테이블 목록에서 삭제되어야하지만 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아 있는경우가 있는데 이러한 자식 프로세스를 좀비 프로세스라고 한다.

- 좀비 프로세스는 필요없는 용량을 차지한다.

728x90
반응형
LIST

댓글