Add TODOs.
[pintos-anon] / TODO
diff --git a/TODO b/TODO
index 8aaf1377022dc3b4aa5ee251768ee8723ef40585..d4afd5c0ad8b2782c3403364270b50bdc385c903 100644 (file)
--- a/TODO
+++ b/TODO
@@ -2,6 +2,16 @@
 
 * The tests in tests/ don't apply the grading patches.
 
 
 * The tests in tests/ don't apply the grading patches.
 
+* We need better and more example programs.
+
+  - Need an mmap example program as a replacement for the crappy mmap FAQ
+    question.
+
+  - How about `diff' and `cmp' programs?
+
+* Make it clear that the students own their code, because there was some
+  confusion on that point.
+
 * Threads:
 
   - join-invalid doesn't compile if tid_t is not scalar type.
 * Threads:
 
   - join-invalid doesn't compile if tid_t is not scalar type.
     Alternately we could just remove the synchronization on pid
     selection and check that students fix 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
+    requires doubly indirect nodes.  There is a negative pressure here
+    from the bitmap object--perhaps we need a specialized bitmap that
+    doesn't have to be all in-memory at once.
+
+    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:
 
   - Finish writing tour.
 * Documentation:
 
   - Finish writing tour.
 
     . Low-level x86 stuff, like paged page tables.
 
 
     . Low-level x86 stuff, like paged page tables.
 
+    . Specifics on how to implement sbrk, malloc.
+
     . Other good ideas.
 
     . 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?
 
   - 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.
 
     too long (especially when SHOW_PROGRESS is turned on) and doesn't
     show significant improvement.
 
+* Code:
+
+  - Rewrite quick_sort() to use heap sort, for O(1) stack usage.
+
+  - Rewrite list_sort() to use merge sort, for O(1) heap usage.
+
+  - Make list_elem and hash_elem a struct, by encapsulating a struct
+    list_elem inside a struct hash_elem as a member.