Improving your 412 performance
Here is what I suggest if you want to improve your exam performance
and reduce the time spent in your project.
Get a global understanding of GeekOS
Find out all the threads that exist after initialization and what they do.
(Some (find out which) are of no concern to us.)
Read and understand the GeekOS overview.
Go over the following parts of GeekOS line by line
and make sure you understand it all.
If there is a call to a function in another file,
look it up and note what it does
(the comments usually suffice).
Make sure you understand every line of C code;
if you don't remember your C, relearn it (quickly).
setup.asm, main.c, and the Init_* functions called in Main()
Learn to write multi-threaded programs using semaphores
and no other synchronization construct
Read and absorb the multi-threading note.
Be able to write down from memory all the solutions in the note:
bounded-buffer, Peterson's, test-and-set, etc.
Learn what busy waiting means.
We'll be doing more problems.
Try to solve them on your own.
Work in groups if that helps.
I can give you take-home pracice quizzes (no weight)
if you want more practice.
If you don't understand something, ask:
on Piazza, in class, in office hours.
Put the effort to ask a something more specific than
"Explain Project 4" or "Explain paging".
I'm happy to expand my office hours (preferably before and after class)
and to have many of you there at the same time.
This is a hard 4-credits class.
If you are doing badly and
you don't have the time or energy to carry out these suggestions,
there is a good chance that you will not pass the class.
Your grade is based on performance and not effort.
There will be no extra work to make up for poor past performance.
As I've explained, my thresholds are low enough so that
a high score in exam 2 or 3 can overcome a D in exam 1
(just do the addition yourself).