목록malloc lab (3)
포도가게의 개발일지
part1에서는 묵시적 가용 리스트(implicit list)에 대해 알아보았다. part2는 명시적 가용리스트에 대해 알아 보겠다. 명시적 가용 리스트(explicit list) 묵시적 가용리스트는 블록 할당 시간이 전체 힙 블록의 수에 비례하기 때문에 묵시적 가용리스트는 범용 할당기에 적합하지 않다. 더 좋은 방법은 가용 블록들을 명시적 자료구조로 구성하는 것이다. implicit list 대신 이중 연결 리스트를 사용하면 first fit 할당 시간을 전체 블록 수에 비례하는 것에서 -> 가용 블록의 수에 비례로 바꿀 수 있다. 첫번째 접근법으로는, 새롭게 반환(free)된 블록들을 리스트의 시작 부분에 삽입해서 LIFO순으로 유지하는 것이다. 두번째 접근법으로는, 리스트를 주소 순으로 관리하는것으..
dynamic memory allocation - 동적 메모리 할당기는 heap이라고 하는 프로세스의 가상메모리 영역을 관리한다. - 힙이 미초기화된 데이터 영역 직후에 시작해서 위쪽으로(높은 주소 방향으로) 커지는 메모리 영역으로 가정 - 커널은 힙의 꼭대기를 가리키는 변수 brk(break)를 사용한다. 할당기는 힙을 다양한 크기의 블록들의 집합으로 관리하며, 각 블록은 할당되었거나 가용한 가상메모리의 연속적인 묶음이다. 할당기 기본 유형 명시적 할당기 : C표준 라이브러리는 malloc 패키지라고 하는 명시적 할당기를 제공한다. c는 malloc 함수를 호출해서 블록을 할당하며, free 함수를 이용하여 블록을 반환한다. 묵시적 할당기 : 묵시적 할당기는 가비지 컬렉터라고 알려져 있으며, 자동으로 ..
https://www.youtube.com/watch?v=es3WGii_7mc 메모리는 크게 두 분류로 나눠 지는데 - 레지스터, 캐시메모리는 cpu 내부에 있으며 cpu 즉 hw가 관리한다. - 메인메모리(램), ssd, hdd 같은 경우는 cpu 밖에 있으며 sw인 os가 관리한다. -> 이번 페이지에서는 sw가 관리하는 메모리를 다루는것에 대해 작성 되었다. 메모리 용어 정리 block - 보조기억장치(disk)와 주기억장치(ram, memory) 사이의 데이터 전송단위 - size : 1~4kb이다 word - 주기억장치와 레지스터 사이의 데이터 전송단위 - size : 16~64bits이다. * 흔히들 말하는 32bit 64bit 컴퓨터는 레지스터가 한번에 읽어오는 word에 단위이다 64bit..