1. 프로세스 기초
1.1. 프로세스의 정의
- 프로세스 : 현재 실행 중인 프로그램
- 프로세스는 실행, 수면, 실행 대기 등 규칙에 따라 여러 상태로 변화함
- PID : 프로세스를 식별하는 프로세스 ID
- 세션 : 사용자가 로그인해서 작업하는 터미널 단위로 프로세스 그룹을 묶은 것
- 모든 프로세스는 부모 프로세스로부터 기본 환경을 물려받는다.
- 환경 변수를 사용하면 프로세스 환경을 설정하거나 설정된 환경을 검색할 수 있다.
.png)
1.2. 프로세스의 구조

- 텍스트 영역 : 실행 코드를 저장한다. 텍스트 영역은 프로세스 실행 중에 크기가 변하지 않는
고정 영역에 속한다.
- 데이터 영역 : 프로그램에서 정의한 전역 변수를 저장한다. 전역 변수는 프로그램을 작성할 때
크기가 고정되므로 고정 영역에 할당된다.
- heap 영역 : 프로그램 실행 중 동적으로 메모리를 요청하는 경우 할당되는 영역으로 빈 영역에
할당, 할당 해제처럼 상태가 변하는 가변 영역이다.
- stack 영역 : 프로그램에서 정의한 지역 변수를 저장하는 메모리 영역으로 지역변수를 정의한
부분에서 할당해 사용한다.
- 빈 공간 : stack이나 heap과 같이 가변적인 메모리 할당을 위해 유지하고 있는 빈 메모리 영역.
프로세스에 할당된 빈 메모리 영역이 모두 소진되면 메모리 부족으로 프로그램 실행이 중단될 수 있다.