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