Project 4: Concurrency

Important Dates

Questions about the project? Send them to .

Due: Friday 11/18 by 9pm.

Free Extension Due Date: Sunday 11/27 by 9pm.


There are two parts to this project:

  • Scalable Web Server: to be done on the linux lab, so you can learn more about programming in C on a typical UNIX-based platform. Before you begin, we highly recommend that you watch this video from a previous discussion section. As was the case in the past, the project details will be slightly different, but the main ideas will be the same. This part of the project must be performed alone.
  • Kernel Threads: to be done in our xv6 hacking environment. This is the video to watch for this part. This part of the project can be done with a single partner.

Click on the above links to learn more about what you should do. READ EACH CAREFULLY!


Copying code s considered cheating. Read this for more info on what is OK and what is not!

Handing It In

The handin directory is ~cs537-1/handin/SECTION/login/p4 where login is your login and SECTION is your unofficial discussion section (e.g, 301).

For the C/Linux part of this project, you should copy whatever is needed to build the web server (including a makefile) into the linux/ subdirectory.

For the xv6 part of the project, copy all of your source files (but not .o files, please, or binaries!) into the xv6/ subdirectory of your p4 directory. A simple way to do this is to copy everything into the destination directory directory, then type make to make sure it builds, and then type make clean to remove unneeded files.

If you have a partner for P4b, please create a file called partner.login in the p4 directory that contains only your partner's CS login (and nothing else). Both partners should create the partner.login file, but only one partner should submit code (for P4b).

Finally, into your p4 directory, please include a README file. In there, describe what you did a little bit. The most important bit, at the top, should be the authorship of the project, particularly if you had a partner. Include both partner's names and CS logins to receive credit; please put the README in BOTH partners' directories; put the code in just one. Do not put any code in the other person's handin directory!