인프런 커뮤니티 질문&답변

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

동적할당 1에서 질문

작성

·

106

0

동적할당의 흐름을 설명해 주신 부분에서 질문이 있습니다.

유저 영역에 있는 응용프로그램들이 메모리가 필요할 때 마다 커널에 요청하는 것은 비효율 적이라

처음 힙 영역 메모리를 할당할 때 일정정도 큰 크기를 준다고 하셨습니다.

여기서 궁금한 점이

유저 영역에 [메모장] [LOL] [곰플레이어] 이 3가지 응용프로그램이 있다면

처음 힙을 할당할 때 3개의 응용프로그램이 다 같이 쓸 수 있게 힙을 할당한 후

[       메모장이 요청하면 줄 힙공간        |   LOL이 요청하면 줄 힙공간  |  곰플레이어가 요청하면 줄 힙 공간 ]

이런식으로 되어 있는건가요

아니면

힙1 메모장용 [                                     ]

힙2 LOL용 [          ]

힙3 곰플레이어용 [              ]

이렇게 되어있는건가요?             

답변 2

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

메모장을 켰더니 LOL이 꺼져서 승급전에 실패한다면...
생각만 해도 끔찍하군요.

응용프로그램이 실행되면 각자 샌드박스에 갇혀 서로의 존재를 알지 못하고
마치 RAM을 혼자 사용하는 것 마냥 신나게 사용하고 서로 어떠한 간섭도 주지 못합니다.
실제 힙 영역의 주소는 물리적 메모리 (RAM의 주소)가 아니고
커널이 별도로 매핑해서 관리해주는 가상 메모리이기 때문입니다.

관련하여 운영체제 이론에 대해 공부를 해보시면 도움이 됩니다.

0

맞습니다. 메모장의 승급전 방해는... ...

2번 같이 응용프로그램마다 힙이 할당되는 것이군요 

답변 감사합니다!

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

질문하기