CS 5460/6460 - Operating Systems
- Instructor: Anton Burtsev (anton.burtsev@utah.edu)
- Time and place: Tue/Thu, 9:10am - 10:30am, WEB L101
- Canvas: https://utah.instructure.com/courses/1022264
- Piazza (questions): https://piazza.com/utah/spring2025/cs5460001spring2025/home
- Gradescope (homework assignments and quizzes): https://www.gradescope.com/courses/947893
- Office hours:
- Anton: Thursdays 11:00am-12:00pm Anton’s office, MEB 3424
- Soham: Tuesdays 11:00am-12.00pm MEB 3145
- Rutuja: Wednesdays 12.00pm-1.00pm MEB 3105
- Navya: Mondays 12.00pm-1.00pm MEB 3515
- Class repo (pull requests): github
- PollEverywhere link: PollEv.com/antonburtsev
Class Overview
cs5460/6460 teaches the fundamentals of operating systems. You will study, in detail, virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, interprocess communication, coordination of concurrent activities, and the interface between software and hardware. Most importantly, you will study the interactions between these concepts, and how to manage the complexity introduced by the interactions.
To master the concepts, cs5460/6460 is organized in as a series of lectures, and homeworks. The lectures (and the book readings) familiarize you with the main concepts. The homrworks force you to understand the concepts at a deep level.
The lectures are based on xv6,
a modern re-implementation of one of the early UNIX operating systems,
specifically, Unix Version 6 which was developed in the 1970s, on the modern hardware.
xv6 is only 9,000 lines of C code, but it can run real processes, and perform many
functions of a traditional operating system, e.g., Windows, Linux, and Mac OS.
Due to its small size, it is possible to read the source code and understand the entire
operating system. Moreover, xv6 is accompanied by a book
describing its architecture and a printout of its source code.
Homework assignments will help you to deepen the
understanding of the principles and internal organization of a simple, but real
operating system.
You may wonder why we are studying an operating system that resembles Unix v6 instead of the latest and greatest version of Linux, Windows, or BSD Unix. xv6 is big enough to illustrate the basic design and implementation ideas in operating systems. On the other hand, xv6 is far smaller than any modern production operating systems, and correspondingly easier to understand. xv6 has a structure similar to many modern operating systems; once you’ve explored xv6 you will find that much is familiar inside kernels such as Linux.
Grading policy
Homework: 40%, in-class activities: 10%, quizzes 15%, midterm exam: 15%, final exam: 20% of your grade (all grades curved).
Late homework policy
You can submit late homework assignments (not quizzes or in-class activities) 3 days after the deadline for 60% of your grade.
Schedule
Jan 7
- Lecture 0 - Logistics (video)
- Lecture 1 - Introduction (video)
- Reading: OSTEP: 2 Introduction
- Reading (optional, to help you with C): The C Programming Language (look at Chapter 5 Pointers and Arrays) by Brian Kernighan and Dennis Ritchie (first edition is freely available, second edition is in print and is available from all major bookstores)
Jan 9
- Lecture 02 - OS Interfaces (part 1) (video)
- Reading: xv6: Chapter 0: Operating system interfaces
- Video (optional): AT&T Archives: The UNIX Operating System
Jan 14
Jan 16
- Lecture 02 - OS Interfaces (part 3)
- Lecture 03 - x86 Assembly (video)
- Reading: Reading: xv6 Book: Appendix A: PC Hardware
- Reading: Reading: x86 Assembly Guide
Jan 21
- Lecture 03 - x86 Assembly (part 2) (video)
- Lecture 04 - Calling Conventions (video)
- Reading: PC Assembly Language. Paul A. Carter: Section 4 Subprograms (4.1 - 4.5)
- Reading: Wikipedia: x86 calling conventions
- Homework 1 - Shell
Jan 23
- Lecture 04 - Calling Conventions (video)
- Source code examples: github
Jan 28
- Lecture 05 - Linking and Loading (video)
- Reading: Operating Systems from 0 to 1. Chapter 5. The Anatomy of a Program
- Optional reading: This lecture is mostly based on the material of this book: Linkers and Loaders by John R. Levine
Jan 30
March 6
- Midterm exam (regular time and place)
March 11
- No class (Spring Break)
March 13
- No class (Spring Break)
April 29
- Final exam 8:00am - 10:00am (same room) official schedule