스택과 레지스터 차이에 대해
스택
프로시저 호출 시 지역 변수와 매개변수를 저장하기 위한 메모리 공간입니다.
선언되는 순서와 반대로 메모리가 해제되는 LIFO(Last In First Out) 구조를 가지고 있습니다.
- 용도
함수의 로컬 변수 저장: 각 함수 호출 시 그 함수의 로컬 변수들이 스택에 저장됩니다.
함수의 제어 흐름 관리: 함수가 다른 함수를 호출할 때, 반환 주소와 이전 함수의 스택 프레임
정보가 스택에 저장됩니다.
- 장점
동적으로 메모리를 할당하고 해제할 수 있습니다.
구현이 간단하며, 메모리 관리 overhead가 낮습니다.
레지스터(register)
프로세서 내부의 고속 작동 메모리로, 프로시저 실행 중 자주 접근하는
변수나 중간 계산값을 저장하기 위해 사용됩니다.
- 용도
중간 연산 결과의 저장: 연산 중 생성되는 중간 값을 빠르게 저장하고 접근하기 위해 사용됩니다.
빠른 데이터 접근: 특정 데이터나 주소를 빠르게 저장하고 로드하기 위해 사용됩니다.
- 장점
매우 높은 데이터 접근 속도를 제공합니다.
데이터를 메모리로부터 레지스터로 빠르게 이동시킬 수 있어 연산 효율이 증가합니다.