building block for real-time systems. Implement functions
@func{thread_set_priority} to set the priority of the running thread
and @func{thread_get_priority} to get the running thread's priority.
-(A thread can examine and modify only its own priority.) There are
-already prototypes for these functions in @file{threads/thread.h},
-which you should not change.
+(This API only allows a thread to examine and modify its own
+priority.) There are already prototypes for these functions in
+@file{threads/thread.h}, which you should not change.
Thread priority ranges from @code{PRI_MIN} (0) to @code{PRI_MAX} (59).
The initial thread priority is passed as an argument to
implement this fix for semaphores, condition variables or joins.
However, you do need to implement priority scheduling in all cases.
+You may assume a static priority for priority donation, that is, it is
+not necessary to ``re-donate'' a thread's priority if it changes
+(although you are free to do so).
+
@node Problem 1-4 Advanced Scheduler
@section Problem 1-4: Advanced Scheduler
at least one workload of your own design (i.e.@: in addition to the
provided test).
-You may assume a static priority for this problem. It is not necessary
-to ``re-donate'' a thread's priority if it changes (although you are
-free to do so).
-
You must write your code so that we can turn the MLFQS on and off at
compile time. By default, it must be off, but we must be able to turn
it on by inserting the line @code{#define MLFQS 1} in
@file{timer.h} to its minimum value of 19.
@item
-Increase the serial output speed to the maximum of 115200 bps by
+Increase the serial output speed to the maximum of 115,200 bps by
modifying the call to @func{set_serial} in @func{serial_init_poll} in
@file{devices/serial.c}.
@end itemize