CS 508 (Fall 2006/07): Operating Systems

" method="post" enctype="multipart/form-data">

"; echo ""; echo ""; echo ""; } else echo "

"; include("display-ref.inc.php"); $bigbibtex.=$bibtex; $bigxml.=$xml; if ($cutnpaste!="on") { // Options: BibTeX [Abstract] [Full paper] echo ''; // ID transmission echo ''; // Buttons if ( 0 ) { echo ' '; echo ' '; echo ' '; if ($abstract) echo ' '; } if (($file)||($paperurl)) echo ' '; echo '

'; } else echo "

"; // End reference echo "\n\n"; } } // Actions switch($action) { case "actionref": // Display reference details // Retrieve fields $result=mysql_query("select * from btw_paper, btw_reference where reference=type and bibkey='$bibkey'"); // Common fields retrieval $reference=mysql_result($result, 0, 'reference'); $title=mysql_result($result, 0, 'title'); $scope=mysql_result($result, 0, 'scope'); $year=mysql_result($result, 0, 'yea'); $month=mysql_result($result, 0, 'mon'); $note=mysql_result($result, 0, 'note'); $abstract=mysql_result($result, 0, 'abstract'); $keywords=mysql_result($result, 0, 'keywords'); $file=mysql_result($result, 0, 'file'); $paperurl=mysql_result($result, 0, 'url'); // Retrieve multivalued & specific fields include("load-ref.inc.php"); // Display echo "

Reference ($reference)

"; include("display-ref.inc.php"); switch($subaction) { case "BibTeX": echo "

BibTeX entry

".nl2br(str_replace("\t","   ",$bibtex))."

"; ?>

Abstract

"; echo nl2br(str_replace("\'","'",$abstract)); echo "

Keywords

"; echo str_replace("\'","'",$keywords); echo "

"; break; case "Full paper": echo "

Full paper

"; if ($file) { $path="files/".$file; $size=floor(filesize($path)/1024); echo "

$file ($size KB)

\n"; } else echo "

$paperurl

\n"; // URL break; } // Footer return_button($bibkey,$minyear,$maxyear,$keyword); break; case "actionfoot": // Footer options switch($subaction) { case "BibTeX": echo "

BibTeX entries

".nl2br(str_replace("\'","'",str_replace("\t","   ",$bibtex)))."

"; $namecomponents=explode(" ", $username); $lastname=strtolower($namecomponents[count($namecomponents)-1]); ?>
Statistics from $minyear to $maxyear"; if ($keyword) echo " with keyword = \"$keyword\""; echo ""; echo ''; $result=mysql_query("select reference, scope, count(*) as c from btw_paper, btw_reference where reference=type and yea between $minyear and $maxyear and (upper(title) like upper('%$keyword%') or upper(keywords) like upper('%$keyword%')) group by reference, scope order by scope, rank"); $n=mysql_numrows($result); $tot=0; for ($i=0; $i<$n; $i++) { $c=mysql_result($result, $i, 'c'); $tot+=$c; echo ""; } echo ""; echo "
Reference type Scope Number of references
".mysql_result($result, $i, 'reference')." ".mysql_result($result, $i, 'scope')." $c
Total $tot
"; break; } return_button("footoptions",$minyear,$maxyear,$keyword); break; default: // List all publications in the database ?>

Overview

When: Mon/Wed 12:30-2pm
Where: ICCS 238
Instructor: Charles 'Buck' Krasic
First class: Monday Sept. 11th, 2006

This course is an overview of operating systems (OS) concepts. This class is based on a reading list format. The reading list has been selected from seminal OS papers of the last thirty years and a some more recent and topical research papers.

You will be required to read each paper carefully. Two days prior to each class, you are to submit two (or more) questions per paper by e-mail. The e-mail should be sent to the paper moderator, and cc'd to the class instructor (krasic@cs.ubc.ca). Each student will also be assigned to present one or more papers from the reading list, and moderate class discussion afterward. To help guide the post-presentation discussion, the moderator should select from the submitted questions for class discussion. Each moderator should submit their presentation, along with a recap of the issues that were discussed in class.

To help make assembling these materials easier, the submission be in the form of a tar archive, containing a directory called paperN (where N is the paper number in the class schedule). That directory should contain a index.html file, which is to include the list of submitted questions, the discussion recap, and links to presentation materials (e.g. slides). These materials will be subsequently assembled on the course website (see below).

Students will also be expected to prepare either a course programming project, or a paper submission. Programming projects may be done in teams of two if you wish. The paper may take the form of either a short survey, or a position on a topic concerning current and future directions of operating systems research. A one page project proposal is due in class on Oct. 30th. The final due date for the project is Dec. 8th.

Evaluation

Course grades will be determined based upon the following student responsibilities (approximately equal weight):

After class summaries/recaps

Submitted summaries are here.

Reading List/Schedule

The following is the schedule of readings for the term. Changes to the schedule may be made as necessary. I may decide to change some of the papers in the later part of the schedule as the term progresses.

