목록전체 글 (66)
ghkdtlwns987
large bin large bin 은 512 바이트 이상의 크기의 chunk가 해제 되었을 때 사용되는 bin이다. large bin 은 이중연결리스트를 사용하고, FIFO 구조를 사용한다. large bin 만의 특성이 있는데 이는 fd_nextsize , bk_nextsize 를 사용한다 if (!in_smallbin_range (nb))// large bin >= 512 { bin = bin_at (av, idx); /* skip scan if empty or largest chunk is too small */ if ((victim = first (bin)) != bin && (unsigned long) (victim->size) >= (unsigned long) (nb)) { victim = ..
smallbin smallbin -> 이중 연결리스트, FIFO 구조 사용 smallbin 의 크기는 512 바이트 미만 ( smallbin bk; if (__glibc_unlikely (bck->fd != victim)) { errstr = ..
unsorted bin unsorted bin 은 다음에 정리할 small bin 과 large bin 크기의 힙 chunk 가 해제되면 이후 재할당을 위해 사용되는 bin이다. -> unsorted bin 의 개수는 1개이다. -> unsorted bin 은 FIFO 구조를 사용한다. 다음은 unsorted bin 코드를 분석해 보도록 하겠다. /* Take now instead of binning if exact fit */ INTERNAL_SIZE_T nb; /* normalized request size */ checked_request2size (bytes, nb); size = chunksize (victim); if (size == nb) { set_inuse_bit_at_offset (vi..