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 . ' |