프로세스란 실행을 위해 메모리에 올라온 동적인 상태입니다. 프로세스는 메모리에 주소 공간을 갖습니다.

프로세스 제어 블록(Process Control Block)
- PCB는 커널 영역에 존재함
- 프로세스 관리를 위한 메타 데이터 집합
- 프로세스 ID, 부모 프로세스 ID, 자식 프로세스 ID
- 프로세스 상태 : 생성, 준비, 실행, 완료, 대기 상태
- 프로그램 카운터 : 다음에 실행할 명령어의 주소
- 레지스터 데이터 : 프로세스가 실행 상태일 때 레지스터의 값
- 메모리 관리 정보 : 경계 레지스터 값, 한계 레지스터 값
- 계정 정보 : 계정 번호, CPU 할당 시간, CPU 사용 시간
- 입출력 상태 정보 : 프로세스에 할당된 입출력 자원들과 오픈 파일 리스트
- 문맥 교환 시 PCB 정보를 활용함

프로세스
- 프로세스는 사용자 영역에 존재함
- 영역 구분
- stack : 매개 변수, 로컬 변수, 복귀 주소
- heap : 동적으로 할당되는 메모리 영역
- data : 전역 변수, static 변수
- text : 명령어 코드들
- stack 과 heap 영역은 사실 같은 공간을 공유함
- stack과 heap이 서로의 영역을 침범한 경우 ➡️
StackOverFlow HeapUnderFlow
