Use runtime options instead of conditional compilation for MLFQS,
[pintos-anon] / TODO
diff --git a/TODO b/TODO
index 711a4ef3264763f060ab48f6ba2b4eac1e1d4528..151b6763f94f7a470b35b5442ecfbb6cdc0c2ca2 100644 (file)
--- a/TODO
+++ b/TODO
@@ -2,11 +2,14 @@
 
 * The tests in tests/ don't apply the grading patches.
 
-* We need better example programs.
+* We need better and more example programs.
 
-* Threads:
+  - Need an mmap example program as a replacement for the crappy mmap FAQ
+    question.
+
+  - How about `diff' and `cmp' programs?
 
-  - join-invalid doesn't compile if tid_t is not scalar type.
+* Threads:
 
   - mlfqs tests suck.  They aren't even correct, e.g. the amarv
     submission from win0405 is graded incorrectly.
     project 3 and in real OSes.  Also revise the grading criteria to
     match.
 
-  - Move `join' implementation here, from `threads' project, to help
-    normalize the project difficulties.
-
-  - The semantics of the join system call should change so that it
-    only returns the exit code once.
-
   - Mark read-only pages as actually read-only in the page table.  Or,
     since this was consistently rated as the easiest project by the
     students, require them to do it.
     Alternately we could just remove the synchronization on pid
     selection and check that students fix it.
 
+* VM project:
+
+  - Discuss the perils of mixing dirty bits between kernel and user virtual
+    memory.
+
+  - Sample solution.
+
+  - Update grading/vm to reflect new mmap, munmap forms.
+
 * Filesys project:
 
   - Increase maximum disk size from 8 MB to something that actually
 
     Alternatively, shrink the inode size.
 
-  - Add mkdir and ls example user programs.
-
   - Add option to disable buffer cache.
 
-  - Get rid of "dump" commands--they're not really useful.
+  - Sample solution.
+
+  - Need a better way to measure performance improvement of buffer
+    cache.  Some students reported that their system was slower with
+    cache--likely, Bochs doesn't simulate a disk with a realistic
+    speed.
+
+  - Clarify effect of remove(cwd).
 
 * Documentation:
 
 
     . Low-level x86 stuff, like paged page tables.
 
+    . Specifics on how to implement sbrk, malloc.
+
     . Other good ideas.
 
-  - mmap/munmap should use segment IDs like Nachos.  Too hard
-    otherwise.
+    . opendir/readdir/closedir
+
+    . everything needed for getcwd()
 
   - Add src/testcases/vm, src/testcases/filesys and make it clear to use
     them?
     too long (especially when SHOW_PROGRESS is turned on) and doesn't
     show significant improvement.
 
+* Code:
+
+  - Make threads test use a program and arguments like the other
+    projects.
+
+  - Revise command-line arguments for sensibility instead of for
+    Nachos compatibility.
+
+  - Get rid of all compile-time flags, e.g. MLFQS should be a runtime
+    command-line option.
+
+  - Need an optimization barrier and an explanation of it in the
+    documentation.
+
+  - Need to check the wait system call more thoroughly.