본문 바로가기
운영체제/[ecourse] Windows Programming

5-3. Heap Memory

by 헛둘이 2022. 9. 18.
VirtualAlloc의 특징
  • 메모리의 시작 주소는 64K의 배수여야 한다.
  • 메모리 크기는 PAGE 크기의 배수여야 한다.

 

힙 메모리의 역할
  • VirtualAlloc에서 할당한 메모리를 필요한 만큼 떼어다가 주는 것
  • 필요할 땐 빈 공간을 떼어다 주고, 반납하면 사용가능하도록 다시 처리해주는 알고리즘

 

힙 메모리의 특징
  • 기본 힙은 1MB로 예약 되고, 크기는 모자라면 자동으로 증가한다.
  • 힙은 필요하면 또 만들 수 있음
  • 힙을 사용할 때는 기본 힙에서 할당할 지, 새로 만든 힙에서 할당할 지 결정해야 한다.

 

 

 


힙 사용하기
  1. 기본 힙 핸들 얻기 : GetProcessHeap();
  2. 힙에서 메모리 할당 : HeapAlloc()
  3. 힙에서 메모리 해지 : HeapFree()

 

HeapAlloc

  • hHeap : 할당할 힙의 핸들
  • dwFlags : 힙의 속성을 지정하는 플래그 (HEAP_ZERO_MEMORY : 할당된 메모리 0초기화)
  • dwBytes : 할당 받을 사이즈

 

HeapFree

  • hHeap : 해제할 힙 핸들
  • dwFlags :  멀티스레딩 시 동기화 여부를 플래그로 줄 수 있음, 관례상 0
  • lpMem : 해제할 메모리 주소

 

 

 

 

'운영체제 > [ecourse] Windows Programming' 카테고리의 다른 글

6-1. Thread Basic  (0) 2022.09.20
5-4. Stack Memory  (0) 2022.09.19
5-2. Virtual Memory Allocation  (0) 2022.09.18
5-1. Virtual Address Space  (1) 2022.09.16
4-2. Process ID & Handle  (0) 2022.09.13

댓글