힙2 13. 프로세스 구조(1) 프로세스와 컨텍스트 스위칭 스케줄러에 의해 어떤 프로세스에서 다른 프로세스로 바뀌는 과정을 컨텍스트 스위칭이라고 한다. 이 컨텍스트 스위칭을 이해하기 위해서는 프로세스의 구조에 대한 이해가 바탕이 되어야 한다. 지금부터 프로세스의 구조에 대해서 알아보겠다. 1. 프로세스 구조 - 먼저 다음과 같은 프로그램 코드가 있다고 해보자. def func(a, b): return print(a+b) c = 0 c = func(1,2) print(c) 이 코드가 실행되면 컴파일이라는 단계를 거친다. 컴파일은 기계어 또는 바이너리라는 0과 1로 된 언어로써, 컴퓨터가 이해할 수 있도록 번역되는 과정을 의미한다. - 프로세스가 실행된다는 것은 코드가 컴파일 되는 과정을 포함한다. - 그렇다면 컴파일된 코드는 어디로 가는.. 2021. 4. 9. Data Structure - Heap(2) 1. Heap 구현 - 데이터 삭제(pop) - Heap은 최대값(max heap) 또는 최소값(min heap)만을 삭제한다. 그렇기에 root노드만을 삭제하면 된다. - root노드의 삭제는 root노드를 꺼내었을 때 발생하며, 이 동작을 pop이라고 명시한다. def pop(self): # heap에 데이터가 없는 경우 if len(self.heap_array) = len(self.heap_array): #배열의 길이보다 긴값 = 없는값 return False # 재정렬 2번 조건 - 좌측 자식노드만 존재(우측 자식노드는 없음) elif right_child >= len(self.heap_array): # 좌측 자식노드와 값을 비교하여 자식노드 값이 큰 경우 if self.heap_array[pop.. 2020. 9. 3. 이전 1 다음