CS 4410/4411: Fall 2009 Systems Programming and Operating Systems

Course Details
Misc. Resources

Course Schedule

Date Topic Reading
Thu Aug 27
Introduction:Introduces the course and its contents; Discusses the history of OSs.No reading
Tue Sep 01
Thu Sep 03
Tue Sep 08
Thu Sep 10
Architectural Support for Operating Systems: Interrupts and Traps; I/O and device drivers; OS Protection; OS Structure; Booting.Ch. 1 & 2
Tue Sep 15
Thu Sep 17
Processes and Interprocess Communication: What is a process, and why do we have them? How are they created and destroyed? How do processes communicate?Ch. 3
Tue Sep 22
Thu Sep 24
Threads: How do they differ from processes? What are the main issues in using them?Ch. 4
Tue Sep 29
Thu Oct 01
Tue Oct 06
CPU Scheduling: How does the OS decide which user processes/threads to schedule?Ch. 5
Thu Oct 08
Synchronization: How do threads share the same memory without stepping on each others toes? How do threads coordinate their execution? Locks, spinlocks, semaphores, monitors, and conditional variables.Ch. 6
Tue Oct 13
Deadlocks: How to prevent synchronized threads from mutually blocking each other.Ch. 7
Thu Oct 15
Fall Break
Tue Oct 20
Thu Oct 22
Memory Management: Main memory concepts - paging, segmentation.Ch. 8
Tue Oct 27
Virtual Memory

Ch. 9
Thu Oct 29
Tue Nov 03
Thu Nov 05
Tue Nov 10

Ethernet slides Internet slides TCP/IP slides RPC slides

Saltzer, Reed and Clark, End-to-End Arguments in System Design.

Thu Nov 12
Disks and RAIDCh. 12
Tue Nov 17
Thu Nov 19
File Systems: How are filesystems implemented, what are the performance implications for various designs? Hard/Soft Links, Caching, Consistency, Disk block allocation, Log structured filesystems.Ch. 10 & 11
Tue Nov 24
SecurityCh. 15
Thu Nov 26
Tue Dec 01
Prelim II
Thu Dec 03