Nachos Lab Notes

This page contains notes and supplementary information about the Nachos labs.  The Nachos project guide is the authoritative source for basic information about the labs.

installing and building Nachos
some patches to make your life easier
setting global variables from the Nachos command line
some useful source files
calendar of due dates for the labs
AFS security how-to

Lab #1 notes from TAs past and present

"The symptoms of the bugs aren't nearly as important as the causes in this case.

There are a million ways to cause a segfault or get a wrong answer in this lab,
so you don't have to show all of them. If you walk through what's
happening in each bug, though, you'll find that the causes behind a lot of the
bugs are very similar. Just try to make your threads do a variety of horrible
things to each other." [Andrew Chatham]

"It's not the number of bugs; it's the quality of the bugs. Make sure
that you have a firm grasp on what is happening in your code and that you
understand the ramifications of bad interleavings.

Try it this way: throw in a yield statement between every two statements
that should happen together. Did your program run as expected? How did
that screw things up? Comment out that yield statement (or do whatever you
have to so that it doesn't execute but you can still show it to the TAs
during the demo) and try inserting the yield statement somewhere else. That
should get you started.

Once you see what's going on, step away from the computer and think about it
abstractly. What's really going on here? What are the problems caused by
the yields? 

Come up with about 6-8 categories. It depends on how you categorize errors,
so if you come up with more or less, don't sweat it because you may have
categorized them differently.

Don't spend too much time on the writeup. Clearly identify the
categories of bugs you found with a brief explanation of each.

The demo is the most important thing. Be prepared to explain your code
and be able to trace through what happens when a thread yields at a
particular spot." [Sara Sprenkle]