본문 바로가기

전체 글

(21)
Thread Multi Process다중 프로세스는 리눅스의 fork 방식을 사용합니다. 부모 프로세스가 사용자 요청을 수신하고, 자식 프로세스를 만들어서 이를 처리합니다.멀티 프로세스를 코드에 어떻게 적용할까요? 아래 코드와 같이 독립적인 함수들을 독립된 프로세스로 실행하고 마지막에 합치는 방식으로 적용할 수 있습니다. int main(){ int resA = funcA(); int resB = funcB(); print(resA + resB); return 0;}이건 다중 프로세스 프로그래밍과 프로세스 간 통신(IPC)으로 구현이 가능합니다. 다만, 각 프로세스의 주소 공간이 서로 격리되어 있기 때문에 프로세스 간 통신이 어렵습니다. 이로 인해 프로세스 자체 주소공간이 있어 복..
힙 메모리 할당 (Heap Memory Allocation) 구현 본격적으로 힙 메모리 할당에 들어가기 전, 스택 메모리 할당과 힙 메모리 할당을 배열 선언으로 간단하게 비교해 보겠습니다. 배열 선언스택(stack)과 힙(heap)은 다른 메모리 세그먼트(memory segment)입니다. 스택은 할당과 해제의 순서가 정해져 있지만 힙은 할당과 해제의 순서가 없거나 무작위입니다. 배열을 정적으로 선언하면, 컴파일 시점에 스택에 메모리를 할당합니다.int arr[3];arr[0] = 1;arr[1] = 2;arr[2] = 3;함수가 끝나면 스택 프레임이 사라지고 arr 변수도 함께 소멸됩니다. 반면, 배열을 동적(malloc)으로 선언하면 런타임 시점에 힙영역에 메모리를 할당합니다.int *arr = malloc(sizeof(int) * 3);arr[0] = 1;arr[..
그래프 알고리즘 (Graph Algorithm) 그래프와 관련된 용어와 자료구조, 알고리즘을 정리합니다. 목차용어 정리인접 행렬, 인접 리스트관련 알고리즘 용어 정리graph: 정점과 정점 사이를 연결하는 간선으로 이루어진 비선형 자료구조 vertex: 정점 adjacent vertex: 특정 정점에 직접 연결된 정점 edge: 방향이 없는 그래프에서 두 정점을 연결하는 간선 degree: 정점에 연결된 간선의 수 in-degree: 정점으로 들어오는 간선의 수 (방향이 있는 그래프)out-degree: 정점에서 나가는 간선의 수 (방향이 있는 그래프) cycle: 특정 정점에서 출발하여 원래 정점으로 돌아오는 경로 weighted graph: 간선에 가중치 값이 매겨진 그래프 네트워크 모델(network model): 현실 세계의 ..