[OS] 5. 메모리 구조

개잼·2023년 4월 23일
0

0. 목차

  1. 메모리 구조
  2. code section
  3. data section
  4. heap section
  5. stack section
  6. 예제

1. 메모리 구조

이번에는 메모리 구조에 대해 살펴보려고 합니다.

보시는 바와 같이 Memory는 stack, heap, data, text(code) section으로 나뉘어지는 것을 확인할 수 있습니다.

그럼 이를 더 자세히 살펴보도록 하겠습니다.


2. code section

실행할 프로그램의 Code가 저장되어 있는 영역.


3. data section

프로그램의 시작 단계에서 할당되는 영역, 프로그램 종료 시 사라진다.

ex) 전역 변수, 정적 변수


4. heap section

사용자에 의해 메모리 공간이 동적으로 할당되고 반환된다.

ex) Malloc (C에서의 동적 메모리 할당)


5. Stack section

함수의 호출과 함께 할당되는 구간으로, 함수 종료 시 반환된다.

ex) return 주소, 함수의 parameter, 지역 변수


6. 예제

다음 소스코드를 살펴보는 것으로 각 section에 어떤식으로 할당 되는지 알아보겠습니다.

#include <stdio.h>

int a = 10;

int add(int number) {
	a = a + number;
}

void main() {
	int b = 10;
    static int c = 20; = 
    
    int *p = malloc(1000);
    
  	add(100);
    
    printf("%d\n", a);
    
    return 0;
}

여기서 각각의 변수들에 대해 앞에서 살펴본 section으로 나누어 보겠다.

  • Stack section : number, b, p

  • Data section : a, c

  • heap section : malloc

profile
천천히 나아가는 중

0개의 댓글