Skip to content

Malloc Lab assignment from the course Systems Programming and Computer Architecture at ETH Zurich.

Notifications You must be signed in to change notification settings

sevdari/malloc-lab

Repository files navigation

Malloc Lab ETHZ SPCA

This repository contains my solution to the Malloc Lab assignment from the course Systems Programming and Computer Architecture at ETH Zurich. My implementation can be found in mm.c.

The allocator uses an implicit free list with 8-byte alignment, headers and footers to track block size and allocation status, first-fit search, block splitting on allocation and coalescing on free. When no suitable free block is found, the heap is extended and merged with the last block if possible. This keeps fragmentation low while keeping the implementation simple and fully compliant with the Malloc Lab interface.

Below you can find the original handout specification. I have also included the original mm.c file which you can find in mm_old.c.

#####################################################################

CS:APP Malloc Lab Handout files for students

Copyright (c) 2002, R. Bryant and D. O'Hallaron, All rights reserved. May not be used, modified, or copied without permission.

######################################################################


Main Files:


mm.{c,h} Your solution malloc package. mm.c is the file that you will be handing in, and is the only file you should modify.

mdriver.c The malloc driver that tests your mm.c file

short{1,2}-bal.rep Two tiny tracefiles to help you get started.

Makefile Builds the driver


Other support files for the driver


config.h Configures the malloc lab driver fsecs.{c,h} Wrapper function for the different timer packages clock.{c,h} Routines for accessing the Pentium and Alpha cycle counters fcyc.{c,h} Timer functions based on cycle counters ftimer.{c,h} Timer functions based on interval timers and gettimeofday() memlib.{c,h} Models the heap and sbrk function


Building and running the driver


To build the driver, type "make" to the shell.

To run the driver on a tiny test trace:

unix> mdriver -V -f short1-bal.rep

The -V option prints out helpful tracing and summary information.

To get a list of the driver flags:

unix> mdriver -h

About

Malloc Lab assignment from the course Systems Programming and Computer Architecture at ETH Zurich.

Topics

Resources

Stars

Watchers

Forks