작성
·
165
0
페이지들을 region 단위로, 64k 정렬로 시작 주소를 할당해주는 것이 VirtualAlloc()으로
MSDN을 읽었습니다.
다만 이 함수에서 페이지 2개 짜리를 해제할 시, 시작주소가 안맞는 것 아닌가 싶어서요.
GRANULARITY = 0x10000 = 65536;
baseAddress = address - (address % GRANULARITY);
를 해야만, 그래뉼리티 기반으로 할당된 시작지번이 정확히 나오는게 아닌건가...용?
답변 1
1
무조건 앞에다 붙이는 버전에선 % PAGE_SIZE로 괜찮았지만,
뒤에다 붙이는 버전이라면 말씀대로 GRANULARITY를 이용하거나
언리얼 엔진처럼 헤더값을 넣어서 첫 페이지 위치를 기입하는 방향이 맞겠습니다.
그런데 현재 강의 구조에선 페이지가 다수라도
데이터 시작은 앞페이지에 위치해서, 별다른 문제는 없어 보입니다.