-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]]
-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
-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