메모리의 5가지 영역
(표) 메모리의 5가지 영역
Code : 코드 자체를 구성하는 메모리 영역으로 main함수 , 상수 , 제어문등이 이 영역에 위치한다.
프로그램 명령이 위치 하는곳으로 기계어로 제어 되는 메모리 영역이다.
실행시 CPU가 코드영역에 저장된 명령들을 하나씩 가져가서 처리하는 방식으로 프로그램을 실행한다.
Data : 프로그램 이 종료되기전 까지 지워지지 않을 데이터를 저장하는 곳으로
전역변수, 정적변수, 배열, 구조체등이 저장된다.
초기화된 데이터는 Data영역에 저장되고 초기화 되지 데이터는 BSS에 저장된다.
BSS (Block Stated Symbol) : 초기값이 없는 전역변수 , 배열 , staitc으로 선언된 변수들이 들어간다.
Heap : 사용자의 의사에 의해 데이터를 사용자 정의에 의해 할당된 메모리에 저장하거나 해제한다.
동적 데이터 영역이라고 부르며 메모리 주소 값에 의해서 참조되고 사용되는 영역이다.
Stack : 프로그램이 자동으로 사용하는 임시 메모리 영역이다.
지역변수 , 매개변수, 리턴 값 잠시 사용되었다가 사라지는 데이터를 저장한다.
==============================
프로그램을 작성하면 Code 영역이 늘어난다.
컴파일시 Code, Data, BSS 크기는 결정되고 변경되지 않는다.
Rum time시 Heap과 Stack의 메모리가 결정되며 Heap는 BSS와의 경계에서
아래로 Stack은 끝에서 위로 주소값을 메긴다.
실행파일을 실행하면 BSS가 메모리에 들어가 Stack시작점을 생성하고 코드를 읽어들인다.
'코스웨어 > 13년 스마트컨트롤러' 카테고리의 다른 글
임기준 5장 연습문제 (0) | 2013.03.22 |
---|---|
5장 연습문제 - 이규남 (2) | 2013.03.22 |
[조유진]5장 연습문제 (0) | 2013.03.22 |
Windows7-64bit 운영체제에서의 포인터 - 전영기 (2) | 2013.03.22 |
구구단 (임태형) (0) | 2013.03.19 |
윤년 (임태형) (0) | 2013.03.19 |
디버깅 과정 - 전영기 (0) | 2013.03.19 |
구구단 1단계,2단계..3단계는...-손초롱 (0) | 2013.03.18 |