본문 바로가기

2

[Malloc-lab] 메모리 영역(데이터 세그먼트) 코치님에게 csapp를 읽으면서 스택과 힙에 할당되는 부분에 관해 아직 헷갈리는 부분이 있다고 의도치 않은(?) 고백을 해버렸고 다시 질문이 날라왔다. '그럼 지역변수와 전역변수가 할당되는 곳은 어디에요?' 대답은 했지만 말끔하게 못한 것 같다.. 아직 머릿속에 정확하게 정리가 안 된 것 같아 정리하는 글이다. 메모리 영역은 어떻게 구성되어 있는가. Q. 프로세스 메모리 영역은 어떻게 구성되어 있는가? 프로그램을 실행시키면 운영체제는 우리가 실행시킨 프로그램을 위해 메모리 공간을 할당해준다. 할당되는 메모리 공간은 크게 코드(Code), 데이터(Data), BSS, 힙(Heap), 스택(Stack)영역으로 나뉘어진다. 코드(Code) 영역 - 실행할 프로그램의 코드가 저장되는 영역으로 Text 영역이라고.. 2022. 10. 28.
[알고리즘] 우선순위 큐, 힙 & 백준(최대 힙, 최소 힙, 가운데를 말해요, 카드 정렬하기) 우선순위 큐란, 데이터 삽입은 어떤 순서로 해도 상관없지만 데이터를 삭제할 때는 우선순위에 맞춰 더 높은 우선순위를 갖는 데이터를 먼저 삭제하는 큐를 말한다. 우선순위 큐는 힙을 통해 구현할 수 있다. 힙이란 완전 이진트리의 일종으로 대표적으로 최대 힙과 최소 힙이 있다. - 최대 힙: 루트 노드가 가장 큰 값을 가지며, 부모 노드는 항상 자식 노드보다 큰 값을 갖는다. - 최소 힙: 루트 노드가 가장 작은 값을 가지며, 부모 노드는 항상 자식 노드보다 작은 값을 갖는다. 힙에서의 삭제는 항상 루트 노드를 먼저 삭제하며 노드 변동 시 힙의 성질을 만족하도록 힙을 변동시킨다. 이러한 힙의 특징을 이용하여 우선순위 큐를 구현하는 것이다. 사실상 우선순위 큐를 구현하는 것은 힙을 구현하는 것이다. 최대 힙 구.. 2022. 10. 3.