강의 설명

이번 강의에서는 ptmalloc2의 주요 객체들과 이들을 이용하여 메모리를 관리하는 메커니즘들에 대해 알아봅니다. 강의에서 배우는 주요 개념은 다음과 같습니다.

키워드

• Memory Allocator
• ptmalloc(pthread memory-allocation)
• 청크(Chunk)
• bins
• arena
• tcache
강의 목표
ptmalloc2를 개략적으로 이해한다.
이 강의와 관련된 질문들입니다.
7개의 질문
mollac 함수 첫번째 힙 영역
![](https://dreamhack-media.s3.amazonaws.com/attachments/fbfb153cfd0e27298c56940e6cd04c3fbe371937baf302cc0c8c6d7827756e5e.PNG) malloc()함수를 한번만 사용해서 사이즈 0x511인 힙을 하나만 할당했는데 0x55555560300은 대체 왜 생기는 건가요??
#시스템해킹
#배경지식
#ptmalloc2
unsortedbin에 대한 질문입니다!
강의의 unsortedbin 부분을 보면 다음과 같은 설명이 있습니다. "smallbin 크기에 해당하는 청크를 할당 요청하면, ptmalloc은 fastbin 또는 smallbin을 탐색한 뒤 unsortedbin을 탐색합니다." fastbin 크기가 아닌 청크들이 해제될 때는 smallbin 또는 largebin에 보관하지 않고, 우선 unsortedbin에 보관합니다. (강의 내용) 그렇다면 다시 재할당 요청이 들어온다면, unsortedbin을 먼저 탐색해야 재할당 속도를 높일 수 있는 것 아닌가요? (캐시의 역할처럼) largebin의 경우에는 재할당 시 unsortedbin을 먼저 탐색하는 이유와 smallbin은 그렇지 않은 이유가 궁금합니다!
#시스템해킹
#배경지식
#ptmalloc2
arena와 tcache
arena를 쓰면 병목 현상이 발생할 수 있어 이를 방지하기 위해 tcache가 도입됐다는데, arena는 전체 64개밖에 없고, tcache는 각 쓰레드당 64개의 tcache가 있기 때문에 병목현상이 발생하지 않는다는 건가요?? 그리고 각 tcache에 보관할 수 있는 청크의 갯수를 7개로 제한하고 있다면, 전체 보관할 수 있는 tcahce는 64 x 7개가 되는 건가요?
#시스템해킹
#배경지식
#ptmalloc2
fastbin과 smallbin의 크기
강의에서 64비트 기준 smallbin의 크기가 32바이트부터 1024바이트라고 했고 fastbin의 범위가 32바이트이상 128바이트이하라고 했는데 , 그럼 32바이트 청크를 해제했을 때 어디에 할당되는건가요?
#시스템해킹
#배경지식
#ptmalloc2
혹시 ptmalloc2와 관련된 공식문서가 있을까요?
밑에서 나온 질문들을 포함해서 명확하지 않은 부분들((1) smallbin, fastbin에 모두 들어갈 수 있는 크기면 어떻게 들어가지는지, (2) 인접해서 병합할 애들도 원형 이중 연결리스트에서 끊어줘야할텐데 병합 과정은 구체적으로 어떻게 되는지...) 이 너무 많은 것 같아요.
#시스템해킹
#배경지식
#ptmalloc2
small bin의 범위
강의에서 64비트 기준 smallbin의 크기가 32바이트부터 1024바이트라고 했고 fastbin의 범위가 리눅스에서 32바이트이상 128바이트이하라고 했는데 이게 fastbin의 크기가 정해지면 그 이후부터 smallbin의 범위가 정해지는건가요?
#시스템해킹
#배경지식
#ptmalloc2
fastbin과 smallbin의 fd와 bk
ptmalloc2는 총 128개의 bin을 가지고있고 이중 62개는 small bin 63개는 large bin 1개는 unsorted bin 2개는 사용하지 않는다는 것을보고 1. fastbin은 물리적으로 smallbin의 32~128바이트 청크를 보관하는 인덱스에 해당하는 부분이라고 이해하였는데 이것이 맞나요? 아니면 별도로 fastbin을 위한 공간이 물리적으로 존재하나요? 2. 강의 자료의 사진을 보면 small bin에는 chunk를 해제할때 fd와 bk 모두 기록이 되지만 fast bin에는 fd만 기록이 되는데, 이는 각각 이중 연결리스트 / 단일 연결리스트로 구현이 되기에 단일연결리스트인 fast bin은 뒷 청크에 대한 정보인 bk는 필요없다.. 라고 이해하였는데 맞나요?
#시스템해킹
#배경지식
#ptmalloc2
강의 평점
0.0★ (0)
0
Background:ptmalloc2
0.0★ (0)
Free
상세정보
약 2 hours 소요
보통 난이도
없음