Thu May 10 17:24:50 PDT 2001 current status: Right now we have vmips, partial dynamic recompiling program, not as fast as spim. dynamic recompilation - will be working by the 17th. (galen) must have: curriculum (reading, lecture, projects, homework assignements), kernel, lecture notes, simulator devices (need devices i.e. virtual disk), simulator optimization. we want a beta package by the start of the fall semester (tenatively) Galen is solving the problem is that nachos is not an operating system, that thing that galen is doing is an optimization on top of the existing vmips; since vmips right now isn't fast enough. He is writing a patch for vmips that will have mips code translated to x86 so that vmips can just run the x86 code over the real processor. Galen will do his stuff for sparc code as well. (correct me if i'm wrong.) Thoughts on: ? code reading. Is it too much to pull source from various oses and expect students to adjust to different conventions between *NIX, etc? suggestion: If we want them to read code, they should read code from our kernel (simpler) Goal: meeting date of with adj: tentatively the 21st looks good (which is what I mailed adj@cs about. Have not received any return mail on this). ][e will find out about his schedule but 21st looks good for all involved right now. (mail me if otherwise) Definition of course: What we'd like is for 162 to be the FINAL capstone course - the culmination of your cs education. NO DUMBING DOWN. You work hard in this course, but you learn a lot. According to the catalog it is supposed to be a senior level design course. Curriculum (topics we'd like to cover for the course): synchronization - userland - kernel concurrency - implementation Filesystems - files, dirs - layout - consistency - journaling - softupdates - phase-tree - ACL vs Unix - Extended Attributes vs FlatFiles devices - dma - interrupts - hotpluggable devices VM - concept - page policies - mmap - contention Scheduling - FIFO, RR, Lottery - context switching - multiproc - Real Time requirements Other Views - mach - exokernel - Real Time - Eros Net - NFS, AFS, XFS why distributed state is hard. Lectures Schedule Proposal up to the first midterm: Lecture 1: 1. welcome (10 mins) 2. Overview of OSes (30 mins) 3. Concurrentcy to mutexes Homework 1 "Hello World kernel" - compilation of our pkg, cvs, make the modify source in a trivial way Lecture 2: 1. more concurrency - spin locks - semaphores - condition variables Lecture 3: 1. Yet More Concurrency 2. Scheduling - context switching - FIFO Hw 1 due by lec 4 Lecture 4: ' 1. More Scheduling RR Lottery, - (extra for experts: deadlock detection) - multicpu - why not to use threads/ os2/ context switch overhead HW: lottery scheduler Lecture 5: 1. Devices - abstracting the hardware - interfaces to devices - polling vs. interrupts - hot plugging Lec 6&7: 1. User Space - Abstracting away the machine - Not forcing cooperation - Systemcalls - cursory notion of VM - userland threading - (FreeBSD's threading hack which isn't what you want) - mach/Linux threading (does not scale too well) - Solaris threads (the right way) Hw serial devices driver (write someting like ioctl) Lec 8: (<- "throwaway culture day topic right b4 midterm") (pick a new bus and explain) 1. USB 2. firewire Lec 9 - Midterm We want to have 2 projects, each taking 3 weeks. VM, and Filesystems. we could have harvey look over this when we're done for input.