malloc에서 allocator 공부할때 implicit, explicit이 allocator의 분류와 free list에 분류에 각각 사용되어 헷갈려서 정리
- allocator의 경우
- explicit allocator는 이용자가 할당된 배열을 직접 “명시적으로” 반환해줘야 하는 것
- C에서 malloc 사용 후 free 하는 것처럼
- 반면, JAVA, ML 등의 higher level language에서는 이용자가 배열을 반환하지 않아도 자동으로 반환이 된다.
- 명령어 없이 “묵시적”으로 반환하기 때문에 Implicit allocator
- free로 반환하지 않고 할당기 스스로 사용하지 않는 할당 블록을 반환
- → 따라서 모든 묵시적 할당기는 garbage collector 기능이 있고, 이를 이용하여 반환 과정 진행
- explicit allocator는 이용자가 할당된 배열을 직접 “명시적으로” 반환해줘야 하는 것
- free list의 경우
- explicit free list는 명시적인 자료 구조를 통해 free list를 관리한다.
- 과제에서 구현한 건 doubly linked list 구조를 이용, 그 외에 tree 등의 자료구조를 이용할 수 있다.
- 반면, implicit free list는 자료구조를 이용하지 않는다.
- 책에서의 implicit free list는 자료구조 없이, 단순하게 전체 heap을 돌면서 free block을 탐색한다.
- explicit free list는 명시적인 자료 구조를 통해 free list를 관리한다.
'공부 기록 > 자잘한것들' 카테고리의 다른 글
[Mac/Eclipse STS4] SpringToolSuite4 응용 프로그램을 열 수 있는 권한이 없습니다. (0) | 2024.04.25 |
---|---|
Proxy와 Router의 차이 (0) | 2023.09.22 |
함수의 Reentrant(재진입성) (0) | 2023.09.09 |
재귀, DFS, 백트래킹 (0) | 2023.09.08 |
분할정복 vs DP (0) | 2023.09.06 |