티스토리 뷰
프로그램이 실행이 되면 메모리(RAM)에 로드가 됩니다. 이 상태가 "프로세스" 즉 실행중인 프로그램 입니다.
컴퓨터 운영체제에서는 프로그램의 실행을 위한 다양한 메모리 공간을 제공하는데 대표적인 메모리 공간으로
코드 영역, 데이터 영역, 스택 영역, 힙 영역이 있습니다.
코드 영역은 실행할 프로그램의 코드가 저장되는 곳으로 CPU에서 코드 영역에 저장된 명령어를 읽어서 처리하게 됩니다.
데이터 영역은 프로그램의 코드에서 전역 변수와 정적 변수가 저장되는 영역으로 프로그램이 시작되면 메모리가 할당 되고 종료되면 메모리에서 해제 되게 됩니다.
스택 영역은 함수와 지역변수 그리고 매개변수가 저장되는 영역입니다. 함수가 호출되면 메모리가 할당되고 함수의 호출이 끝나면 메모리에서 해제가 됩니다.
스택 메모리 영역은 자료구조의 스택과 같이 후입선출 방식에 따라 동장되고 메모리의 높은 주소에서 낮은 주소의 방향으로 할당이 됩니다.
추가로 함수와 그 함수의 지역변수 매개변수를 하나로 묶어서 스택 프레임이라고 하며 스택영역은 PUSH 로 데이터를 저장하고 POP으로 데이터를 가져옵니다.
힙 영역은 개발자가 직접 관리 할 수 있는 메모리 영역으로 개발을 하면서 필요에 따라 동적으로 할당하고 해제해야만 합니다.
스택 영역과 반대로 메모리의 낮은 주소에서 높은 주소의 방향으로 할당 됩니다.
'프로그래밍' 카테고리의 다른 글
시스템 메모리 계층 구조 (0) | 2018.11.07 |
---|