Move problem 1-2 (join) into project 2 as the "wait" system call.
[pintos-anon] / grading / threads / review.txt
index 08585b56f60ccd268bec98b1088b90cf81c0d723..739fbac34c1421c73d070eaf66786dc814172f75 100644 (file)
@@ -6,8 +6,6 @@ TESTCASES [[/10]]
   -1 Problem 1-2: not enough testing/inconclusive test output
   -2 Problem 1-3: no test cases/no test output/no description in TESTCASES
   -1 Problem 1-3: not enough testing/inconclusive test output
-  -2 Problem 1-4: no test cases/no test output/no description in TESTCASES
-  -1 Problem 1-4: not enough testing/inconclusive test output
 
 
 DESIGN [[/40]]
@@ -35,16 +33,7 @@ Problem 1-1: Alarm Clock
   -1 Doesn't protect data structure in timer_sleep
   -3 Bad design
 
-Problem 1-2: Join
-  -3 Busy waiting in thread finish when waiting on the parent's join
-  -3 A static list of all parent-child pairs is extremely wasteful
-  -3 Obviously wasteful with memory (not deleting threads)
-  -2 Finished parent deletes children which may still be running
-  -1 Enable/disable interrupts
-  -2 Joinable child lets its struct thread be deleted before parent dies
-  -1 Race condition between join and thread exit
-
-Problem 1-3: Priority Scheduler
+Problem 1-2: Priority Scheduler
   -3 Doesn't use sorted queue scheduler, and don't justify why they didn't
   -2 sema_up() doesn't pick highest-priority waiting thread
   -1 Should use sorted queue in semaphores, unless explained in DESIGNDOC
@@ -54,7 +43,7 @@ Problem 1-3: Priority Scheduler
   -3 Bad design
   +2 Used a heap or other advanced priority queue for ready_list
 
-Problem 1-4: Advanced Scheduler
+Problem 1-3: Advanced Scheduler
   -2 Isn't table-driven
   -5 Bad design