Add -MF to GCC invocation to make ccache happy on Fedora Core 6.
[pintos-anon] / ta-advice / hw3.txt
1 HW3 DESIGN SUMMARY
2 ==================
3
4 OVERALL
5
6   DOCUMENTATION
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
10
11   DESIGN
12     -10 Failure to check return value of malloc()
13     -10 Use of ASSERT to check something that can actually fail, e.g. malloc()
14
15   CODING STYLE
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
25
26   EXTRA CREDIT
27      +5 Sharing
28
29 Subtotal: /10 (not capped)
30
31 PROBLEM 1: PAGE TABLE MANAGEMENT
32
33   DOCUMENTATION
34     -25 Grossly inaccurate: documentation has no resemblance to code
35     -13 Important inaccuracies: documentation and code differ significantly
36         [indicate how]
37      -5 Minor inaccuracies: documentation and code differ [indicate how]
38      -5 A1: Missing entirely/missing comments or purpose/too long
39      -5 A2: Missing/non-responsive/too long/too short
40      -5 A3: Missing/non-responsive/too long/too short
41      -5 A3: Sharing implemented, but no explanation of how accessed
42         and dirty bits are coordinated
43      -5 A3: Sharing not implemented, but explanation states or implies
44         that a page can have multiple aliases
45      -5 A4: Missing/non-responsive/too long/too short
46      -5 A5: Missing/non-responsive/too long/too short
47
48   DESIGN
49     -30 Not implemented
50     -10 Page dirty status must be determined accurately, not approximately
51
52 Subtotal: /25 (capped at 0)
53
54 PROBLEM 2: PAGING TO AND FROM DISK
55
56   DOCUMENTATION
57     -45 Grossly inaccurate: documentation has no resemblance to code
58     -23 Important inaccuracies: documentation and code differ significantly
59         [indicate how]
60      -5 Minor inaccuracies: documentation and code differ [indicate how]
61      -5 B1: Missing entirely/missing comments or purpose/too long
62      -5 B2: Missing/non-responsive/too long/too short
63      -5 B3: Missing/non-responsive/too long/too short
64      -5 B4: Missing/non-responsive/too long/too short
65      -5 B4: Heuristic does not make sense
66      -2 B4: Claim that "struct intr_frame" is on user stack
67      -5 B5: Missing/non-responsive/too long/too short
68      -5 B5: Claim that deadlock is "rare" or has a "short" window
69      -5 B6: Missing/non-responsive/too long/too short
70      -3 B6: Didn't answer first part of question
71      -3 B6: Didn't answer second part of question
72      -3 B5: Disables interrupts
73      -5 B7: Missing/non-responsive/too long/too short
74      -5 B8: Missing/non-responsive/too long/too short
75      -3 B8: When pre-locking of pages is used, no discussion of
76         deadlock prevention
77      -3 B8: When global eviction lock is used, no discussion of
78         how pages are brought into main memory
79      -5 B9: Missing/non-responsive/too long/too short
80
81   DESIGN
82     -45 Not implemented
83      -5 Clock algorithm implementation literally uses a timer
84     -10 Clock algorithm implementation resets dirty bits
85      -5 Stack fault heuristic allows more than 32 bytes below stack pointer
86      -3 Stack limit is smaller than 1 MB
87
88 Subtotal: /45 (capped at 0)
89
90 PROBLEM 3: MEMORY-MAPPED FILES
91
92   DOCUMENTATION
93     -20 Grossly inaccurate: documentation has no resemblance to code
94     -10 Important inaccuracies: documentation and code differ significantly
95         [indicate how]
96      -5 Minor inaccuracies: documentation and code differ [indicate how]
97      -5 C1: Missing entirely/missing comments or purpose/too long
98      -5 C2: Missing/non-responsive/too long/too short
99      -5 C3: Missing/non-responsive/too long/too short
100      -2 C3: No mention of stack expansion
101      -2 C3: Claim that memory mappings in different processes can "overlap"
102      -5 C4: Missing/non-responsive/too long/too short
103
104   DESIGN
105     -20 Not implemented
106      -5 Pre-reserves or permanently assigning file pages to frames
107      -5 Pre-reserves or permanently assigning file pages to swap slots
108      -5 Global counter for mapid_t lacks synchronization
109      -5 Global table of file mappings lacks synchronization
110      -5 Global table allows multiple processes to access same file mapping
111      -5 Superfluous locking on per-thread data structure [which]
112
113 Subtotal: /20 (capped at 0)