실행 중인 프로그램을 의미한다.
실행 파일이 메모리에 올라온 상태
스택 영역: 호출된 함수에서 복귀할 주소 및 데이터(지역변수, 매개변수, 반환값)을 임시로 저장하는 공간. LIFO 방식이기 때문에 메모리의 높은 주소에서 낮은 주소의 방향으로 데이터가 할당된다. 스택은 컴파일 시점에서 크기가 결정된다. 때문에 스택 영역을 초과하게 되면 stack overflow가 발생한다.
데이터 섹션 영역: 전역 변수와 정적 변수를 저장. 이 변수들은 프로그램이 시작될 때 할당되어 프로그램 종료 시 소멸된다.
BSS, Block Stated Symbol: 초기화 되지 않은 전역변수가 저장된다.
힙 영역: 동적 데이터 영역이다.
Process Control Block
운영체제는 프로세스 생성과 동시에 PCB를 생성한다.
실행 중인 프로세스를 전환할 때, 작업의 진행 상황을 PCB에 저장한다.
구체적으로 PCB에 무엇이 저장되는 지 알아보자.
메모
CPU 스케쥴링, 메모리 관리 정보에서 페이지와 세그먼트를 공부하자.
프로세스의 실행 단위.
한 프로세스에서 여러 실행 흐름으로 프로세스 내의 자원을 공유할 수 있다.
스레드는 스레드ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성된다.
같은 프로세스 내의 다른 스레드와 코드, 데이터 섹션, 운영체제 자원들을 공유한다. 그리고 독립적인 스택과 프로그램 카운터 값을 갖고 있다.