X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fthreads.texi;h=fe54d77e82fd53d14c89a0ccef4b88fee8503c29;hb=4d4f7cdae7c29fc7dfcecc16c6a683dd512532cf;hp=0bc1534eb9c207e8166da68c8da37d2bc288a405;hpb=1c9362e5a55a4e1778f0e3bd81518ca6b05936cf;p=pintos-anon diff --git a/doc/threads.texi b/doc/threads.texi index 0bc1534..fe54d77 100644 --- a/doc/threads.texi +++ b/doc/threads.texi @@ -185,8 +185,8 @@ project 3. For now, you can ignore it. @item flags.h Macros that define a few bits in the 80@var{x}86 ``flags'' register. -Probably of no interest. See @bibref{IA32-v1}, section 3.4.3, for more -information. +Probably of no interest. See @bibref{IA32-v1}, section 3.4.3, ``EFLAGS +Register,'' for more information. @end table @menu @@ -511,7 +511,8 @@ must be active, but we must be able to choose the 4.4@acronym{BSD} scheduler with the @option{-mlfqs} kernel option. Passing this option sets @code{enable_mlfqs}, declared in @file{threads/init.h}, to -true. +true when the options are parsed by @func{parse_options}, which happens +midway through @func{main}. When the 4.4@acronym{BSD} scheduler is enabled, threads no longer directly control their own priorities. The @var{priority} argument to @@ -531,6 +532,12 @@ Here's a summary of our reference solution, produced by the @command{diffstat} program. The final row gives total lines inserted and deleted; a changed line counts as both an insertion and a deletion. +The reference solution represents just one possible solution. Many +other solutions are also possible and many of those differ greatly from +the reference solution. Some excellent solutions may not modify all the +files modified by the reference solution, and some may modify files not +modified by the reference solution. + @verbatim devices/timer.c | 42 +++++- threads/fixed-point.h | 120 ++++++++++++++++++ @@ -540,6 +547,8 @@ and deleted; a changed line counts as both an insertion and a deletion. 5 files changed, 440 insertions(+), 29 deletions(-) @end verbatim +@file{fixed-point.h} is a new file added by the reference solution. + @item How do I update the @file{Makefile}s when I add a new source file? @anchor{Adding Source Files} @@ -675,8 +684,8 @@ If multiple threads have the same highest priority, Priority donation only changes the priority of the donee thread. The donor thread's priority is unchanged. -Priority donation is not additive: if thread @var{A} (with priority 5) donates -to thread @var{B} (with priority 3), then @var{B}'s new priority is 5, not 8. +Priority donation is not additive: if thread @var{A} (with priority 3) donates +to thread @var{B} (with priority 5), then @var{B}'s new priority is 3, not 8. @item Can a thread's priority change while it is on the ready queue? @@ -721,6 +730,8 @@ scheduler at the same time. @item Can I use one queue instead of 64 queues? Yes, that's fine. It's easiest to describe the algorithm in terms of 64 -separate queues, but that may not be the best implementation. If you -use a single queue, it should probably be sorted. +separate queues, but that doesn't mean you have to implement it that +way. + +If you use a single queue, it should probably be sorted. @end table