CS550 - Operating Systems - Fall 2021
Prof. Kartik Gopalan
- Course webpage: https://oscourse.github.io
- Lecture hours: Mon and Wed 4:40PM to 6:05PM US ET
- Lecture location:
- Lectures will be recorded, posted online on Panopto, and linked from this website.
- All class materials will be available on this website.
Instructor: Prof. Kartik Gopalan.
- Roja Eswaran and Mingjie Yan
- Office Hours: Mon 1-2PM, Tue 4-5PM, Thu 5-6PM, Fri 2-3PM
- Office hour location: Online via Zoom at https://binghamton.zoom.us/j/91275738635. Password: 550
- Email: firstname.lastname@example.org
Advanced topics in operating systems. including process and threads, concurrency, deadlocks, race conditions, synchronization, scheduling, virtual memory, file systems, storage systems, virtualization, security, and kernel programming.
Credit hours and course expectations:
This course is a 3-credit course, which means that students are expected to do at least 9 to 9.5 hours of course-related work or activity each week during the semester. This includes scheduled class lecture/discussion meeting times as well as time spent completing assigned readings, studying for tests and examinations, participating in lab sessions, preparing written assignments, and other course-related tasks.
In this course, you will learn classical and advanced concepts in Operating Systems. Topics include:
We will cover a mix of background material and advanced topics. Programming assignments will help you get your hands dirty with Linux kernel coding.
- Processes, Threads, and Events
- Virtual Memory
- Storage and File Systems
- Introduction to Linux Kernel Programming
- CS350 -- Undergraduate OS.
- You must be proficient with C programming.
- Proficiency in the use of a debugger (such as gdb) is expected.
- You must be comfortable working and programming in the Linux environment.
- There is no required textbook for this course.
- A good reference book is Modern Operating Systems, by Andrew Tanenbaum, Prentice Hall; 4th edition.
Other Recommended Books:
- Kernighan, Ritchie, The C Programming Language.
- Linux Device Drivers, 3rd Edition by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. (This book is also available online at http://lwn.net/Kernel/LDD3/).
- Unix Network programming, Vol 1: The Socket Networking API (3rd edition), by W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Addison-Wesley Professional.
- Operating Systems: Three Easy Pieces (a.k.a. the OSTEP book)
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
- Silberschatz, Galvin, Gagne, Operating System Concepts; 7th or 8th edition
- Virtual Machines: Versatile Platforms for Systems and Processes, By James E. Smith Jim, Jr. Smith, Ravi Nair.
- 66% - Three written tests
- Tests will be held in-person.
- Test 1 will be held on Oct 6 during class hours. There are two classrooms for social distancing:
- Go to Lecture Hall 7 if your last name starts with A to L
- Go to Fine Arts 212 if your last name starts with M to Z.
- Test 2 will be held on Nov 3 during class hours.
- Test 3 will be held on TBA during the finals week as scheduled by the university.
- 34% - Four programming assignments (7, 9, 9, 9).
- Assignments can be completed in teams of two or individually.
- Assignment demos will be conducted individually and online using Zoom.
- Assignments should be submitted via Brightspace.
- Submit all your code and your PDF report as ONE zipped file, not multiple files.
- Name your assignment directory as "your_username/" and the name the zip file as "your_username.zip", so that when yoursubmission is unzipped, a directory with your username will be created. Replace "your_username" above with your BU login username (don't use your B-number).
- All grades will be posted on Brightspace after grading is completed.
- A weighted total will be computed based on the above mentioned distribution between tests and assignments. Similar weighted totals will be assigned for similar grade. For instance, in some of the past offerings of this course, a weighted total of 90% or more corresponded to a grade of A, 80-89% corresponded to A-, 70-79% corresponded to B+, and 60-69% corresponded to B, and so forth. These grade distributions vary from year to year.
- Important: Academic dishonesty and missed work may adversely affect your grades. Please carefully read the Course Policies section for detailed information about academic honesty, missed exams, late submissions, grade change requests, etc.
- Please clear your browser's cache and reload this page to see the latest listing of slides below.
- Course Information
- Inter Process Communication
- Threads (Study on your own)
- Race Conditions and Deadlocks
- Semaphores, Monitors and Condition Variables, Producer-Consumer Problem
- Events vs Threads
- Kernel Modules
- System Calls
- Virtual Memory Management
- TLB Coverage and Superpages
- "The UNIX time-sharing system", Dennis M. Ritchie and Ken Thompson, 1974
- Introduction to Virtual Machines
- System Security
- I/O Models
- Live Migration
- Operating-System-Level Virtualization (Containers)
- Principles of System Design