728x90
- [ 프로그래밍/CS Essentials ]CS:APP Malloc Lab2024-04-15 00:57:27이 글은 2024년 4월 15일 월요일 오전 1시 41분에 최종 수정되었습니다. 들어가며 크래프톤 정글 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) 이진 트리의 기본 구조와 특성(각 노드가 최대 두 개의 자식 노..
- [ 프로그래밍/CS Essentials ]최소 스패닝 트리 (최소 신장 트리, MST)2024-02-04 23:48:00들어가며 때는 2024년 1월 19일, 백준의 1197번 알고리즘 문제인 최소 스패닝 트리를 풀려고 했다. https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 그런데...! 스패닝 트리가 뭔지도 모르는 나에게 이 문제를 풀기 위한 알고리즘 이름이 무려 5개가 필요했다. 최소 스패닝 트리(Minimum Spanning Tree, MST) 프림 알고리즘 (Prim's Algorithm) 크루스칼 알고리즘 ..
728x90