프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 합니다.
또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다.
따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다.
프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 다음과 같습니다.
높은 주소 (high memory) |
스택(stack) 영역 |
함수의 호출과 관계되는 지역 변수와 매개변수가 저장 |
힙(heap) 영역 |
사용자가 직접 관리할 수 있는 '그리고 해야만 하는' 메모리 영역입니다. |
|
데이터(data) 영역 |
프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역 |
|
낮은 주소 (low memory) |
코드(code/text) 영역 |
실행할 프로그램의 코드가 저장되는 영역 CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리 |
스택 영역에 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고 한다.
참고
'네트워크' 카테고리의 다른 글
Process (0) | 2020.09.29 |
---|---|
Concurrent server (0) | 2020.09.29 |