CS 2510: COMPUTER OPERATING SYSTEMS FALL 2012 Syllabus Course Website Instructor http://www.cs.pitt.edu/ jacklange/teaching/cs2510-f12 Jack Lange, Assistant Professor Office: Sennott Square, Office #5407 Phone: 412-648-0168 Email: jacklange@cs.pitt.edu Office Hours: Mon. 2-4PM Teaching Assistant Brian Kocoloski Office: Email: briankoco@cs.pitt.edu Office Hours: TBA Location and Time Tues./Thurs., 2:30-3:45PM Sennott Square, Room 5313 Prerequisites Required Required Highly Recommended Highly Recommended Knowledge of C and C++ Unix development experience (gcc, gdb, make, etc) Unix systems programming experience CS1550 Textbooks There are no required textbooks for this course. Instead we will be reading seminal research papers in the field. Readings will be assigned weekly, and students will be required to submit a paper review before each class.
Recommended reference books (These will be very helpful for the projects) Overview Jonathan Corbet, Alessandro Rubini, and Greg Koah-Hartman Linux Device Drivers, 3rd Edition O Reilly, 2005 Available for free as downloadable PDFs Daniel P. Bovet and Marco Cesati Understanding the Linux Kernel, 3rd edition O Reilly, 2005 Richard Stevens Advanced Programming in the Unix Environment Addison-Wesley, 1992 A basic book for anyone writing programs that run under Unix Maurice J. Bach The design of the UNIX Operating System Prentice Hall, 1986 CS2510 is a graduate level course covering the design and implementation of past, current and future operating systems. Throughout the course we will examine a wide range of OS architectures and features, as well as explore a variety of OS research topics. This class will consist of four main components: Lectures covering fundamental OS topics Reading, reviewing, and presenting research papers Completing 4 assigned projects throughout the course A cumulative final covering all material covered Lectures will be presented each Tuesday and will introduce and cover basic concepts. Thursdays will consist of student presentations of an assigned research paper. The paper will be first presented to the group by a student and then discussed in a round-table manner. A student assigned to play devil s advocate will help jumpstart the conversation. To ensure lively discussions, you will be responsible for reading and preparing a short (typed) summary of the assigned paper before each class. Summaries will be due by 11:59PM of the previous day so that the staff has time to read them and bring your comments into next class discussion. Each presentation will consist of a formal presentation, and is expected to go into considerable depth by focusing on some aspect of the material and treating it thoroughly. Students must create their own presentation slides and are not allowed to use slides provided by the paper authors. After the presentation, the slides will be posted to the website. Each presentation should last between 30 and 35 minutes, followed by the discussion. Attendance and participation in these discussions is mandatory. For each presentation, every student is required to ask at least 1 relevant question about the paper or presented material.
Projects Over the course of the quarter, you will implement a set of OS functionality in a variety environments. The projects will include implementing synchronization primitives in user level, virtual memory and paging in the Linux kernel, and thread scheduling and synchronization in an educational OS. Each of these projects will be doable inside a standard Linux environment, but project 2 will require root level access. We highly recommend that all students install and configure a virtual machine environment such as VMWare or KVM and install a Fedora 15 environment into it. This approach will make working on the projects much easier. Each project will consist of a code skeleton which you will flesh out to provide the required functionality. Warning: If you do not know how to install and configuring a Linux environment on your own, then you should either drop this course or be prepared to spend a considerable amount of time gaining the necessary background knowledge. 12.5% Project 1 (Synchronization primitives) 12.5% Project 2 (Virtual memory) 12.5% Project 3 (Swapping) 12.5% Project 4 (Scheduling) Reading Papers You will be responsible for reading and preparing a summary of the assigned paper before each class. Your final grade will depend on faithfully submitting summaries for each and every paper before we talk about them in class: this is simple to ensure everybody keeps up with the reading. When reading papers it is normally useful to write down a summary of about a page. Your summary should include at least: Paper title and its author(s). Brief one-line summary. A paragraph of the most important ideas: perhaps a combination of their motivations, observations, interesting parts of the design, or clever parts of their implementation. A paragraph of the largest flaws; maybe an experiment was poorly designed or the main idea had a narrow scope or applicability. Being able to assess weaknesses as well as strengths is an important skill for this course and beyond. A last paragraph where you state the relevance of the ideas today, potential future research suggested by the article, etc. You may find the following brochure useful: Efficient reading of papers in Science and Technology by Michael J. Hanson, 1990, revised 2000 Dylan McNamee. Grading 50% Projects 10% Presentations 10% Paper reviews 30% Final All course work will be completed and evaluated individually. While it is permissible to discuss high level details of the course project, sharing or copying another student s code is prohibited.
Communication Website - Announcements will be made both in class and via the course website. Please check it regularly for clarifications and corrections. Project materials will also be published there. Web address: http://www.cs.pitt.edu/ jacklange/teaching/cs2510-f12 Discussion Group - A google group has been created for class discussions: pitt-cs2510- f12@googlegroups.com. Students will be granted membership via their email address. Web address: http://groups.google.com/group/pitt-cs2510-f12
Schedule Date Lecture Presenter Proj Aug. 28th Class overview and introduction J. Lange Aug. 30th OS Basics J. Lange Reading: The Rise of Worse is Better ; Hints for Computer System Design Sept. 4th OS Basics Cont d J. Lange Proj. 1 out Reading: The Structure of the THE -Multiprogramming System Sept. 6th The Flux OSKit: A Substrate for Kernel and Language Research Sept. 11th ABI, ASM, and Calling conventions J. Lange Sept. 13th FlexSC: Flexible System Call Scheduling with Exception-Less System Calls Sept. 18th Processes and Threads J. Lange Sept. 20th Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism Sept. 25th Synchronization J. Lange Reading: Implementing Lock-Free Queues. Sept. 27th TxLinux: Using and Managing Hardware Transactional Memory in an Operating System Oct. 2nd Virtual Memory J. Lange Proj. 1 in Proj. 2 out Oct. 4th No Class Oct. 9th No class Oct. 11th Practical, transparent operating system support for superpages Oct. 16th Parallel, NUMA, Multicore J. Lange Oct. 18th Helios: Heterogeneous Multiprocessing with Satellite Kernels Oct. 23rd IPC, distributed systems J. Lange Oct. 25th Implementing Remote Procedure Calls Proj. 2 in Proj. 3 out Oct. 30th Fault Tolerance J. Lange Nov. 1st Recovering Device Drivers Nov. 6th File systems J. Lange Design and Implementation of the Sun Network Filesystem Nov. 8th The Design and Implementation of a Log-Structured File System Nov. 13th Security, ACLs, sandboxes, virtualization J. Lange Reading: Formal requirements for virtualizable third generation architectures Nov. 15th Nexus: A New Operating System for Trustworthy Computing Proj. 3 in Proj. 4 out Nov. 20th No class Nov. 22nd No class Nov. 27th Xen and the Art of Virtualization Nov. 29th The Multikernel: A new OS architecture for scalable multicore systems Dec. 4th Dec. 6th K42: Building a Complete Operating System Exokernel: An Operating System Architecture for Application-Level Resource Management Dec. 11th Finding a needle in Haystack: Facebook s photo storage Proj. 4 in Dec. 14th Final Exam Due