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