프로세스는 RAM에 올라간, 실행중인 프로그램이다.
프로그램의 인스턴스라고 할 수 있다.
( 인스턴스 = 프로그램 실행에 필요한 내용이 컴퓨터 메모리에 적재된다는 뜻이다 )
OS는 CPU, I/O 장치, RAM 등등의
하드웨어 자원을 프로세스에 제공하고, 프로세스를 관리한다.
( ex. CPU Scheduling )
프로세스는 '프로세스 내에서 실행되는 흐름의 단위'인 쓰레드로 구성되어 있다.
이 쓰레드가, CPU Scheduling의 최소 단위가 된다.
( Multi-Process vs Multi-Thread )
프로세스가 차지하는 메모리의 종류는
Code, Data, Heap, Stack으로 나뉜다.
세부적으로
-> BSS영역 ( Block Stated Symbol )
초기화 되지 않은 전역변수
-> Data영역
초기화 된 전역변수, ROM에 저장.
지연변수, 매개변수, 리턴값 등
잠시 사용되었다가 사라지는 데이터를 저장하는 영역
함수 호출 시 할당되고, 함수 반환 시 소멸됨.
로드 시 ( 컴파일 타임 )에 크기가 결정됨.
Code, Data, Stack 영역은
컴파일 타임 때 메모리 크기가 결정된다.