Demand-Zero Memory
Demand-Zero Memory는 프로세스가 메모리를 요청할 때, 실제 메모리 페이지를 즉시 할당하지 않고, 실제로 접근하는 순간 깨끗한(0으로 초기화된) 메모리를 제공하는 메커니즘을 의미합니다.
Demand-Zero Memory의 핵심 개념
- 프로세스가 새 메모리 공간(예:
malloc
,new
, 스택 확장 등)을 요청하면 운영체제는 바로 물리 메모리를 할당하지 않는다 - 대신 가상 메모리 상의 해당 영역을 '예약(reserved)' 상태로 표시해두고, 첫 번째 접근(read/write)이 발생할 때 실제 물리 메모리 페이지를 연결한다
- 이때 제공되는 메모리 내용은 모두 0으로 초기화되어 있어, 프로세스는 이를 '깨끗한 공간'처럼 사용할 수 있게 된다
Demand-Zero Memory의 필요성
- 효율성
- 프로세스가 요청한 메모리 중, 실제로 쓰이지 않는 부분에 대해 물리 메모리를 절약할 수 있다
- 보안성
- 이전 프로세스가 사용했던 메모리 값이 남아 있지 않고, 무조건 0으로 초기화된 메모리를 제공하기 때문에 정보 유출을 막을 수 있다
Demand-Zero Memory의 작동 방식
- 프로세스가 메모리 공간을 요청
- 운영체제는 물리 메모리를 바로 할당하지 않고, 가상 메모리 상에서 해당 주소를 '존재하지 않는 페이지'로 예약
- 프로세스가 해당 가상 메모리 영역에 처음 접근
- 해당 가상 메모리에 매핑된 물리 메모리가 없으므로 Page Fault가 발생
- 운영체제가 개입하여 0으로 초기화된 깨끗한 물리 페이지를 할당하고, 해당 가상 주소에 매핑
- 이후 접근이 정상적으로 이루어짐
관련 개념
- Page Fault
- 접근한 가상 주소에 매핑된 물리 메모리가 없을 때 발생하는 인터럽트
- Lazy Allocation
- 실제 필요한 시점까지 리소스 할당을 미루는 전략
- Zero-fill-on-demand
- demand-zero memory의 또 다른 표현
마치면서
Demand-Zero Memory는 필요할 때마다 0으로 초기화된 깨끗한 메모리를 제공하여 메모리 효율성과 보안성을 모두 챙기는 운영체제 기술입니다. 덕분에 시스템은 자원을 효율적으로 관리하고, 프로세스는 예측 가능한 안전한 메모리 환경을 보장받을 수 있죠.
'크래프톤 정글 > CS기초(키워드, 개념정리)' 카테고리의 다른 글
[CS기초] DMA (Direct Memory Access) (0) | 2025.04.28 |
---|---|
[CS기초] 시스템 콜(System Call) (0) | 2025.04.28 |
[CS기초] Implicit Free List vs Explicit Free List (0) | 2025.04.28 |
[CS기초] 메모리 할당 정책 (Memory Allocation Policies) (0) | 2025.04.28 |
[CS기초] 메모리 단편화(Memory Fragmentation) (0) | 2025.04.28 |