Add test scripts.
[pintos-anon] / grading / threads / review.txt
1 DESIGN [[/40]
2 -------------
3
4  -20 Missing or far too brief DESIGNDOC
5   -2 Troublesome or unexplained dependencies
6   -2 Changing interfaces, each (max -6)
7
8 DESIGNDOC (per problem):
9   -1 Minor details missing
10   -2 Major details missing
11   -5 Totally missing
12
13 Problem 1-1: Alarm Clock
14   -1 Uses lock/interrupt disabling without justifying
15   -1 Uses a lock inside of CallBack
16   -3 Busy waiting
17   -2 Wakes up too often, e.g. by using semaphores with negative values
18   -1 Traverses entire list of sleeping threads every tick
19   -1 Put threads to sleep directly
20   -1 Doesn't protect data structure in CallBack
21   -1 Doesn't protect data structure in WaitUntil
22   -3 Bad design
23
24 Problem 1-2: Join
25   -3 Busy waiting in thread finish when waiting on the parent's join
26   -3 A static list of all parent-child pairs is extremely wasteful
27   -3 Obviously wasteful with memory (not deleting threads)
28   -2 Finished parent deletes children which may still be running
29   -1 Enable/disable interrupts or put thread to sleep directly
30   -2 Joinable child lets its Thread object be deleted before parent dies
31   -1 Race condition between join and thread exit
32
33 Problem 1-3: Priority Scheduler
34   -3 Doesn't use sorted queue scheduler, and don't justify why they didn't
35   -1 Semaphores don't wake highest-priority thread first
36   -1 Condition variables don't wake highest-priority thread first
37   -1 Should use sorted queue in semaphores, unless explained in DESIGNDOC
38   -1 Should use sorted queue in conditions, unless explained in DESIGNDOC
39   -2 Yield should pick the highest-priority thread (including current)
40   -3 Bad design
41   +2 Used a heap or other advanced priority queue for ready_list
42
43 Problem 1-4: Advanced Scheduler
44   -2 Isn't table-driven
45   -5 Bad design
46
47
48 TESTCASES [[/10]
49 ----------------
50   -2 Problem 1-1: no test cases/no test output/no description in TESTCASES
51   -1 Problem 1-1: not enough testing/inconclusive test output
52   -2 Problem 1-2: no test cases/no test output/no description in TESTCASES
53   -1 Problem 1-2: not enough testing/inconclusive test output
54   -2 Problem 1-3: no test cases/no test output/no description in TESTCASES
55   -1 Problem 1-3: not enough testing/inconclusive test output
56   -2 Problem 1-4: no test cases/no test output/no description in TESTCASES
57   -1 Problem 1-4: not enough testing/inconclusive test output
58
59
60 STYLE [[/10]]
61 -------------
62 Insert any comments here
63
64
65 COMMENTS
66 --------