Date |
Topic |
Reading |
$firstday=mktime(0, 0, 0, 8, 23, 2012);
function lecture($topic, $link, $description, $reading='No reading', $numlecs=1) {
global $firstday;
print '';
$oldfirstday = $firstday;
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 ' | ';
if($link != '') {
if(time() > $oldfirstday) {
$linkstr = '' . $topic . ' (PDF)';
} else {
$linkstr = '' . $topic . '';
}
} else {
$linkstr = '' . $topic . '';
}
if($description != '') {
$linkstr = $linkstr . ': ' . $description;
}
print '' . $linkstr . ' | ' . $reading . ' |
';
}
lecture('Introduction', 'slides/01-intro.ppt', 'Introduces the course and its contents; Discusses the history of OSs.');
lecture('Architectural Support for Operating Systems', 'slides/02-arch-support.ppt', 'Interrupts and Traps; I/O and device drivers; OS Protection; OS Structure; Booting.', 'Ch. 1 & 2');
lecture('Processes and Threads', 'slides/03-processes-threads.ppt', 'What is a process? What is a thread? How are they created and destroyed? How are processes and threads implemented?', 'Ch. 3', 2);
lecture('CPU Scheduling', 'slides/04-scheduling.ppt', 'How does the OS decide which user processes/threads to schedule?', 'Ch. 7', 1);
lecture('Synchronization', 'slides/05-synchronization.ppt', 'How do threads share the same memory without stepping on each others
toes? How do threads coordinate their execution? Locks,
spinlocks, semaphores, monitors and condition variables.', 'Ch. 4 & 5', 4);
lecture('Deadlocks', 'slides/06-deadlocks.pptx', 'How to prevent synchronized threads from mutually blocking each other.', 'Ch. 4 & 5', 2);
lecture('Review Session', '', '', '');
lecture('Memory Management', 'slides/07-main-memory.pptx', 'Memory organization. Paging. Segmentation. Page Tables. TLB Management.', 'Ch. 8');
lecture('Fall Break', '', '', '');
lecture('Virtual Memory', 'slides/08-vm.pptx', '', 'Ch. 9', 2);
lecture('Networking', 'slides/09-networking.pptx', 'Network organization. Ethernet. ARP. DHCP. DNS. IP. TCP. BGP. Routing overview.',
'
Saltzer, Reed and Clark, End-to-End Arguments in System Design.
', 5);
lecture('Disks and RAID', 'slides/disksraid-09.ppt', 'Disk Organization. Disk Interface. RAID.', 'Ch. 12');
lecture('File Systems', 'slides/filesystems-10.ppt', 'How are filesystems implemented, what are the performance implications for various designs? Persistence, Consistency, FAT, Unix File System, Log structured filesystems.', 'Ch. 13 & 14
Rosenblum and Ousterhout.
The Design and Implementation of a Log-Structured File System.
', 3);
lecture('Thanksgiving', '', '', '');
lecture('Security', 'slides/security-12.ppt', 'Basics of authentication, authorization and privacy management in operating systems.', '');
lecture('Advanced Operating Systems', '', '', '');
?>