2024/10/16 2

[크래프톤 정글] 동적 메모리 할당기 총정리

동적 메모리 할당기 총정리동적 메모리 할당기는 프로그램 실행 중에 필요에 따라 메모리를 동적으로 할당하고 해제하는 시스템이다. 이 메모리 관리 방법은 고정된 크기의 메모리 할당이 아닌, 동적인 메모리 사용을 허용하며, 프로그램의 유연성을 높인다. 동적 메모리 할당기를 구현하는 방법은 여러 가지가 있으며, 각각의 방식은 메모리 사용 효율성, 성능, 단편화 문제 등에 대한 다른 접근 방식을 제공한다.1. 동적 메모리 할당기의 개념동적 메모리 할당기는 다음과 같은 핵심 기능을 수행한다:할당(allocation): 필요한 크기만큼 메모리 블록을 할당하고, 이 블록의 주소를 반환한다.해제(deallocation): 사용이 끝난 메모리 블록을 해제하고, 해당 블록을 가용 메모리로 다시 돌려놓는다.프래그멘테이션 관리..

cs 2024.10.16

[크래프톤 정글] 컴퓨터 시스템 hello.c 실행 전체 플로우 정리

우리가 프로그램을 실행하기까지의 전체 과정을 설명하면, 먼저 hello.c 파일을 작성한 후 빌드를 시키면 다음과 같은 과정들이 차례대로 진행된다.1. 전처리 과정헤더 파일 확장: #include로 포함된 헤더 파일들이 실제 코드로 확장된다.매크로 확장: #define으로 정의된 매크로가 코드에 삽입된다.주석 제거: 소스 코드 내 모든 주석이 제거된다.이 과정을 통해 전처리가 완료되며, 그 결과물은 .i 파일로 저장된다.2. 컴파일 과정구문 분석: 소스 코드의 문법을 검사하여 파싱한다.구문 트리 생성: 구문 트리를 생성하여 코드의 구조를 분석한다.중간 표현(IR): 구문 트리를 기반으로 중간 표현(Intermediate Representation)으로 변환된다.어셈블리 코드 생성: 중간 표현을 기반으로 ..

cs 2024.10.16