컴퓨터 사이언스

지연 로딩(Lazy Loading), Demand Zero Memory, Copy on Write, Memory Copy [간단 정리]

woohap 2024. 11. 17. 11:05

지연 로딩

객체나 리소스를 실제로 필요할 때까지 로드하지 않는 방법 
메모리 사용량을 최적화하고 시스템 성능을 향상시키는 강력한 기법

- 가상 메모리 주소를 할당 했지만, 물리 메모리 주소와 매핑되어 있지 않은 상태 (물리 메모리에 적재도 되어 있지 않음)
- 배틀그라운드에서 필요한 부분만 렌더링하고 필요하지 않은 부분은 렌더링하지 않는 것과 유사 (이는 지연 로딩은 아니지만 유사)

익명 페이지와 파일 기반 페이지

[익명 페이지]
익명 페이지의 경우 가상 메모리만 할당되어 지연 로딩을 수행한다.
해당 가상 메모리 주소로 최초 접근이 발생하면, 주 페이지 폴트가 발생하고 
물리 메모리 할당 후 메모리 공간을 0으로 초기화한 뒤 (Demand Zero Memory)
가상 메모리 주소와 물리 메모리 주소 매핑한다.



[파일 기반 페이지]
파일 기반 페이지의 경우 가상 메모리를 할당하고 디스크(보조 기억 장치)의 파일과 매핑하여 지연 로딩을 수행한다. (물리 메모리에 적재되지 않음)
해당 가상 메모리 주소로 최조 접근이 발생하면, 주 페이지 폴트가 발생하고 
매핑된 디스크에서 파일을 읽어와 물리 메모리에 적재한 후 가상 메모리 주소와 물리 메모리 주소를 매핑한다.

Demand Zero Memory

새로운 페이지가 처음 요청될 때, 메모리에 할당하고, 해당 페이지를 0으로 초기화하는 기법
보안 및 일관성을 위해 0으로 초기화 

- 사용 이유 -
모든 메모리를 바로 할당하지 않고, 필요할 때 할당하므로 [효율적인 메모리 사용]
초기화 되지 않은 메모리를 바로 접근할 경우, 이전 사용자가 남긴 민감한 데이터가 노출될 위험이 있다.[보안]

Copy on Write

페이지가 복사되기 전까지는 실제로 복사되지 않도록 하는 기법 
주로 프로세스 간에 메모리를 공유할 때 사용된다.

Ex) 
프로세스가 fork() 시스템콜 호출을 통해 자식을 생성할 때, 부모와 자식은 동일한 메모리 페이지를 공유하지만 
한 쪽이 페이지를 변경하려고 할 때 실제 복사가 일어난다. 

Memory Copy

메모리 블록을 다른 위치로 복사하는 과정 
데이터를 안전하게 옮기거나 백업하는데 사용된다.
하지만 메모리 복사 시간이 많이 걸리므로, 시스템 성능에 영향을 줄 수 있다.

'컴퓨터 사이언스' 카테고리의 다른 글

REST API [간단정리]  (1) 2024.11.21
리눅스 리다이렉션과 파이프  (2) 2024.11.13
캐시  (0) 2024.11.11
멀티 레벨 페이지 테이블 (OSTEP 20장)  (0) 2024.11.08
TLB  (0) 2024.11.07