- [ 프로그래밍/CS Essentials ]CS:APP Malloc Lab2024-04-15 00:57:27들어가며크래프톤 정글 4기에서 구현해야 했던 Malloc Lab을 이해하기 위해 알아야 했던 사전 지식을 정리해본다.가상 메모리컴퓨터에서 프로그램이 사용하는 메모리 공간을 실제 물리적 메모리보다 크게 만들어주는 기술이다. 이를 통해 컴퓨터는 실제 메모리보다 많은 데이터를 처리한다.가상 메모리는 컴퓨터의 하드디스크 일부를 마치 메모리처럼 사용하게 해준다.실제 메모리는 제한적인데, 이 기술을 사용하면 마법처럼 메모리가 더 커진 것처럼 사용할 수 있다.페이징가상 메모리를 작은 조각들로 나누는 방식으모 이 작은 조각들을 '페이지'라고 부른다.컴퓨터는 이 페이지들을 필요할 때마다 실제 메모리로 가져오거나 실제 메모리에서 다시 하드디스크로 옮긴다.이렇게 하면, 실제 사용 데이터만 메모리에 있기 때문에 효율적인 메모..
- [ 프로그래밍/CS Essentials ]KAIST PintOS - Project 01: Threads2024-03-17 23:56:26들어가며 현재 크래프톤 정글에서 KAIST PintOS를 구현하기 위해 개념 공부 및 팀 프로젝트를 진행하고 있다. 이 글에서는 크래프톤 정글에서 제공하는 가이드라인에 적힌 공부 키워드를 바탕으로 내가 이해하기 쉽도록 정리한 내용을 하나의 포스팅에 모아 다시 정리하는 것을 목표로 한다. Process, Thread Process (프로세스) 프로세스는 실행 중인 프로그램을 말함 운영 체제가 관리하는 작업의 단위로, 코드, 데이터, 힙(동적 할당 공간), 스택(함수 호출 시 매개변수, 지역 변수 등을 저장하는 공간) 등을 포함한 자신만의 독립된 메모리 공간을 가짐 프로세스는 최소 하나 이상의 스레드를 가지고 있음 각 프로세스는 별도의 주소 공간에서 실행되어 다른 프로세스와 자원을 공유하지 않음 프로세스 간..
- [ 프로그래밍/CS Essentials ]Red-Black Tree (레드-블랙 트리)2024-02-18 23:57:24들어가며 현재 크래프톤 정글 4기 과정의 Part. 2 를 진행 중이다. 이 글에서는 4주차 주제인 레드-블랙 트리의 기본 개념을 다룬다. 레드-블랙 트리란? 균형 이진 탐색 트리의 한 종류로, 각 노드가 빨간색이나 검은색의 속성을 갖는 특징이 있다. 다양한 언어의 표준 라이브러리에서 맵, 세트 등의 자료 구조를 구현하는 데 사용한다. ex) C++의 STL(Standard Template Library)에서 map, set, multimap, multiset 등 사실 레드-블랙 트리 자체의 개념은 양이 많지 않으나 이를 이해하기 위한 사전 지식은 지난 최소 스패닝 트리와 마찬가지로 상당했다. 사전 지식 이진 트리 (Binary Trees) 이진 트리의 기본 구조와 특성(각 노드가 최대 두 개의 자식 노..
728x90