projects
/
pintos-anon
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Work on projects.
[pintos-anon]
/
doc
/
threads.texi
diff --git
a/doc/threads.texi
b/doc/threads.texi
index c604b9635127543cb040df3905c2bca6e64f5160..4341cac9dcb4aa9213561d79e6dbbf6c2a565891 100644
(file)
--- a/
doc/threads.texi
+++ b/
doc/threads.texi
@@
-32,8
+32,10
@@
primitives (semaphores, locks, and condition variables).
@c FIXME: base system doesn't do anything. Debugger sucks.
However, there's a lot of magic going on in some of this code, so you
should compile and run the base system to see a simple test of the
@c FIXME: base system doesn't do anything. Debugger sucks.
However, there's a lot of magic going on in some of this code, so you
should compile and run the base system to see a simple test of the
-code. You should trace the execution using your favorite debugger to
-get a sense for what's going on.
+code. You should read through the source code by hand to see what's
+going on. If you like, you can add calls to @code{printf()} almost
+anywhere, then recompile and run to see what happens and in what
+order.
When a thread is created, you are creating a new context to be
scheduled. You provide a function to be run in this context as an
When a thread is created, you are creating a new context to be
scheduled. You provide a function to be run in this context as an
@@
-52,8
+54,8
@@
synchronization primitives are used to force context switches when one
thread needs to wait for another thread to do something.
The exact mechanics of a context switch are pretty gruesome and have
thread needs to wait for another thread to do something.
The exact mechanics of a context switch are pretty gruesome and have
-been provided for you in @file{switch.S} (this is 80@var{x}86
-assembly; don't worry about understanding it). It involves saving the
+been provided for you in @file{
threads/
switch.S} (this is 80@var{x}86
+assembly; don't worry about understanding it).
It involves saving the
state of the currently running thread and restoring the state of the
thread we're switching to.
@c FIXME
state of the currently running thread and restoring the state of the
thread we're switching to.
@c FIXME
@@
-263,9
+265,9
@@
However, you do need to implement priority scheduling in all cases.
@section Problem 1-4 Advanced Scheduler
Implement Solaris's multilevel feedback queue scheduler (MFQS), as
@section Problem 1-4 Advanced Scheduler
Implement Solaris's multilevel feedback queue scheduler (MFQS), as
-explained
below, to reduce the average response time for running jobs
-on your system.
-@c FIXME need link
+explained
in this @uref{mlfqs.pdf, , PDF} or @uref{mlfqs.ps, ,
+PostScript} file, to reduce the average response time for running jobs
+on your system.
Demonstrate that your scheduling algorithm reduces response time
relative to the original Pintos scheduling algorithm (round robin) for
Demonstrate that your scheduling algorithm reduces response time
relative to the original Pintos scheduling algorithm (round robin) for