There and Back Again

크래프톤 정글 주제별 탐구 - 페이징

정의 페이징 기법(Paging)이란, 메인 메모리에서 보조 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다. 가상 메모리를 특정 단위(일반적으로 윈도우에서는 4KB)를 기준으로 모두 같은 크기의 페이지(블럭)로 나누어 운용하는 방식을 뜻한다. 물리 메모리의 경우에는 페이지 크기와 같은 프레임으로 나누어 사용한다. 일반적으로 페이...

크래프톤 정글 주제별 탐구 - 메모리 할당기

정의 동적 메모리 할당기(Dynamic Memory Allocator)는 힙(heap) 이라고 하는 프로세스의 가상 메모리 영역을 관리한다. 메모리 구조를 참고하면 도움이 될 것이다. 일단, 현재 정글에서 요구하는 순서에 맞추어 진행을 해보고자 하겠다. 가용 리스트 조작을 위한 기본 상수와 매크로 동적 메모리 할당을 통해 힙 영역에 뭔가를 저장하고...

크래프톤 정글 주제별 탐구 - 포인터

정의 포인터(pointer)는 메모리의 주소값을 저장하는 변수의 유형을 뜻한다. 우리가 지금까지 사용해 온 정수형(int)변수, 문자형(char)변수와 크게 다르지 않다. 주소값이란? 주소값은 데이터가 저장된 메모리의 주소를 뜻하며, 일반적인 경우 메모리의 시작 주소를 의미한다. C언어는 주소값을 1바이트 크기의 메모리 공간으로 나누어 표현한다(주...

크래프톤 정글 주제별 탐구 - 메모리의 동적 할당

정의 가상 메모리에는 코드, 데이터, 힙, 스택 영역이 있었다. 이중, 데이터 영역과 스택 영역은 전에 컴파일 타임에 미리 결정된다고 했다. 하지만, 힙 영역의 경우 프로그램이 실행되는 도중인 런타임(Run time)에 사용자의 결정에 따라 할당된다! 이렇게 런타임에 할당받는 것을 우리는 메모리의 동적 할당(Dynamic Allocation)이라고 ...