- 순서
- 메모리 계층 구조
- 프로세스 메모리 구조
- 두 구조의 관계
- 메모리 계층 구조
- 메모리 계층 구조는 하드웨어가 실제 메모리를 관리하는 방식임.
- 하드웨어 관점의 메모리 계층 구조는 아래 순서와 같이 이루어져 있다.
- 레지스터 : CPU 내부, 가장 빠르고 용량이 매우 작다.
- 캐시(L1, L2, L3) : CPU 칩 가까이에 위치, 빠르지만 용량이 제한적임
- 주 기억장치(Ram) : 일반적인 작업이 이뤄지는 공간, 중간의 속도르 가짐
- 보조 저장장치(SSD, HDD) : 용량이 크지만 느림
- 보관 장치(테이프, 클라우드) : 아카이브용, 매우 느리지만 용량이 큼
- CPU는 자주 쓰는 데이터를 빠른 계층(레지스터 또는 캐시)에 두고, 덜 쓰는 건 RAM 또는 SSD에 둠
- 프로세스 메모리 구조
- 프로세스 메모리 구조는 운영체제가 프로그램에 제공하는 논리적 메모리를 구분함
- 운영체제와 프로그램 관점의 프로세스 메모리 구조는 아래 순서와 같이 이루어져 있다.
- 커널 영역(OS가 사용)
- 스택(Stack): 함수 호출 시 생성되는 지역 변수, 매개변수 저장
- 함수가 끝나면 알아서 해제되어 자동으로 관리됨
- 크키가 제한적이며, 깊은 재귀시 stack overflow가 발생할 수 있음
- 힙(Heap): 실행 중에 동적으로 할당되는 메모리 (new, malloc)
- 프로그래머가 new/delete, malloc/free로 직접 관리함
- 동적으로 원하는 만큼 할당 가능함.
- BSS 영역: 초기화되지 않은 전역/정적 변수
- 프로그램 시작부터 끝까지 유지됨
- 데이터 영역(Data): 초기화된 전역/정적 변수
- 프로그램 시작부터 끝까지 유지됨
- 코드 영역(Text/Code): 프로그램 실행 명령어
- 실행할 기계어가 들어가는 읽기 전용 영역임
- 위 구조에서 위로 갈수록 높은 주소이다.
- 두 구조의 관계
- RAM 위에 OS가 가상 메모리 기법을 통해 프로세스에게 위 구조를 제공하고, CPU는 캐시/레지스터를 이용해 빠르게 접근함.
- 메모리 계층 구조는 하드웨어 속도 차이를 완화함
- 프로세스 메모리 구조는 운영체제가 프로그램 실행 환경을 제공함.
'CS' 카테고리의 다른 글
| [CS] 프로세스와 스레드 (2) | 2025.08.28 |
|---|---|
| [CS]메모리 단편화 (1) | 2025.08.28 |
| [CS]프로세스의 메모리 (1) | 2025.08.27 |
| [CS]빌드 프로세스 (0) | 2025.08.27 |
| [CS] CPU와 GPU (4) | 2025.08.26 |