코딩공작소
메모리구조 본문
프로세스란 ?
프로그램이 실행되는 동안을 프로세스라 한다. 프로세스는 OS에 의해 Memory area를 할당 받아 실행된다.
프로그램이 OS로부터 할당받는 메모리 공간은 아래의 그림과 같이 나타난다.
<메모리 구조>
ROM(Read Only Memory) RAM(Random Acess Memory)
코드영역(Code Segment)
실행할 프로그램의 코드가 저장되는 영역. CPU에서 코드영역에 저장되어 있는 명령어를 하나씩 가져다가 처리한다.
데이터영역(Date Segment)
프로그램의 전역 변수, 정적 변수가 저장되는 영역. 프로그램의 시작과 끝을 동시에 한다.
힙 영역(Heap Segment)
user가 직접 관리할수 있으며 관리해야 하는 영역. 동적으로 메모리 영역이 할당되고 해제된다.
낮은 주소에서 부터 높은 주소 방향으로 할당됨.
스택 영역(Stack Segment)
함수의 호출과 관계되는 지역 변수, 매개 변수가 저장되는 영역. 데이터 영역과 마찬가지고 함수의 호출과 완료에 의해 생기고 사라진다.
Push와 Pop을 이용해 데이터를 저장, 인출한다.Stack 영역은 LIFO구조로 먼저 들어오는 데이터가 가장 아래부분 나중에 들어오는 데이터가
가장 윗부분에 자리한다. 함수의 호출정보를 스택 프레임이라 한다. 1
- 함수가 호출될 때, 함수가 가지게 되는 공간. 함수가 종료되면서 복귀주소로 돌아가게 될때 소멸됨. [본문으로]