1 / 12

COMS 4118 (Operating Systems I)

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

Download Presentation

COMS 4118 (Operating Systems I)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMS 4118 (Operating Systems I) Henning Schulzrinne Dept. of Computer Science Columbia University http://www.cs.columbia.edu/~hgs

  2. 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

  3. Structure of course • Lectures - book material + background + discussion • Homework assignments • Midterm, final

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. Linux (kernel) projects subject to change… • Shell • Linux system call • CPU scheduling for multimedia • Disk paging • Network monitoring

  11. 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”

  12. 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

More Related