Clarify use of thread_get_nice() and thread_set_nice().
[pintos-anon] / doc / 44bsd.texi
index 84ddf7f1e0df3036e074aec6c4f832cbf3e98dac..3bbce0d572c2a6b3cc051920fa7caa7906b439ae 100644 (file)
@@ -52,6 +52,12 @@ time, the scheduler chooses a thread from the highest-priority non-empty
 queue.  If the highest-priority queue contains multiple threads, then
 they run in ``round robin'' order.
 
+Multiple facets of the scheduler require data to be updated after a
+certain number of timer ticks.  In every case, these updates should
+occur before any ordinary kernel thread has a chance to run, so that
+there is no chance that a kernel thread could see a newly increased
+@func{timer_ticks} value but old scheduler data values.
+
 @menu
 * Thread Niceness::             
 * Calculating Priority::        
@@ -64,19 +70,20 @@ they run in ``round robin'' order.
 @section Niceness
 
 Thread priority is dynamically determined by the scheduler using a
-formula given below.  However, each thread also has a relatively static
-@dfn{nice} value between -20 and 20 that determines how ``nice'' the
-thread should be to other threads.  A @var{nice} of zero does not affect
-thread priority.  A positive @var{nice} increases the numeric priority
-of a thread, decreasing its effective priority, and causes it to give up
-some CPU time it would otherwise receive.  On the other hand, a negative
-@var{nice} tends to take away CPU time from other threads.
+formula given below.  However, each thread also has an integer
+@dfn{nice} value that determines how ``nice'' the thread should be to
+other threads.  A @var{nice} of zero does not affect thread priority.  A
+positive @var{nice}, to the maximum of 20, increases the numeric
+priority of a thread, decreasing its effective priority, and causes it
+to give up some CPU time it would otherwise receive.  On the other hand,
+a negative @var{nice}, to the minimum of -20, tends to take away CPU
+time from other threads.
 
 The initial thread starts with a @var{nice} value of zero.  Other
 threads start with a @var{nice} value inherited from their parent
-thread.  You
-must implement these functions, for which we have provided skeleton
-definitions in @file{threads/thread.c}.
+thread.  You must implement the functions described below, which are for
+use by test programs.  We have provided skeleton definitions for them in
+@file{threads/thread.c}.  by test programs
 
 @deftypefun int thread_get_nice (void)
 Returns the current thread's @var{nice} value.
@@ -313,7 +320,7 @@ q}:
 @tab @code{n * f}
 
 @item Convert @code{x} to integer (rounding down):
-@tab @code{x * f}
+@tab @code{x / f}
 
 @item Convert @code{x} to integer (rounding to nearest):
 @tab @code{(x + f / 2) / f}