취미와 밥줄사이

[ C ] 메모리의 구조 본문

C

[ C ] 메모리의 구조

취미와 밥줄사이 2022. 2. 7. 23:09

메모리의 구조

  • 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드 되어야함
  • 프로그램에서 사용되는 변수들을 저장할 메모리도 필요함
  • 컴퓨터의 운영체제는 프로그램읠 실행을 위해 다양한 메모리 공간을 제공
  • 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간
    • code 영역
    • data 영역
    • stack 영역
    • heap 영역

코드 영역

  • 코드를 실행하기 위해 저장되어있는 영역
  • 프로그램을 실행시키기 위해 구성되는 것들이 저장되는 영역
  • 명령문, 제어문, 함수, 상수들이 이 영역에 저장됨
  • 작성한 소스코드가 들어가는 부분
  • 텍스트 영역

데이터 영역

  • 우리가 작성한 코드에서 전역변수, 정적변수 등이 저장되는 공간
  • 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 소멸되는 영역

힙 영역

  • 사용자에 의해 관리되는 영역
  • 동적으로 할당 할 변수들이 여기에 저장
  • 동적할당 영역
  • 프로그래머가 할당/해제하는 메모리 공간

스택 영역

  • 함수를 호출할 때 지역변수, 매개변수들이 저장되는 공간
  • 함수가 종료되면 해당 함수에 할당된 변수들은 메모리에서 해제됨
  • 프로그램이 자동으로 사용하는 임시 메모리 영역
  • 함수 호출이 완료되면 사라짐

32bit 운영체제 vs 64bit 운영체제

  • 둘의 차이점은 비트의 너비(폭)
  • 고속도로에 32개의 차선 vs 64개의 차선
  • 데이터 처리 단위
  • 2^32 경우수 vs 2^64의 경우의 수
  • 43억 vs 1844경
  • 메모리 한 칸은 1byte의 크기를 가짐
    • 64비트 운영체제는 메모리 한 칸의 주소를 64비트로 표현 = 8바이트
    • 32비트 운영체제는 메모리 한 칸의 주소를 32비트로 표현 = 4바이트

프로그램 실행 순서

  • 프로그램이 실행하게 되면 OS는 메모리(RAM)을 공간을 할당
  • 할당해주는 메모리 공간은 4가지( Code, Data, Stack, Heap)

REFERENCE

http://www.tcpschool.com/c/c_memory_structure

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

https://st-lab.tistory.com/198#:~:text=64%EB%B9%84%ED%8A%B8%20%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%8A%94%20%EB%A9%94%EB%AA%A8%EB%A6%AC,%ED%81%AC%EA%B8%B0%20%EB%98%90%ED%95%9C%208%EB%B0%94%EC%9D%B4%ED%8A%B8%EC%9D%B4%EB%8B%A4.&text=%EC%95%9E%EC%84%9C%20%EB%A9%94%EB%AA%A8%EB%A6%AC%20%EA%B5%AC%EC%A1%B0%EB%8A%94%20%ED%86%B5%EC%83%81,Stack%20%EC%9C%BC%EB%A1%9C%20%EA%B5%AC%EB%B6%84%EB%90%9C%EB%8B%A4%EA%B3%A0%20%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4.

 

메모리 구조 [Memory Structure]

안녕하세요. 오늘은 제목에서 밝혔듯 메모리 구조에 대해 알아보려 합니다. 흔히 메모리라고 하면 RAM을 지칭하는데요, 보통 컴퓨터 구조에 대해 학습하시거나 배우셨던 분들은 알겠지만 메모리

st-lab.tistory.com

https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/

 

[컴퓨터 기초] 메모리구조(Memory Structure) - jinShine

프로그램 실행 순서 메모리 영역에 관해 이야기하기 전에 어떤식으로 프러그램이 실행되는지 과정을 살펴 보겠습니다. 프로그램의 정보를 읽어 메모리에 로드되는 과정을 보실 수 있으실텐데,

jinshine.github.io

https://all-young.tistory.com/17

 

메모리의 구조 (코드, 데이터, 힙, 스택 영역)

목차 메모리 코드(code) 영역 데이터(data) 영역 힙(heap) 영역 스택(stack) 영역 오버 플로우 메모리 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드

all-young.tistory.com