반응형

힙 영역 4

스택(Stack)영역과 힙(Heap)영역의 차이점은?

컴퓨터 과학에서 스택(Stack)영역과 힙(Heap) 영역은 프로그램 데이터를 관리하는 데 사용되는 두 가지 중요한 메모리 영역입니다. 스택(Stack)영역과 힙(Heap) 영역의 주요 차이점은 프로그램에서 할당하고 사용하는 방식에 있습니다. 1. 스택(Stack) 스택은 단일 함수 또는 코드 블록 내에서 선언되고 사용되는 변수와 데이터 구조를 저장하는 데 사용되는 메모리 영역입니다. 함수가 호출되면 함수 내에서 선언된 변수가 선입선출 후입선출(LIFO) 순서로 스택에 푸시됩니다. 함수가 반환되면 스택이 팝되고 메모리가 해제됩니다. 스택은 일반적으로 함수 호출과 로컬 변수를 관리하는 데 사용됩니다. 스택은 시스템에 의해 자동으로 관리되므로 프로그래머가 스택에 메모리를 수동으로 할당하거나 해제할 필요가 없..

공부/CS 2023.03.28

메모리 구조의 개념

메모리는 크게 1. 코드 영역, 2. 데이터 영역, 3. 스택 영역, 4. 힙 영역으로 나뉘어져 있다. 1. 코드 영역 코드 영역은 프로그램의 컴파일된(=실행할 프로그램) 기계어 코드를 저장되는 영역이다. 일반적으로 이 영역은 읽기 전용이며, 프로세서가 실행하는 명령들을 포함시킵니다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 2. 데이터 영역 데이터 영역은 초기화된 데이터와, 초기화되지 않는 데이터를 포함하여 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입니다. 아울러 초기화된 데이터는 읽기 전용 섹션에 저장되고, 초기화되지 않은 데이터는 읽기-쓰기 섹션에 저장됩니다. 또한 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다. 3..

공부/CS 2023.02.11

힙(heap)이란 무엇인가?

1. 힙이란? 힙은 동적 메모리 할당에 사용되는 프로세스의 메모리 영역입니다. 크기가 고정되어 함수 호출 및 함수 실행에 사용되는 스택과 달리 힙은 크기가 가변적이며 프로그램 실행 중에 동적으로 메모리를 할당하는 데 사용됩니다. 프로그램이 메모리를 동적으로 할당해야 하는 경우 C의 malloc 또는 C++의 new와 같은 메모리 할당 함수를 호출합니다. 메모리 할당 함수는 힙에서 사용되지 않는 메모리의 연속 블록을 찾고 블록 시작에 대한 포인터를 반환합니다. 그런 다음 프로그램은 개체, 배열 또는 동적으로 할당된 데이터 구조와 같은 데이터를 저장하기 위해 메모리를 사용할 수 있습니다. 힙은 운영 체제의 메모리 관리자가 관리하며 프로그램에서 필요에 따라 크기를 늘리거나 줄일 수 있습니다. 이를 통해 프로그..

공부/자료구조 2023.02.05

프로그램 실행 순서와 메모리 구조

메모리 영역에 얘기하기 전, 프로그램이 어떤식으로 실행되는지 과정을 살펴 보겠습니다. 번호를 통해 프로그램의 실행 순서가 어떠한 과정으로 진행되는 지 나타내보았습니다. 프로그램이 실행되면 컴퓨터의 주 메모리(RAM)에 로드되고 일정량의 메모리 공간이 할당됩니다. 이 메모리 공간은 프로그램이 실행되는 동안 프로그램의 명령과 데이터를 저장하는 데 사용됩니다. 프로그램에 할당되는 메모리 공간의 양은 프로그램의 크기와 사용 가능한 메모리 양에 따라 달라질 수 있습니다. 예를 들어 계산기를 키는 것과, 롤을 키는 것은 프로그램의 크기가 서로 다르기 때문에 메모리 공간의 양은 이에 따라 달라집니다. 프로그램이 처음 로드될 때 운영 체제(OS)는 일반적으로 인접한 메모리 블록을 프로그램에 할당합니다. 이 메모리 블록..

공부/CS 2023.01.08
반응형