COP4610/CGS5765: 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; 9:05am - 9:55am
Office Hour: Monday 2:30-4:30 pm, or by appointment
TA: Raiaan, Abdullah (ar11s@my.fsu.edu, MCH 100A) Tuesdays and Thursdays, 4:00 pm - 5:00 pm
Venkatesan, Varun (vv11@my.fsu.edu, MCH 102F) Wednesday and Friday, 3:00 pm - 4:00 pm
Required Textbook: Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne Operating Systems Concepts Wiley, 8th edition update, 2009

Announcements

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
Chapter 4 Threads slides 4
Chapter 5 CPU Scheduling slides 5
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 File System Interface slides 10
Chapter 11 File System Implementation slides 11
Chapter 12 Mass-Storage Structure slides 12
Chapter 13 I/O Systems slides 13
Chapter 14 Protection slides 14
Chapter 15 Security slides 15
Chapter 21 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 Topic Due Date
Homework 1 Processes and Threads 2/8
Homework 2 CPU Scheduling and Process Synchronization 3/8
Homework 3 TBD
Homework 4 TBD
Homework 5 TBD

Homework will be posted here with announcements in class. You may find a Latex tutorial here.

Projects

Project Topic Due Date
Project 1 Adding a New System Call to the Linux Kernel 1/25
Project 2 Process Creation and Communication 2/1
Project 3 Producer and Consumer Problem 3/1
Project 4 TBD
Project 5 TBD

Recitations

Recitation 1

Readings

POSIX Threads Programming
Why Threads Are A Bad Idea (for most purposes) By John Ousterhout
Concurrency is not Parallelism By Rob Pike

Useful Resources

Books: Robert Love, Linux Kernel Development (3rd Edition)
Kernighan, Ritchie, The C Programming Language (2nd Edition)
Corbet, Rubini, and Kroah-Hartman Linux Device Drivers (3rd Edition)
Tanenbaum and Woodhull, Operating Systems Design and Implementation (3rd Edition)
Bovet and Cesati, Understanding the Linux Kernel (3rd Edition)
Links: Linux Cross Reference
LWN.net
Linux Changes
Intel Programmer's Manuals
AMD Programmer's Manuals
Raspberry Pi

Syllabus

The course's syllabus can be found here.