Windows System Programming 가상 메모리(Virtual Memory) 컨트롤

mohadang·2023년 5월 20일
0

Windows System Programming

목록 보기
15/17
post-thumbnail

메모리 상태(COMIT, FREE, RESERVE)

OS는 메모리를 페이지 단위로 관리한다
사용자가 메모리를 할당(malloc)하면 해당 메모리는 COMMIT 상태가 되고 소멸(free)시키면 FREE 상태가 된다

메모리 단편화 문제로 재할당 하는 문제를 해결하기 위해 RESERVE 상태가 존재한다
C++ 에서도 reserve 함수가 있는데 역시 마찬가지이다

가상 메모리 제어 API

Dynamic Heap

윈도우에서는 기본 힙을 제공한다 malloc, fee, new, delete 모두 윈도우 디폴트 힙이다
디폴트 힙은 10 번의 malloc으로 메모리 할당 받았으면 10 번의 free를 통해 메모리 해제를 해주어야 한다

이와 별도로 다이나믹 힙이라는 것도 존재한다. 다이나믹 힙은 메모리 공간을 1번에 할당 받고 한번에 해제 가능 하다. 쓰레드 별로 힙을 생성하여 관리한다

장점

메모리 단편화 해소 : 프로그램의 로컬리티가 낮아지는 문제점 발생
동기화 문제에서 자유 : 여기서 동기화는 코드 레벨에서 처리하는 동기화가 아닌 커널 레벨에서 발생하는 동기화이다. 커널 레벨에서 쓰레드별 힙 할당시 동기화 처리를 할 필요가 없다

profile
mohadang

0개의 댓글