COP4610: Introduction to Operating Systems

Course Information

Instructor: Zhi Wang
Email: zwang at cs dot fsu dot edu (preferred way to communicate)
Office: 172 LOVE Bldg
Phone: (850) 645-0476
Class Meeting: HCB 216; Monday, Wednesday, and Friday; 12:20PM - 1:10PM
Office Hour: Monday 1:30PM - 3:30PM, or by appointment
TA: Brandon Stephens, 12:30PM-2:00PM, Tuesday and Thursday, LOV 105E
Wenqi Wang, 1:30PM - 3:00 PM Wednesday, 9:30AM-11:00AM Friday, MCH102C
Required Textbook: Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Operating Systems Concepts Wiley, 9th edition, 2013
Xv6: Book and commentary ( source code for the book), Source code for projects

Schedules

Chapter/Reading Topic Slides
Chapter 1 Class Information and Introduction slides 0, slides 1
Chapter 2 Operating System Structure slides 2
Chapter 3 Process slides 3, Process in Xv6
Chapter 4 Threads slides 4
Chapter 5 CPU Scheduling slides 5, Scheduling in Xv6
Chapter 6 Process Synchronization slides 6
Chapter 7 Deadlock slides 7
Chapter 8 Main Memory slides 8
Chapter 9 Virtual Memory slides 9
Chapter 10 Mass-Storage Structure slides 10
Chapter 11 File System Interface slides 11
Chapter 12 File System Implementation slides 12
Chapter 13 I/O Systems slides 13
Chapter 14 Protection slides 14
Chapter 15 Security slides 15
Chapter 18 The Linux System slides 16

The schedule is tentative and subject to change with announcements in class. Please check back at least once a weekly.

Homework

Homework will be posted on the blackboard. Please check the blackboard regularly.

Projects

Projects will be posted on the blackboard. Please check the blackboard regularly.

Useful Resources

Books: Kernighan, Ritchie, The C Programming Language (2nd Edition)
Maurice J. Bach, The Design of the UNIX Operating System (1st Edition)
Marshall Kirk McKusick, George V. Neville-Neil, and Robert N.M. Watson, The Design and Implementation of the FreeBSD Operating System (2nd Edition)
Tanenbaum and Woodhull, Operating Systems Design and Implementation (3rd Edition)
Douglas Comer, Operating System Design: The Xinu Approach (2nd Edition)
Bovet and Cesati, Understanding the Linux Kernel (3rd Edition)
Robert Love, Linux Kernel Development (3rd Edition)
Corbet, Rubini, and Kroah-Hartman Linux Device Drivers (3rd Edition)
Links: Architecture of the Windows Kernel By Dave Probert
Linux Cross Reference
An Introduction to Linux IPC
POSIX Threads Programming
Why Threads Are A Bad Idea (for most purposes) By John Ousterhout
LWN.net
Linux Changes
Intel Programmer's Manuals
AMD Programmer's Manuals
Raspberry Pi

Syllabus

The course's syllabus can be found here.