프로그래밍/컴퓨터구조 및 운영체제

메모리의 구조(Memory Structure)

gameObject 2023. 6. 6. 18:28
728x90

앞서서 간단하게 컴퓨터의 구성요소와 프로그램에 대해서 알아보았다.

https://kyungtaek.tistory.com/12

 

간단한 컴퓨터의 구성요소 및 프로그램 동작이해

먼저 컴퓨터 구성요소를 보면 크게 아래와 같이 나뉘어져 있다. 모니터(출력장치) 키보드,마우스(입력장치) 하드디스크(HDD, SSD),비휘발성 저장장치 : 싸지만, 느리다 메모리(RAM), 휘발성 저장장치

kyungtaek.tistory.com

 

이번에는 RAM(메모리)에 대해서 좀 더 자세히 알아보고자 한다.

프로그램을 실행 할 경우, CPU에서 연산을 수행하여 메모리에 공간을 할당해준다.

그 공간은 4가지로 나누어서 각각의 역할을 수행한다.

• 스택(Stack)

• 힙(Heap)

• 데이터(Data)

• 코드(Code)

1. 코드 영역

프로그램을 실행하기 위한 소스코드를 저장한다.

2. 데이터 영역

전역변수, 정적(static)변수 등을 처리한다.

3. 힙 영역

사용자가 메모리를 관리할 수 있다.

아직까지 내가 배우지 않은 영역이며

동적할당을 통해 런타임 시점에 공간을 할당한다.

4. 스택 영역

기본적으로 현재 내가 예제에서 많이 사용하고 있는 스택영역이다.

예를 들어 함수 내에서 지역변수 사용시 메모리에서는 함수를 수행할때에만 메모리에 변수를 할당한다.

즉 스택영역에 함수가 수행될때에만 생겼다가 없어졌다가 빠르게 반복된다는 것이다.

컴퓨터에서 자동으로 영역을 할당하며, 컴파일 시점에 공간을 할당한다.

 

이런 모양이라고 보면 좋을것 같다.

 

변수가 메모리의 어느위치에 저장되는지 알고싶다면 아래글을 참고

https://kyungtaek.tistory.com/24

 

배열(array) 예제와 함께 가볍게 알아보기

배열은 둘 이상의 변수를 연속적으로 모아 놓은 것이다. 프로그램에서 지역변수 선언해주게 되면 메모리는 차곡차곡 쓰는것이 아니라, 공간상에 비어있는곳에 아무렇게나 할당된다. (무규칙하

kyungtaek.tistory.com

 

728x90