일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 벡터
- ColorGradingLutPass
- Cell Shader
- 메모리 누수
- 게임 수학
- Cell Look
- 개인 바이트
- 가상 바이트
- Windows Build
- C언어
- Cartoon Rendering
- URP
- Private Bytes
- Rim Light
- 3d
- OculusMotionVectorPass
- working set
- Toon Shader
- Three(Two) Tone Shading
- Specular
- ASW(Application SpaceWarp)
- 프로그래밍 기초
- 작업 집합
- VR
- AppSW
- URP로 변경
- Virtual Byte
- Today
- Total
WinCNT
어플리케이션에서 가상 메모리 사용 방법 본문
프로세스의 가상 주소 공간 범위를 예약한다는 것은
--> 프로세스가 컴파일 될 때 코드 영역, BBS, 데이터, 스택 영역이 결정된다는 의미이다
주소 공간을 예약해도 실제 스토리지는 할당되지 않지만 다른 할당 작업에서 지정된 범위를 사용할 수 없다
VirtualAlloc
프로세스의 가상 주소 공간 범위를 예약합니다.
주소 공간을 예약해도 실제 스토리지는 할당되지 않지만 다른 할당 작업에서 지정된 범위를 사용할 수 없습니다.
다른 프로세스의 가상 주소 공간에는 영향을 주지 않습니다.
페이지를 예약하면 물리적 스토리지를 불필요하게 사용할 수 있지만 프로세스는 동적 데이터 구조가 증가할 수 있는 주소 공간 범위를 예약할 수 있습니다.
프로세스는 필요에 따라 이 공간에 대한 물리적 스토리지를 할당할 수 있습니다.
할당 프로세스에서만 실제 스토리지(RAM 또는 디스크)에 액세스할 수 있도록 프로세스의 가상 주소 공간에서 예약된 페이지 범위를 커밋합니다.
커밋된 페이지의 범위에 대한 읽기/쓰기, 읽기 전용 또는 액세스 권한 없음을 지정합니다.
이는 읽기/쓰기 액세스 권한이 있는 페이지를 항상 할당하는 표준 할당 함수와 다릅니다.
VirtualFree
예약된 페이지의 범위를 해제하여 호출 프로세스에서 후속 할당 작업에 사용할 수 있는 가상 주소 범위를 만듭니다.
커밋된 페이지의 범위를 커밋 해제하고, 물리적 스토리지를 해제하고, 모든 프로세스에서 후속 할당에 사용할 수 있도록 합니다.
시스템에서 페이징 파일로 페이지를 교환할 수 없도록 커밋된 메모리의 하나 이상의 페이지를 RAM(실제 메모리)에 잠급니다.
호출 프로세스의 가상 주소 공간 또는 지정된 프로세스의 페이지 범위에 대한 정보를 가져옵니다.
호출 프로세스 또는 지정된 프로세스의 가상 주소 공간에서 지정된 범위의 커밋된 페이지에 대한 액세스 보호를 변경합니다.
VirtualAlloc 함수는 다음 작업 중 하나를 수행합니다.
하나 이상의 Free 페이지를 예약합니다.
하나 이상의 예약된 페이지를 커밋합니다.
하나 이상의 Free 페이지를 예약하고 커밋합니다.
참고 사이트
VirtualAlloc 예제
https://docs.microsoft.com/ko-kr/windows/win32/memory/reserving-and-committing-memory
(Windows via C/C++에는 더욱 많은 예제가 있음)
https://docs.microsoft.com/ko-kr/windows/win32/memory/virtual-memory-functions
SSS
'게임 프로그래밍(학습 내용 정리) > 시스템 프로그래밍' 카테고리의 다른 글
Dynamic-Link Library(DLL) - 명시적 링킹(Explicit Linking) (0) | 2022.06.07 |
---|---|
Dynamic-Link Library(DLL) (0) | 2022.05.23 |
작업 집합(Working Set), 가상 바이트(Virtual Byte), 개인 바이트(Private Bytes)...그리고 메모리 누수 (0) | 2022.05.16 |
메모리 (0) | 2022.05.16 |
동기화 방법들 (0) | 2022.04.08 |