Stack 영역: 함수의 호출과 관련되어 있으며 프로그램이 자동으로 사용하는 임시 메모리 지역변수,매개변수,리턴값이 함수의 호출과 함께 할당되었다가 함수의 호출이 끝나면 소멸 해버립니다
- stack은 함수가 호출되면 매개변수 반환 주소값 지역변수등이 저장되며 이렇게 저장되는 함수 호출정보를 스택 프레임이라고 합니다
- 후입선출 구조
- push로 저장하고 pop으로 뺴냄
- 스택은 높은 번지의 메모리 주소 -> 낮은 번지 메모리 방향으로 할당됨
- 컴파일 하는동안에 크기가 결정됨
- Stack overflow-stack이 heap영역을 침범
Heap 영역: 사용자가 직접관리하는 메모리로 필요에 의해 동적으로 메모리를 할당 할 때사용
할당해야하는 메모리의 크기를 프로그램이 실행되는동안 결정해야할떄 쓰는 메모리
- 런타임에 결정됨
- 메모리 크기
- 전역 적으로 엑세스됨
- 포인터로 접근하기에 상대적으로 느림
- 메모리관리를 해야합니다
- heap overflow-heap이 stack 영역을 침범
Data 영역: 메모리의 데이터영역은 프로그램의 전역변수와 정적 변수가 저장되는영역
데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다.
- 초기값이 없으면 bss(block started symbol)영역에 저장
- 초기값이 있으면 data영역에 저장
code영역:프로그램 실행할떄 프로그램 코드가 저장되는 영역으로 텍스트영역 명령어등이 저장되고 cpu가 가져가서 하나씩처리하게됨
'공학 > 프로그래밍' 카테고리의 다른 글
스케줄링,가상메모리 (0) | 2024.03.05 |
---|---|
프로세스공부:명령어 집합구조,가상머신,RISC,CISC (0) | 2024.02.26 |
자료구조)Stack구조-C (0) | 2021.12.11 |
자료구조)링크드리스트-단일 링크드 리스트 (0) | 2021.07.22 |