Clarification.
[pintos-anon] / doc / threads.texi
index ab355ad01bb55e0e1af70b95ce8f187a837ca4ee..5532f3b3278d32e504c56a8185a1e4ce21a75bad 100644 (file)
@@ -333,14 +333,14 @@ and options @option{-j} and @option{-r} are mutually exclusive.
 @section Tips
 
 There should be no busy-waiting in any of your solutions to this
-assignment.  Furthermore, resist the temptation to directly disable
-interrupts in your solution by calling @func{intr_disable} or
-@func{intr_set_level}, although you may find doing so to be useful
-while debugging.  Instead, use semaphores, locks and condition
-variables to solve synchronization problems.  Read the tour section on
-synchronization (@pxref{Synchronization}) or the comments
-in @file{threads/synch.h} if you're unsure what synchronization
-primitives may be used in what situations.
+assignment.  Furthermore, to the greatest extent possible, resist the
+temptation to directly disable interrupts in your solution by calling
+@func{intr_disable} or @func{intr_set_level}, although you may find
+doing so to be useful while debugging.  Instead, use semaphores, locks
+and condition variables to solve synchronization problems.  Read the
+tour section on synchronization (@pxref{Synchronization}) or the
+comments in @file{threads/synch.h} if you're unsure what
+synchronization primitives may be used in what situations.
 
 Given some designs of some problems, there may be one or two instances
 in which it is appropriate to directly change the interrupt levels
@@ -494,7 +494,7 @@ A partial fix for this problem is to have the waiting thread
 the lock, then recall the donation once it has acquired the lock.
 Implement this fix.
 
-You will need to account for all different orders that priority
+You will need to account for all different orders in which priority
 donation and inversion can occur.  Be sure to handle multiple
 donations, in which multiple priorities are donated to a thread.  You
 must also handle nested donation: given high, medium, and low priority
@@ -655,7 +655,8 @@ off interrupts.
 @item
 Examples of synchronization mechanisms have been presented in lecture.
 Going over these examples should help you understand when each type is
-useful or needed.
+useful or needed.  @xref{Synchronization}, for specific information
+about synchronization in Pintos.
 @end enumerate
 
 @item
@@ -672,8 +673,8 @@ wake ups.  I think it's a problem in the test program.  What gives?}
 @anchor{Out of Order 1-1}
 
 This test is inherently full of race conditions.  On a real system it
-wouldn't work perfectly all the time either.  However, you can help it
-work more reliably:
+wouldn't work perfectly all the time either.  There are a few ways you
+can help it work more reliably:
 
 @itemize @bullet
 @item
@@ -683,17 +684,11 @@ Make time slices longer by increasing @code{TIME_SLICE} in
 @item
 Make the timer tick more slowly by decreasing @code{TIMER_FREQ} in
 @file{timer.h} to its minimum value of 19.
-
-@item
-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
 
 The former two changes are only desirable for testing problem 1-1 and
 possibly 1-3.  You should revert them before working on other parts
-of the project or turn in the project.  The latter is harmless, so you
-can retain it or revert it at your option.
+of the project or turn in the project.
 
 @item
 @b{Should @file{p1-1.c} be expected to work with the MLFQS turned on?}