반응형

스택 영역 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

스택(stack)이란 무엇인가?

1. 스택이란? 스택은 함수 호출 및 함수 실행과 관련된 데이터를 저장하는 프로세스의 메모리 영역입니다. 프로세스의 각 함수 호출은 함수의 반환 주소뿐만 아니라 함수의 로컬 변수 및 인수를 포함하는 스택에 새 프레임을 만듭니다. 함수가 반환되면 스택의 해당 프레임이 팝되어 함수 호출과 관련된 메모리가 해제됩니다. 스택에는 후입선출(LIFO) 데이터 구조가 있습니다. 즉, 스택에 푸시된 마지막 함수 호출이 함수가 반환될 때 가장 먼저 팝됩니다. 이렇게 하면 함수가 반환될 때 각 함수 호출에 대한 메모리가 자동으로 해제되므로 함수 호출에 사용되는 메모리를 쉽게 관리할 수 있습니다. 스택은 또한 인터럽트 또는 예외가 발생할 때마다 프로그램 카운터 및 레지스터 값을 포함하여 프로세서의 현재 상태를 저장하는 데 ..

공부/자료구조 2023.02.05

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

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

공부/CS 2023.01.08
반응형