Project 4: Concurrency
Due: Tuesday, Nov 21st before 11:59 pm
You may optionally work with a project partner for this project.
Questions?
Please post your questions on
Piazza so that your
classmates with similar problems can benefit from it. However, if the question
is about your code, visiting during office hours is the most efficient way of
getting help. You should not post your code on Piazza.
Overview
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.
- Kernel Threads: to be done in our xv6 hacking
environment. This is the previous video
video and video from the discussion section video to watch for this part.
Click on the above links to learn more about what you should do. READ EACH CAREFULLY!
Notes
Copying code is considered cheating. Read this for
more info on what is OK and what is not!
Handing It In
The handin directory is ~cs537-2/handin/Fall17/$USER/p4
For the C/Linux part of this project, you should copy
server.c copy whatever is needed to build the web server (including a makefile) into the
linux/ subdirectory. Make sure you run the test scripts in the handin directory and you don't miss any files.
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.
Into your p4 directory, put a README file. Describe a little bit about what you did for this project in this file.
Finally, also most importantly, if you are working with a partner, create another file called partner.txt in your p3 directory, where you should only write your partner's CS login. Both of you should create this file to be graded, and again, only one of you need to submit the source files. If there is no such file, we are assuming you are working alone.
For example, if Xiangjin works with Zhewen and let's assume Xiangjin is submitting the source files, then Xiangin will be turning in the source + the partner.txt file and Zhewen will be turning in only the partner.txt file.
Xiangjin's partner.txt will contain a single line of Zhewen's CS login and Zhewen's partner.txt will contain only a single line of Xiangjin's CS login.
|