Course Schedule

'; print ''; } lecture('Introduction:Introduces the course and its contents; Discusses the history of OSs.'); lecture('Architectural Support for Operating Systems: Interrupts and Traps; I/O and device drivers; OS Protection; OS Structure; Booting.', 'Ch. 1 & 2', 4); lecture('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', 2); lecture('Threads: How do they differ from processes? What are the main issues in using them?', 'Ch. 4', 2); lecture('CPU Scheduling: How does the OS decide which user processes/threads to schedule?', 'Ch. 5', 3); lecture('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'); lecture('Deadlocks: How to prevent synchronized threads from mutually blocking each other.', 'Ch. 7'); lecture('Fall Break', ''); lecture('PRELIM 1', ''); lecture('Memory Management: Main memory concepts - paging, segmentation.', 'Ch. 8'); lecture('Virtual Memory

', 'Ch. 9'); lecture('Networking', '

Ethernet slides Internet slides TCP/IP slides RPC slides

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

', 4); lecture('Disks and RAID', 'Ch. 12'); lecture('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', 2); lecture('Security', 'Ch. 15'); lecture('Thanksgiving', ''); lecture('Prelim II', ''); lecture('Security', ''); ?>
Date Topic Reading
'; while($numlecs > 0) { print date("D M d", $firstday) . '
'; if(date("D", $firstday) == "Tue") { $firstday += 60 * 60 * 24 * 2; } else if(date("D", $firstday) == "Thu") { $firstday += 60 * 60 * 24 * 5.01; } $numlecs -= 1; } print '
' . $topic . '' . $reading . '