Malloc Lab 과제
Malloc Lab은 CSAPP의 공식 과제 중의 하나이다. 두 저자가 교수로 재직 중인 카네기 멜론 대학은 물론, 세계 곳곳의 컴공과에서 진행 중인 과제이다. malloc을 통해 메모리를 매니징 하는 것을 넘어서, 명시적 할당기 자체를 구현해봄으로써 이해도를 한층 더 높이자는 것이 주 요지이다.
주요 파일 설명
mm.c
- 학생이 할당기를 구현하는 파일이다.
- 학생은 mm.c 파일만 수정할 수 있다. (디버깅을 위한 목적 제외)
memlib.c
- 테스트 환경이 돌아갈 힙 공간을 추상화해놓은 파일이다.
- 학생들은 과제에서 지정해놓은, 제약된 리소스 하에서 힙을 할당받고 활용해야 한다.
- 힙 공간을 요청하는 함수들(sbrk() 등)이 포함되어 있다.
mdriver.c
- 테스트를 담당하는 파일이다.
- 해당 파일을 실행하면 테스트가 작동한다.
- 테스트를 수행하면 기본적으로는 메모리 에러가 발생하며, 학생이 할당기를 제대로 구현했다면 통과하게 된다.
- 통과했을 경우, 이용도와 쓰루풋(처리량)을 각각 점수화해서 총합 100점 만점으로 점수를 낸다.
short1-bal.rep, short2-bal.rep
- 짧은 버전의 데이터셋으로, 작은 데이터로 테스트를 해보고 싶을 때 사용하는 파일들이다.
makefile
- driver를 빌드하는 파일이다.
- 본인의 컴파일 환경이라든지, 시스템 환경이 과제에서 설계된 바와 다를 경우 여기서 조정해주면 된다.
나의 과제 수행 방식
- 우선 기초 버전의 할당기를 책을 참고하여 빠르게 완성해본다.
- 그 다음 코드를 기반으로 할당기의 내부 동작을 이해하고, 해당 전략의 어느 지점에서 병목이 발생가능한지, 개선사항을 고민해본다.
- 잘 알려진 개선 방식과 내가 시도해보고 싶은 개선 방식들을 적용해보며, 점수를 극대화해본다.
자세한 과제 수행 내용은 다음 포스팅에 이어서 기록!
'Computer Science > 컴퓨터 구조 (Computer Architecture)' 카테고리의 다른 글
동적 메모리 할당 | Malloc Lab | (4) 할당기 배치 전략 개선 (next fit) (0) | 2023.11.14 |
---|---|
동적 메모리 할당 | Malloc Lab | (3) 기초적인 할당기 작동 원리, 구현 (0) | 2023.11.12 |
동적 메모리 할당 | Malloc Lab | (1) Malloc은 어떻게 구현되는가? (2) | 2023.11.10 |
동적 메모리 할당 | 기본 개념, 메모리 누수, 단편화 (1) | 2023.11.04 |
CS:APP | Chapter 3 | (2) 프로그램의 기계수준 표현 (1) | 2023.11.01 |