메모리 구조
요즘 🐥 카카오 테크 캠퍼스에서 Java를 공부하는데 강의에서 메모리 구조와 연관지어 설명하니 귀에 쏙쏙 들어온다.
좀 더 깊은 이해를 위해서는 메모리 구조가 필수란 생각이 들어 복습 한다
프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드되어야 합니다.
이때 프로그램이 사용하는 변수들을 저장할 메모리 공간도 필요하며, 이러한 메모리 공간은 운영체제가 제공합니다.
프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 코드(code) 영역, 데이터(data) 영역, 스택(stack) 영역, 힙(heap) 영역 등이 있습니다.
운영체제는 이러한 메모리 공간을 효율적으로 관리함으로써 프로그램의 안정성과 성능을 보장할 수 있습니다.
메모리의 기본 구조
- 코드(code) 영역: 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고도 부릅니다.
- 데이터(data) 영역: 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입니다.
- 스택(stack) 영역: 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역입니다.
- 힙(heap) 영역: 사용자가 직접 관리해야 하는 메모리 영역으로, 메모리의 동적 할당과 해제가 가능합니다.
스택과 힙 영역의 할당 방향은 높은 주소에서 낮은 주소의 방향으로 할당되며, 스택 영역은 함수 호출과 함께 할당되고 함수 호출이 완료되면 소멸합니다.
반면, 힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됩니다.
레퍼런스
- TCP School 메모리 구조
- 자바의 메모리 구조
- 🌱80x86 시스템 메모리의 구조와 동작
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'Computer Science > 운영체제' 카테고리의 다른 글
인터럽트 (0) | 2023.11.30 |
---|