Course Schedule

MP = Mini-Project. There are 4 of them. If you are enrolled in only CS 4410 this semester, you must complete all four mini-projects. If you are enrolled in both CS 4410 and CS 4411 this semester, you are only required to complete the first Mini-Project.

P = Project. There are 6 of them. If you are enrolled in CS 4411 this semester, you must complete all six projects. If you are enrolled in only CS 4410 this semester, you can ignore these deadlines entirely.

'; if($link != '') { if(time() >= $oldfirstday) { $linkstr = ''.$topic . ' (pdf)'; } else { $linkstr = '' . $topic . ''; } $linkstr = ''.$topic . ' (pdf)'; } else { $linkstr = '' . $topic . ''; } if($description != '') { $linkstr = $linkstr . ': ' . $description; } print ''; } function noclass($event, $numlecs=1) { global $firstday; print ''; $linkstr = '
' . $event . '
'; print ''; } function exam($date, $title, $location) { print ''; print ''; } lecture('Introduction', 'slides/01-intro', 'Introduces the course and its contents; Discusses the history of OSs.'); lecture('Architectural Support for Operating Systems', 'slides/02-arch-support', 'Interrupts and Traps; I/O and device drivers; OS Protection; OS Structure; Booting.', 'Ch. 1 & 2'); lecture('Processes and Threads', 'slides/03-processes-threads', 'What is a process? What is a thread? How are they created and destroyed? How are processes and threads implemented?', 'Ch. 3
', 'P1(T,9/1)
MP1(Th,9/3)', '', 2); lecture('Synchronization', 'slides/04-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 condition variables.', 'Ch. 4 & 5
12 Commandments of Synchronization', 'P2(W,9/16)','P1(W,9/16)

MP1(W,9/23)',5); lecture('CPU Scheduling', 'slides/05-scheduling', 'How does the OS decide which user processes/threads to schedule?', 'Ch. 7', 'MP2(Th,9/24)','',1); lecture('Deadlocks', 'slides/06-deadlocks', 'How to prevent synchronized threads from mutually blocking each other.', 'Ch. 4 & 5', 'P3(W,9/30)','P2(F,10/2)',2); lecture('Main Memory', 'slides/07-memory', 'Memory organization. Segmentation. Page Tables.', 'Ch. 8', '','',1); lecture('Prelim Review', 'slides/prelim1-review', 'Everything through Deadlocks', '', '','Prelim #1
(Th,10/8), STL185',1); noclass('Fall Break', 1); lecture('Main Memory (contd)', '', 'TLB Management. Caches. Virtual Memory. Paging.', 'Ch. 8-9', 'P4(W,10/21)','MP2(W,10/21)
P3(W,10/21)',2); lecture('Networking', 'slides/08-networking', 'Network organization. Ethernet. ARP. DHCP. DNS. IP. TCP. BGP. Routing overview.', '

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

', 'MP3 (Th,10/22)

P5(W,11/4)','P4(F,11/6 @ 3pm)',5); lecture('Disks and RAID', 'slides/09-disksraid', 'Disk Organization. Disk Interface. RAID.', 'Ch. 12', '','MP3(W,11/11)'); lecture('Layered Block Stores and MP4', 'slides/MP4', 'Block Store Interface. Virtual Block Stores', '', 'MP4(Th,11/12)',''); lecture('File Systems', 'slides/10-filesystems', '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. ', '

P6(W,11/18)','P5(W,11/18)',2); lecture('Prelim 2 Review', '', '', '', '','Prelim #2
(T,11/24), STL185'); noclass('Thanksgiving',1); lecture('Security', 'slides/11-security', 'Basics of authentication, authorization and privacy management in operating systems.', '', '','MP4(W,12/2)
P6(W,12/2)',2); exam('Wed, Dec 9', '4410: Final Exam',1); ?>

Date Topic Reading Release Due
'; $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 '
' . $linkstr . '' . $reading . '' . $release . '' . $due . '
'; $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 '
' . $linkstr . '
'; print $date; print ''; print $title; print '