Suggestions
Last updated
Last updated
Your TAs find some tools very useful during the development, see for details.
You should expect to (always) run into bugs that you simply don't understand while working on this and subsequent projects.
When you do, reread the appendix on debugging tools, which is filled with useful debugging tips that should help you to get back up to speed (see section ).
Be sure to read the section on backtraces (see section ), which will help you to get the most out of every kernel panic or assertion failure.
We suggest first implementing the following, which can happen in parallel:
Optimized timer_sleep()
in Exercise 1.1.
Basic support for priority scheduling in Exercise 2.1 when a new thread is created in thread_create()
.
Implement fixed-point real arithmetic routines () that are needed for MLFQS in exercise 3.1.
Then you can add full support for priority scheduling in Exercise 2.1 by considering all other possible scenarios and the synchronization primitives.
Then you can tackle either Exercise 3.1 first or Exercise 2.2 first.