CSE 411 : Operating Systems (Spring 2006)
Project 2

DUE March 28rd@02:00PM

This page will continue to be updated. Please check back periodically for updates and announcements.

Demo Signup Slots
Group Assignments
Library Interface
Sample Code
Shells and Editors
Description
Labs Usage
Frequently asked questions

Description

In this project, you will learn about Memory management. This project requires you to construct and compare a few memory allocation/deallocation schemes and compare them.

Your memory management subsystem will be based on the following systems: First Fit, Best Fit, Worst Fit and Buddy system. It will provide the user with an interface for making memory requests and also for freeing up memory that is no longer needed by the user. One of the jobs of the memory management subsystem is to service memory requests by matching the size of the request with a large enough hole, from which to satisfy the request. Specifically in the Buddy system you have buckets, whose size in bytes is a power of 2. When you get the request you will allocate a bucket with a size greater than the memory chunk that is requested.

NOTE:

The library will first use a standard glibc malloc call to allocate a large amount of memory from the system. The specific amount of memory that your system will handle will be defined by 'mem_size' which is a parameter of the my_init function. It will then use this memory to form buckets and return chunks of memory to the user on the subsequent my_malloc calls. You will create the following files - first-fit.c, best-fit.c, worst-fit.c and buddy.c and their corresponding header files.

For the specifics and any latest updates make sure you keep checking this web-site for any latest information/updates regarding the project. Also note that the test programs (i.e. the user programs which will exercise the memory system you will implement) are available here. You should make sure that you use the same test programs (the interface should remain the same, and they should be compilable/linkable with your code).

You are encouraged to form new groups as this will help you to gain an experience of working with different groups of people. Even though you will work in groups of up to three(individual projects are also allowed), each of you should be fully familiar with the entire code. You should also ensure that there is a fair division of labor between the members. The project report is due in class on March 28. The code needs to be submitted using the turning procedure(to be announced) on the due date before 02:00PM and there will be a 20% deduction for delays upto 24 hours and 40% deduction for delays upto 48 hours. Projects turned in after 48 hours of the posted deadline will not be graded. The report should include (a) a complete listing of your code, (b) a detailed description of your implementation, (c) design decisions and assumptions (with justifications) that you may have made, (c) breakdown of the contribution of each member of a team. You need to set up an appointment with the TA to demonstrate your implementation and answer a range of questions related to the entire project (even though an individual may have worked on only one part). The TA will use the test programs provided here for testing your code and may use other test programs as well.

top


Lab Usage :


You will be using labs 218 and 222 in IST building for your project.

218 lab usage is available at the following link
218 Lab usage

222 lab usage is available at the following link
222 Lab usage

top