e16216c677937047d0555223aa9e435e8884a595
[pintos-anon] / TODO
1 -*- text -*-
2
3 * Test pintos with GSX.
4
5 * Need targets for checking single tests or single subdirs
6
7   - `make check' should say how to get more information
8
9   - `make recheck', `make clean-check'
10
11 * Need to put time limits on tests.
12
13 * Add a way for students to prints messages ignored by the autograder.
14
15   - Ignore text between /* and */.
16
17   - Allow for a comment on `exit' lines?
18
19     . Get rid of LOAD_ERROR() macro by calling thread_exit() directly.
20
21 * Improve automatic interpretation of exception messages.
22
23 * We need better and more example programs.
24
25   - Need an mmap example program as a replacement for the crappy mmap FAQ
26     question.
27
28   - How about `diff' and `cmp' programs?
29
30 * Threads:
31
32   - mlfqs tests suck.  They aren't even correct, e.g. the amarv
33     submission from win0405 is graded incorrectly.
34
35 * Userprog project:
36
37   - Don't emphasize that stuff needs to be copied from user space to
38     kernel space.  Instead, emphasize validation and suggest that
39     copying is a common solution and that it will be necessary in
40     project 3 and in real OSes.  Also revise the grading criteria to
41     match.
42
43   - Mark read-only pages as actually read-only in the page table.  Or,
44     since this was consistently rated as the easiest project by the
45     students, require them to do it.
46
47   - Don't provide per-process pagedir implementation but only
48     single-process implementation and require students to implement
49     the separation?  This project was rated as the easiest after all.
50     Alternately we could just remove the synchronization on pid
51     selection and check that students fix it.
52
53 * VM project:
54
55   - Discuss the perils of mixing dirty bits between kernel and user virtual
56     memory.
57
58 * Filesys project:
59
60   - Increase maximum disk size from 8 MB to something that actually
61     requires doubly indirect nodes.  There is a negative pressure here
62     from the bitmap object--perhaps we need a specialized bitmap that
63     doesn't have to be all in-memory at once.
64
65     Alternatively, shrink the inode size.
66
67   - Add option to disable buffer cache.
68
69   - Need a better way to measure performance improvement of buffer
70     cache.  Some students reported that their system was slower with
71     cache--likely, Bochs doesn't simulate a disk with a realistic
72     speed.
73
74   - Clarify effect of remove(cwd).
75
76 * Documentation:
77
78   - Finish writing tour.
79
80   - Add "Digging Deeper" sections that describe the nitty-gritty x86
81     details for the benefit of those interested.
82
83   - Add explanations of what "real" OSes do to give students some
84     perspective.
85
86   - GNU make 3.80 or later is required.
87
88 * Assignments:
89
90   - Add extra credit:
91
92     . Low-level x86 stuff, like paged page tables.
93
94     . Specifics on how to implement sbrk, malloc.
95
96     . Other good ideas.
97
98     . opendir/readdir/closedir
99
100     . everything needed for getcwd()
101
102 * Tests:
103
104   - The threads, userprog, vm test source files could use
105     factorization and cleanup along the lines of fslib in the filesys
106     tests.
107
108   - The p1-4.c testcase needs significant tuning.  Currently it takes
109     too long (especially when SHOW_PROGRESS is turned on) and doesn't
110     show significant improvement.
111
112 * Code:
113
114   - Need an optimization barrier and an explanation of it in the
115     documentation.
116
117   - Need to check the wait system call more thoroughly.