typedef struct _PROCESS_MEMORY_COUNTERS_EX { DWORD cb; DWORD PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage; SIZE_T PrivateUsage; } PROCESS_MEMORY_COUNTERS_EX, *PPROCESS_MEMORY_COUNTERS_EX;
MSDN에 보면 이렇게 나와있다.
사실 영어를 어느정도 하게되거나, Windows에서 사용하는 구조체를 사용하면 자주 보는 변수들이있다.
cb : 구조체의 크기 (byte)
--> 항상 구조체 선언과 동시에 크기도 초기화 해준다.
PROCESS_MEMORY_COUNTERS_EX MemofProc = {0, };
MemofProc.cb = Sizeof(PROCESS_MEMORY_COUNTERS_EX);
요로케?
PageFaultCount : 페이지 폴트의 수
PeakWorkingSetSize : 피크 작업 집합 크기 (byte)
WorkingSetSize : 현재 작업 세트 크기
QuotaPeakPagedPoolUsage : 바이트 단위의 최대 페이지 된 풀 사용량
QuotaPagedPoolUsage : 현재 페이지 된 풀 사용량
QuotaPeakNonPagedPoolUsage : 최대 비 페이징 풀 사용량
QuotaNonPagedPoolUsage : 현재 비 페이징 된 풀 사용량
PagefileUsage ; 이 프로세스의 청구 커밋 값
--> Windows 7 및 Windows Server 2008 R2 및 이전 버전에는 PagefileUsage 는 항상 0 입니다. PrivateUsage 를 확인하면 됩니다.
PeakPagefileUsage : 이 프로세스의 수명 동안 커밋 된 커밋의 최댓 값
필요 헤더 파일 : psapi.h
가상메모리란?
가상 메모리는 RAM을 관리하는 방법 중 하나로, 각 프로그램에 실제 메모리 주소가 아닌
가상의 메모리 주소를 할당하는 방식
프레임 : 물리 메모리를 사용하는 최소 크기 단위.
페이지 : 가상 메모리를 사용하는 최소 크기 단위.
페이지 폴트란?
프로그램이 자신의 주소 공간에는 존재하지만 시스템의 RAM에는 현재 없는 데이터나 코드에 접근 시도하였을 경우 발생하는 현상
작업 세트 (Working Set)
현재 특수 프로세스 전용으로 할당된 물지적 메모리 페이지 그룹
시스템프로그래밍을 공부하면서 단순히 코딩 개발만의 공부가 아니라, 운영체제+ 개발이라고 생각이든다.
'개발 > Win32' 카테고리의 다른 글
GetQueuedCompletionStatus 함수 (0) | 2018.02.11 |
---|---|
GetProcessMemoryInfo 함수 (0) | 2018.02.11 |
QueryFullProcessImageName 함수 (0) | 2018.02.11 |
OpenProcess 함수 (0) | 2018.02.11 |
ZeroMemory 와 memset (0) | 2018.02.09 |