120 likes | 288 Views
COMS 4118 (Operating Systems I). Henning Schulzrinne Dept. of Computer Science Columbia University http://www.cs.columbia.edu/~hgs. Course mechanics. Instructor: hgs+4118@cs.columbia.edu My office hours: Tuesdays, 4-5 pm, 450F CSB or by appointment
E N D
COMS 4118 (Operating Systems I) Henning Schulzrinne Dept. of Computer Science Columbia University http://www.cs.columbia.edu/~hgs
Course mechanics • Instructor: hgs+4118@cs.columbia.edu • My office hours: Tuesdays, 4-5 pm, 450F CSB or by appointment • please contact Rosemary Addarich (rosemary@cs.columbia.edu) • check MICE for exceptions • TA: Zhiyang Cao • office hours: Wednesdays, 3-5 pm or by appointment • Web page --> basics, assignments • http://www.cs.columbia.edu/~hgs/teaching/os • Wiki --> hints, assorted documents • Assignment upload, slides and mailing list via Courseworks • Will set up bulletin board for discussions
Structure of course • Lectures - book material + background + discussion • Homework assignments • Midterm, final
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
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 Course outline & topics
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: http://www.cs.columbia.edu/education/honesty • 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
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
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
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
Linux (kernel) projects subject to change… • Shell • Linux system call • CPU scheduling for multimedia • Disk paging • Network monitoring
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”
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 • https://www.columbia.edu/~crf/accounts/ • 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