X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=grading%2Fthreads%2Freview.txt;h=739fbac34c1421c73d070eaf66786dc814172f75;hb=ebb13d4d5ac786a976293136dc5258db2f189186;hp=62c5d81573f27106a73849f8265f599cdbb2ad4b;hpb=1fcf0ae1568b7a74388ba1083865b403f378361d;p=pintos-anon diff --git a/grading/threads/review.txt b/grading/threads/review.txt index 62c5d81..739fbac 100644 --- a/grading/threads/review.txt +++ b/grading/threads/review.txt @@ -6,15 +6,12 @@ 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]] -------------- -20 Missing or far too brief DESIGNDOC - -2 Troublesome or unexplained dependencies -2 Changing interfaces, each (max -6) DESIGNDOC (per problem): @@ -36,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 @@ -55,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