X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fthreads.texi;h=1905707ffa09a631d2a7114febf6472438b52d93;hb=18654de05aa2c2fa2cc63e2c9c30b9dc536a33d7;hp=7d7526c908e055364ac40110bf8e6f8cfac58832;hpb=29f8918b7dd6764dd6ddb17098e9a4ecaeeea37e;p=pintos-anon diff --git a/doc/threads.texi b/doc/threads.texi index 7d7526c..1905707 100644 --- a/doc/threads.texi +++ b/doc/threads.texi @@ -157,9 +157,9 @@ the kernel. Basic interrupt handling and functions for turning interrupts on and off. -@item intr-stubs.pl +@item intr-stubs.S @itemx intr-stubs.h -A Perl program that outputs assembly for low-level interrupt handling. +Assembly code for low-level interrupt handling. @item synch.c @itemx synch.h @@ -487,7 +487,10 @@ exited at the time of the later joins. Thus, joins on T after the first should return immediately. Calling @func{thread_join} on an thread that is not the caller's -child should cause the caller to return immediately. +child should cause the caller to return immediately. For this purpose, +children are not inherited, that is, if @var{A} has child @var{B} and +@var{B} has child @var{C}, then @var{A} always returns immediately +should it try to join @var{C}, even if @var{B} is dead. Consider all the ways a join can occur: nested joins (@var{A} joins @var{B}, then @var{B} joins @var{C}), multiple joins (@var{A} joins @@ -495,15 +498,10 @@ Consider all the ways a join can occur: nested joins (@var{A} joins if @func{thread_join} is called on a thread that has not yet been scheduled for the first time? You should handle all of these cases. Write test code that demonstrates the cases your join works for. -Don't overdo the output volume, please! Be careful to program this function correctly. You will need its functionality for project 2. -Once you've implemented @func{thread_join}, define -@code{THREAD_JOIN_IMPLEMENTED} in @file{constants.h}. -@xref{Conditional Compilation}, for more information. - @node Problem 1-3 Priority Scheduling @section Problem 1-3: Priority Scheduling @@ -557,10 +555,6 @@ implement this fix for semaphores, condition variables, or joins, although you are welcome to do so. 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