January 16, 2007 COMS 4118 (Operating Systems I) Henning Schulzrinne Dept. of Computer Science Columbia University
January 16, 2007 Course mechanics Instructor: –My office hours: Tuesdays, 4-5 pm, 450F CSB or by appointment please contact Rosemary Addarich check MICE for exceptions TA: Zhiyang CaoZhiyang Cao –office hours: Wednesdays, 3-5 pm or by appointment Web page --> basics, assignments – Wiki --> hints, assorted documents Assignment upload, slides and mailing list via Courseworks Will set up bulletin board for discussions
January 16, 2007 Structure of course Lectures - book material + background + discussion Homework assignments Midterm, final
January 16, 2007 Prerequisites CSEE W3827 (Fundamentals of Computer Systems) –understanding of computer system architecture –registers, cache, virtual memory, I/O, DMA, disks, etc. –interrupts –basic knowledge of what assembly language is COMS W3157 or W3101 –understand how to use “make”, C compiler, gdb, … The C programming language –Java is also helpful
January 16, 2007 Course outline & topics Overview and history Computer organization VMWare & Linux kernel tutorial Processes IPC Threads CPU scheduling Synchronization Multi-processor systems Memory management I/O Disks and scheduling File systems Protection & security Networking Distributed systems
January 16, 2007 The deal Your responsibility –you’re all adults –responsible for your own actions and scheduling choices –if you don’t understand something, ask –Please note academic honesty policy: discussion with others is encouraged - study groups, discussion board, etc. zero tolerance for cheating or “outsourcing” homework we’ll clearly identify group work lock your files -- “just looking” is not acceptable Our responsibility –be responsive to your questions –try to fix problems
January 16, 2007 Lectures Slides for each class –derived from book slides, but modified and enhanced Uploaded to Courseworks shortly before class –sometimes updated after class Class is on CVN –on-campus students can watch –after add/drop period
January 16, 2007 Assignments & Grading Grading: –50% assignments –20% midterm (closed book) –30% final (cumulative, closed book) –0% no “extra credit” work –will be curved 6 written assignments (every two weeks) –individually solved alternate with 6 Linux kernel assignments –groups of 3, all with the same score –each participant rates the others; non-contributors will be voted off the island (onto their own island of like-minded “slackers”) Late policy –five late days –late assignments will not be graded, but you can submit partial assignments –at noon on due date
January 16, 2007 Programming assignments All programming assignments must be in C –Java, C++, Fortran, … are not acceptable –unless explicitly noted otherwise If you don’t know C, come back next year Needed for Linux kernel (C) Linux kernel assignments in group –may do small programming assignments individually
January 16, 2007 Linux (kernel) projects Shell Linux system call CPU scheduling for multimedia Disk paging Network monitoring subject to change…
January 16, 2007 Working with kernels Very different from standard applications Part of a very large system (10s MLOC) –side effects can be unpleasant –spend more time reading programs than writing them Debugging kernels –long build - boot - test cycle (--> batch jobs…) –limited debugging (printf) –asynchronous behavior -- hard to provide right stimulus “Heisenbugs”
January 16, 2007 CLIC lab All programs and kernels must boot & run on the CLIC machines –if not, zero credit –but you can develop at home, on your laptop, … You’ll need a CLIC account – You will be assigned a particular CLIC machine for virtual machine use Some CLIC machines are for in-person use; others can only be accessed remotely No food or drink in CLIC –be considerate -- others are trying to concentrate