Patches to make Bochs 2.6.2 work with Pintos
[pintos-anon] / ta-advice / hw4.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 Total deductions (capped at -40): XXX
27
28 PROBLEM 1: INDEX AND EXTENSIBLE FILES
29
30   DOCUMENTATION
31     -20 Grossly inaccurate: documentation has no resemblance to code
32     -10 Important inaccuracies: documentation and code differ significantly
33         [indicate how]
34      -5 Minor inaccuracies: documentation and code differ [indicate how]
35      -5 A1: Missing entirely/missing comments or purpose/too long
36      -1 A1: "start" member retained in inode_disk but not used
37      -2 A1: "unused" array in inode_disk should be used for block pointers
38      -5 A2: Missing/non-responsive/too long/too short
39      -2 A2: Didn't show work or provide enough information to reproduce 
40      -2 A2: Math doesn't add up
41      -3 A2: Incorrect claim to have 128 indirect or doubly indirect blocks
42      -5 A3: Missing/non-responsive/too long/too short
43      -5 A4: Missing/non-responsive/too long/too short
44      -5 A5: Missing/non-responsive/too long/too short
45      +1 A5: Mentioned that locks and semaphores are FIFO ordered.
46      -3 A5: Didn't describe one of two rules needed for fairness
47      -5 A5: Didn't describe either of two rules needed for fairness
48      -2 A5: Use of timer to ensure fairness
49      -2 A5: Claim that "rare" events do not affect fairness
50      -5 A6: Missing/non-responsive/too long/too short
51      -3 A6: Mentioned only one reason
52
53   DESIGN
54     -30 Not implemented
55      -5 Global lock for file extension
56      -5 Check on file length followed by obtaining lock fails to recheck length
57     -15 Reads or writes wait for one another, even when file not being extended
58     
59 Total deductions (capped at -30): XXX
60
61 PROBLEM 2: SUBDIRECTORIES
62
63   DOCUMENTATION
64     -20 Grossly inaccurate: documentation has no resemblance to code
65     -10 Important inaccuracies: documentation and code differ significantly
66         [indicate how]
67      -5 Minor inaccuracies: documentation and code differ [indicate how]
68      -5 B1: Missing entirely/missing comments or purpose/too long
69      -1 B1: Not mentioned how files and directories are distinguished
70      -2 B1: Global list of open directories lacks lock
71      -2 B1: Global list of directories has no way to wait for directory access
72      -5 B2: Missing/non-responsive/too long/too short
73      -5 B3: Missing/non-responsive/too long/too short
74      -5 B4: Missing/non-responsive/too long/too short
75      -5 B5: Missing/non-responsive/too long/too short
76      -3 B5: Claim that extra code is needed to avoid deleting parents of cwds
77      -5 B6: Missing/non-responsive/too long/too short
78      -3 B6: Mentioned only one reason
79
80   DESIGN
81     -30 Not implemented
82     -10 Use of string for current directory is slow, takes a lot of
83         memory, and has undesirable semantics for directory removed
84         and re-created
85      -5 Use of sector number for current directory has bad semantics
86         when a directory's inode is reused later
87     -10 Operations on different directories must wait for one another
88     
89 Total deductions (capped at -30): XXX
90
91 PROBLEM 3: BUFFER CACHE
92
93   DOCUMENTATION
94     -20 Grossly inaccurate: documentation has no resemblance to code
95     -10 Important inaccuracies: documentation and code differ significantly
96         [indicate how]
97      -5 Minor inaccuracies: documentation and code differ [indicate how]
98      -5 C1: Missing entirely/missing comments or purpose/too long
99      -2 C1: Didn't drop inode_disk from struct inode
100      -5 C2: Missing/non-responsive/too long/too short
101      -5 C3: Missing/non-responsive/too long/too short
102      -5 C4: Missing/non-responsive/too long/too short
103      -5 C5: Missing/non-responsive/too long/too short
104      -5 C6: Missing/non-responsive/too long/too short
105      -2 C6: Omitted one of three workloads
106      -4 C6: Omitted two of three workloads
107
108   DESIGN
109     -30 Not implemented
110      -3 Modifies all cache entries on block access or eviction
111     -10 Metadata are preferred over data to the extent that the cache
112         will contain only metadata in many cases
113      -5 Busy waits in read-ahead
114      -5 Creates new thread on most reads or on every read
115      -5 In some cases operations on cached blocks may have to wait for
116         I/O of unrelated blocks to complete
117         
118 Total deductions (capped at -30): XXX