CS 5600 - Computer Systems

Project 4: File Systems in Pintos

This project is due at 11:59:59pm on December 8, 2014.


In this assignment, you are given a functional file system implementation in Pintos. Your job is to extend the file system to support variable length files via fragmentation, a directory hierarchy, and a buffer cache to improve disk access times. Throughout this assignment, you must be careful to handle synchronization issues, since files and directories can be read and written by multiple programs at the same time. The complete description of this assignment and technical specifications can be found here.


Your project will graded based on the Pintos test results and the design quality of your code, each of which comprises 50% of your grade. Your code must compile and run on the Khoury College Linux machines: we cannot and will not grade code that is running on your personal machine. You must include a design document named pintos/src/filesys/DESIGNDOC in the filesys/ directory of your submission. Examples of how to complete the design document can be found in the Pintos documentation here, and a blank template design document for this project can be downloaded here. For more details on how we will grade your project, see the Pintos grading documentation.

Submitting Your Project

If you have not done so already, register yourself for our grading system using the following command:
$ /course/cs5600f14/bin/register-student [NUID]
NUID is your Northeastern ID number, including any leading zeroes.

Before turning in your project, you and your partner(s) must register your group. To register yourself in a group, execute the following script:

$ /course/cs5600f14/bin/register project4 [team name]
This will either report success back or will give you an error message. If you have trouble registering, please contact the course staff. You and your partner(s) must all run this script with the same [team name]. This is how we know you are part of the same group.

To turn-in your project, you must submit your (thoroughly documented) code and design document. You submit your project by using the turnin script to submit your pintos directory. The turnin script takes two arguments: the name of the project (in this case, project1), and the directory of files you want to submit. For example, you could execute the following:

$ cd ~/pintos/src/filesys/
$ make clean
$ cd ~
$ /course/cs5600f14/bin/turnin project4 pintos/
The script will print out every file that you are submitting, so make sure that it prints out all of the files you wish to submit! Only one group member needs to submit your project. Your group may submit as many times as you wish; only the last submission will be graded, and the time of the last submission will determine whether your assignment is late.