7 -20 Egregious violation of style versus design document example
8 -10 Numerous excessively long lines (> 79 characters)
9 -10 Numerous capitalization, punctuation, spelling, or grammar errors
12 -10 Failure to check return value of malloc()
13 -10 Use of ASSERT to check something that can actually fail, e.g. malloc()
16 -10 Inconsistent or bad coding style: no indentation, cramming
17 many statements into one line, other issues at TA's discretion
18 -10 Numerous very long source code lines (> 100 characters)
19 -10 Commented-out or #if'd out code makes real code hard to read
20 -10 Many missing comments on structure, structure members,
21 global or static variables, or function definitions
22 -10 Function(s) should be decomposed for clarity [indicate function]
23 -10 Cut-and-pasted code should be made into function [indicate where]
24 -10 Uninformative or deceptive identifiers
26 Total deductions (capped at -40): XXX
28 PROBLEM 1: PAGE TABLE MANAGEMENT
31 -16 Grossly inaccurate: documentation has no resemblance to code
32 -8 Important inaccuracies: documentation and code differ significantly
34 -4 Minor inaccuracies: documentation and code differ [indicate how]
35 -4 A1: Missing entirely/missing comments or purpose/too long
36 -4 A2: Missing/non-responsive/too long/too short
37 -4 A3: Missing/non-responsive/too long/too short
38 -4 A3: Sharing implemented, but no explanation of how accessed
39 and dirty bits are coordinated
40 -4 A3: Sharing not implemented, but explanation states or implies
41 that a page can have multiple aliases
42 -4 A4: Missing/non-responsive/too long/too short
43 -4 A5: Missing/non-responsive/too long/too short
47 -10 Page dirty status must be determined accurately, not approximately
49 Total deductions (capped at -25): XXX
51 PROBLEM 2: PAGING TO AND FROM DISK
54 -30 Grossly inaccurate: documentation has no resemblance to code
55 -15 Important inaccuracies: documentation and code differ significantly
57 -8 Minor inaccuracies: documentation and code differ [indicate how]
58 -5 B1: Missing entirely/missing comments or purpose/too long
59 -5 B2: Missing/non-responsive/too long/too short
60 -5 B3: Missing/non-responsive/too long/too short
61 -5 B4: Missing/non-responsive/too long/too short
62 -5 B4: Heuristic does not make sense
63 -2 B4: Claim that "struct intr_frame" is on user stack
64 -5 B5: Missing/non-responsive/too long/too short
65 -5 B5: Claim that deadlock is "rare" or has a "short" window
66 -5 B6: Missing/non-responsive/too long/too short
67 -3 B6: Didn't answer first part of question
68 -3 B6: Didn't answer second part of question
69 -3 B5: Disables interrupts
70 -5 B7: Missing/non-responsive/too long/too short
71 -5 B8: Missing/non-responsive/too long/too short
72 -3 B8: When pre-locking of pages is used, no discussion of
74 -3 B8: When global eviction lock is used, no discussion of
75 how pages are brought into main memory
76 -5 B9: Missing/non-responsive/too long/too short
80 -5 Clock algorithm implementation literally uses a timer
81 -10 Clock algorithm implementation resets dirty bits
82 -5 Stack fault heuristic allows more than 32 bytes below stack pointer
83 -3 Stack limit is smaller than 1 MB
85 Total deductions (capped at -45): XXX
87 PROBLEM 3: MEMORY-MAPPED FILES
90 -12 Grossly inaccurate: documentation has no resemblance to code
91 -6 Important inaccuracies: documentation and code differ significantly
93 -3 Minor inaccuracies: documentation and code differ [indicate how]
94 -3 C1: Missing entirely/missing comments or purpose/too long
95 -3 C2: Missing/non-responsive/too long/too short
96 -3 C3: Missing/non-responsive/too long/too short
97 -3 C3: No mention of stack expansion
98 -2 C3: Claim that memory mappings in different processes can "overlap"
99 -3 C4: Missing/non-responsive/too long/too short
103 -5 Pre-reserves or permanently assigning file pages to frames
104 -5 Pre-reserves or permanently assigning file pages to swap slots
105 -5 Global counter for mapid_t lacks synchronization
106 -5 Global table of file mappings lacks synchronization
107 -5 Global table allows multiple processes to access same file mapping
108 -5 Superfluous locking on per-thread data structure [which]
110 Total deductions (capped at -20): XXX