From: To: Keyword filter: Cut & paste mode: />
\n"; echo "\n"; // Display list // $result=mysql_query("select * from btw_paper, btw_reference where reference=type and yea between $minyear and $maxyear and (upper(title) like upper('%$keyword%') or upper(keywords) like upper('%$keyword%')) order by scope, rank, yea desc"); $i = 1; $class_dates[$i++] = '11-Sept-06'; $class_dates[$i++] = '13-Sept-06'; $class_dates[$i++] = '18-Sept-06'; $class_dates[$i++] = '20-Sept-06'; $class_dates[$i++] = '25-Sept-06'; $class_dates[$i++] = '27-Sept-06'; $class_dates[$i++] = '2-Oct-06'; $class_dates[$i++] = '4-Oct-06'; $class_dates[$i++] = '9-Oct-06'; $class_dates[$i++] = '11-Oct-06'; $class_dates[$i++] = '16-Oct-06'; $class_dates[$i++] = '18-Oct-06'; $class_dates[$i++] = '23-Oct-06'; $class_dates[$i++] = '25-Oct-06'; $class_dates[$i++] = '30-Oct-06'; $class_dates[$i++] = '1-Nov-06'; $class_dates[$i++] = '6-Nov-06'; $class_dates[$i++] = '8-Nov-06'; $class_dates[$i++] = '13-Nov-06'; $class_dates[$i++] = '15-Nov-06'; $class_dates[$i++] = '20-Nov-06'; $class_dates[$i++] = '22-Nov-06'; $class_dates[$i++] = '27-Nov-06'; $class_dates[$i++] = '29-Nov-06'; $num_classes = $i; $i = 0; $class_papers[$i++] = "birrel89introdu"; // $class_papers[$i++] = "savage97eraser"; $class_papers[$i++] = "hoare74monitors"; // $class_papers[$i++] = "lampson80monito"; $class_papers[$i++] = "anderson92activ"; $class_papers[$i++] = "ousterhout96"; $class_papers[$i++] = "welsh01seda"; $class_papers[$i++] = "vonbehren03even"; $class_papers[$i++] = "lauer79duality"; $class_papers[$i++] = "adya02stackless"; $class_papers[$i++] = "vonbehren03capr"; # $class_papers[$i++] = "zeldovish04even"; $class_papers[$i++] = "chanda04laio"; $class_papers[$i++] = "birrel84rpc"; // $class_papers[$i++] = "bershad89lrpc"; // $class_papers[$i++] = "bershad91ipc"; $class_papers[$i++] = "dijkstra-the"; // $class_papers[$i++] = "clark85upcalls"; $class_papers[$i++] = "silberschatz02m"; $class_papers[$i++] = "liedtke93kernel"; $class_papers[$i++] = "haertig97ukerne"; $class_papers[$i++] = "wahbe93sandbox"; $class_papers[$i++] = "bershad95extens"; // $class_papers[$i++] = "rashid88vm"; // $class_papers[$i++] = "appel91vmtricks"; $class_papers[$i++] = "bugnion97disco"; $class_papers[$i++] = "barham03xen"; $class_papers[$i++] = "dunlap02revirt"; $class_papers[$i++] = "king05debugging"; // $class_papers[$i++] = "engler95exokern"; // $class_papers[$i++] = "McNamee2001"; $class_papers[$i++] = "aron00soft"; $class_papers[$i++] = "Goel2002c"; $class_papers[$i++] = "walker83locus"; $class_papers[$i++] = "schroeder84grap"; $class_papers[$i++] = "jul88emerald"; $class_papers[$i++] = "mckusick84ffs"; $class_papers[$i++] = "rosenblum92lfs"; $class_papers[$i++] = "santry99elephan"; // $class_papers[$i++] = "hartman95zebra"; $class_papers[$i++] = "thekkath97frang"; // $class_papers[$i++] = "rowstron01past"; // $class_papers[$i++] = "debek01cfs"; $class_papers[$i++] = "muthitacharoen0"; $class_papers[$i++] = "stoica01chord"; $class_papers[$i++] = "rofl06sigcomm"; $class_papers[$i++] = "mazieres99sfs"; $class_papers[$i++] = "fordosdi06"; $class_papers[$i++] = "kaminsky03sfs"; $paper_num = 1; for ( $i = 1; $i < $num_classes; $i++ ) { $class_num = $i; echo "\n"; echo "\n"; echo "Class $class_num
$class_dates[$i]\n"; echo "\n\n"; if ($class_num == 1) { echo "Course overview and initial paper assignments"; echo "

Students will be asked to submit rankings (top 3 preferences) from the following list. The instructor will use these to deterimine the moderator/presenter schedule. It is therefore recommended that students examine the list before the first class if possible.

"; } else if($class_num == 3) { echo "No class Ubisys"; } else if($class_num == 9) { echo "Thanksgiving holiday"; } else if(($class_num == 17) || ($class_num == 18)) { echo "No class OSDI"; } else if($class_num == 19) { echo "Holiday in lieu of Remembrance day"; } else { for ( $j = 0 ; $j < 2; $j++ ) { switch ($paper_num) { case "1": echo "

Threads, Concurrency and Synchronization

"; break; case "5": echo "

Event-Based Systems

"; break; case "7": echo "

Duality of Threads and Events

"; break; case "11": echo "

Remote Procedure Call

"; break; case "12": echo "

System Structuring using Layers

"; break; case "13": echo "

Extensibility via Hardware-Based Protection

"; break; case "16": echo "

Extensibility via Software-Based Protection

"; break; case "18": echo "

Virtualization

"; break; case "20": echo "

Applications of Virtualization

"; break; case "22": echo "Project proposal due.

"; // echo "

Exo-kernel and Specialization

"; // break; echo "

Real-Time

"; break; case "24": echo "

Distribution

"; break; case "27": echo "

File Systems

"; break; case "30": echo "

Distributed File Systems

"; break; case "32": echo "

P2P and Routing

"; break; case "34": echo "

Security and Naming in Distributed Systems

"; break; default : break; } echo "Paper #$paper_num:
"; display_ref($class_papers[$paper_num-1]); if (((($i - 1) * 2) + $j) != 18) { $paper_num++; } } } echo "\n\n"; } echo "\n"; // Bottom options /* echo "

 

\n"; // Stats ?>
" />
Instructor's homepage

\n\n"; break; } include("copyright.inc.php"); // Footer ?>