메모리 풀 2

스택과 힙, 힙의 단편화

최근 즐겨보는 유튜브 채널에서 재밌는 면접 질문을 보았다.웹 백엔드 개발자를 위한 주제는 아닌것 같긴 한데, 주제가 상당히 흥미롭고 재밌어서 작성해본다. GC에 대한 이해도를 높힐 수 있어 좋은 시간이었다.스택과 힙의 차이멀티스레딩 환경에서의 스택과 힙의 차이스택해당 스레드용메모리의 수명 파악 가능코드의 깊이로지나치게 깊은 스택은, 코드의 가독성을 떨어트린다.힙멀티스레드 환경에서의 전역변수 역할고수준 언어에서, 스택과 힙은 반드시 필요하다.메모리 단편화네이티브 메모리 할당의 문제점malloc은 느리다.시스템 콜이 필요함이는 nio의 native memory 할당에도 같이 적용된다.따라서, 메모리 할당과 해제에 신중해져야 한다.할당받은 native 메모리를, 직접 쪼개가며 재사용해야 할 수도 있다!메모리를..

메모리 할당 문제, 그리고 메모리 단편화

메모리 할당 전략현재 다음과 같이 메모리가 할당되어 있다고 가정하자.만약 여기서, 어떤 프로세스가 세 칸의 메모리에 대한 할당을 요청했을 때, OS는 해당 메모리를 위한 빈 공간을 어떻게 지정할 수 있을까?우리는 이 상황에서 3가지 전략 중 하나를 선택할 수 있다.지금부터 각각 어떠한 전략인지를 알아보자.First-fitBest-fitWorst-fitFirst-fit순서대로 순회하다가, 가장 먼저 만나는 할당가능한 빈 공간을 지정한다.운이 없으면, 전체 메모리를 전부 순회해야 한다.여기서는 가장 먼저 만나는 빈 공간인 4칸을 선택한다.Best-fit모든 메모리 블록 중에서, 요청된 크기를 수용할 수 있는 블록 중 가장 작은 블록을 선택한다.항상 전체 메모리를 전부 순회해야 한다.여기서는 필요한 크기와 정..