From b3386bc5a3f1e45bb779bc9c977aeb7530f52b6f Mon Sep 17 00:00:00 2001
From: Bjoern Brandenburg <bbb@Serenity.local>
Date: Sat, 19 Jul 2008 14:06:24 +0200
Subject: work on the documentation

made it somewhat more pretty
---
 gfx/setsched.png | Bin 0 -> 14816 bytes
 inc/format.css   |  31 ++++++---
 index2.html      | 192 +++++++++++++++++++++++++++++--------------------------
 3 files changed, 123 insertions(+), 100 deletions(-)
 create mode 100644 gfx/setsched.png

diff --git a/gfx/setsched.png b/gfx/setsched.png
new file mode 100644
index 0000000..e90c62b
Binary files /dev/null and b/gfx/setsched.png differ
diff --git a/inc/format.css b/inc/format.css
index 3cf2edb..1de7be0 100644
--- a/inc/format.css
+++ b/inc/format.css
@@ -15,7 +15,6 @@ html {
 
 
 body {
-    background-image : url('gfx/corner.png');
     background-position : top right;
     background-repeat : no-repeat;
 
@@ -34,6 +33,16 @@ img {
 	border: 0px;
 }
 
+h4 {
+	font-style: italic;
+	margin: 0;
+	padding: 0;
+}
+
+.release {
+	margin-left: 0.5in;
+}
+
 p {
     font-size: 12pt;
   }
@@ -169,7 +178,7 @@ h1 {
 }
 
 h2 {
-   font-size: 13pt;
+	font: italic bold 18pt Georgia, "Times New Roman", Times, serif;
 }
 
 
@@ -186,6 +195,12 @@ h3 {
     margin-bottom: 0.1cm;
 }
 
+.relname {
+	color: #eb4f0c;
+	margin-left: 0.25in;
+	font: italic bold 16pt Georgia, "Times New Roman", Times, serif;
+}
+
 .itext {
     margin-bottom: 0cm;
     margin-left: 0.6cm;
@@ -214,14 +229,14 @@ h3 {
   margin-left: 0.5cm;
   margin-right: 0.5cm;
   padding: 0.2cm;
-  font-family: Courier New, Courier, monospace;
-  font-size: 10pt;
-  font-weight: bold;
   background-color: #000000;
   color: #cccccc;
-  border-color: #00C400;
-  border-width: 1px;
-  border-style: solid;
+	border: 2px solid #eb4f0c;
+	font: bold 10pt "Courier New", Courier, mono;
+}
+
+.qa {
+	margin-top: 0;
 }
 
 .flushright {
diff --git a/index2.html b/index2.html
index 883f9ef..db9ebe4 100644
--- a/index2.html
+++ b/index2.html
@@ -53,13 +53,13 @@
     </ul>
     <p>
     </p>
-    <p>Earlier versions (2007.1 &mdash; 2007.3), which were based on Linux&nbsp;2.6.20 
-    and supported additional scheduling policies, are discussed 
+    <p>Earlier versions (2007.1 &mdash; 2007.3), which are based on Linux&nbsp;2.6.20 
+    and support additional scheduling policies, are discussed 
     on a separate page dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>.
     </p>
     <p class="nobottommargin">
        The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006, 
-       was based on Linux&nbsp;2.6.9 and never publicly released.
+       is based on Linux&nbsp;2.6.9.
     </div>
 
    <h2 id="support">Support</h2>
@@ -91,7 +91,7 @@
     </li>
     </ul>
 	<p>
-		(The current version of LITMUS<sup>RT</sup> is based on the <a href="litmus2007.html">2007 series</a>, which had <a href="litmus2007.html#collaborators">additional contributors</a>.)
+	(<a href="litmus2007.html#collaborators">Additional contributors</a> contributed to earlier versions of LITMUS<sup>RT</sup>.)
 	</p>
     </div>
     
@@ -101,45 +101,49 @@
     
     <ol class="nomargin">      
 
+      <li>
+      	<p>
+	B. Brandenburg and J. Anderson,
+	&ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, in submission, July 2008. 
+	<a href="http://www.cs.unc.edu/~anderson/papers/opodis08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/opodis08.pdf">PDF</a>.
+	</p>
+      </li>
       
       <li>
+      	<p>
 	B. Brandenburg, J. Calandrino,  and J. Anderson,
 	&ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;, in submission, May 2008.
 	<a href="http://www.cs.unc.edu/~anderson/papers/rtss08b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtss08b.pdf">PDF</a>.
+	</p>
       </li>
 
       <li>
-	B. Brandenburg and J. Anderson,
-	&ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, in submission, April 2008. 
-	<a href="http://www.cs.unc.edu/~anderson/papers/emsoft08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/emsoft08.pdf">PDF</a>.
-      </li>
-
-      <li>
+      	<p>
 	B. Brandenburg and J. Anderson,
 	&ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP, 
 	and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;, 
-	<cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, to appear, 2008. 
+	<cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, to appear, August 2008. 
 	<a href="http://www.cs.unc.edu/~anderson/papers/rtcsa08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtcsa08.pdf">PDF</a>.
+	</p>
       </li>
 
       <li>
-	A. Block, B. Brandenburg<, J. Anderson,
+       <p>
+	A. Block, B. Brandenburg, J. Anderson,
 	and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;, 
-	<cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, to appear, 2008. 
+	<cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008. 
 	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.pdf">PDF</a>.
-
+	</p>
       </li>
 
       <li>
+      <p>
 	B. Brandenburg, J. Calandrino, A. Block,
 	H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization
 	on Multiprocessors: To Block or Not to Block, to Suspend or
 	Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded
 Technology and Applications Symposium</cite>, pp. 342-353, April 2008.  
 	<a href="http://www.cs.unc.edu/~anderson/papers/rtas08.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/rtas08.pdf">PDF</a>.
-      </li>
-
-
       <p>
 	Extended version, including all graphs:
 	<a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>,
@@ -161,7 +165,7 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
       <p>
 	B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
 	and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
-	  Conference on Real-Time Systems</cite>, July 2007, to appear.
+	  Conference on Real-Time Systems</cite>, pp. 61-70, July 2007.
 	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, 
 	<a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
       </p>
@@ -196,13 +200,13 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
     <span class="src">liblitmus</span>, the user-space API for real-time tasks.
     </p>
 
+    <h3 class="relname">LITMUS<sup>RT</sup> 2008.1</h3>
+    <div class="release">
+    <p>
+         Based on Linux 2.6.24. Released in July 2008.
+    </p>
+   <h4>Files:</h4>
     <ul>
-    <li>
-         2008.1 (July 2008)<br/>
-         Based on Linux 2.6.24. (see <a href="#install">Section Install</a> 
-	 below) <br/>
-	 Files:
-	 <ul>
 	 <li>
 	 	<a href="download/2008.1/litmus-rt-2008.1.patch">litmus-rt-2008.1.patch</a>
 	 </li>
@@ -211,10 +215,9 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
 	 </li>
 	 <li><a href="download/2008.1/SHA256SUMS">SHA256 check sums</a>
 	 </li>
-         </ul>
-    </li>
-    <li>
-         Major changes (compared to LITMUS<sup>RT</sup> 2007.3): 
+    </ul>
+
+    <h4>Major changes (since LITMUS<sup>RT</sup> 2007.3):</h4> 
 	 <ul>
 	   <li>LITMUS<sup>RT</sup> was ported to Linux 2.6.24.
 	   </li>
@@ -235,6 +238,7 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
 	 </ul>
     </li>
     </ul>
+    </div>
     
     <p>
        Please note that the current implementation is a <em>prototype</em> with
@@ -255,19 +259,19 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
     <h2 id="install">Installation</h2> 
     <div class="box"> 
     <p class="notopmargin">
-    The current release of LITMUS<sup>RT</sup>, version 2007.2, consists of an
+    The current release of LITMUS<sup>RT</sup> consists of an
     extension of the Linux kernel that adds support for the sporadic task
     model, a scheduler plugin infrastructure, and some scheduler plugins, as
-    well as two user-space libraries that provide the LITMUS<sup>RT</sup>
+    well as a user-space library that provides the LITMUS<sup>RT</sup>
     real-time API. Note, that the current implementation only works on the
-    Intel x86 architecture.
+    Intel x86-32 and sparc64 architectures.
     </p>
     <h3>Patching the Kernel</h3>
     <p class="notopmargin">
     The extension to the Linux kernel is released as a patch against Linux
-    2.6.20. To install the LITMUS<sup>RT</sup> kernel, first <a
-    href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2">download the Linux
-    kernel 2.6.20</a> and untar it in a directory of your choice (hereafter
+    2.6.24. To install the LITMUS<sup>RT</sup> kernel, first <a
+    href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2">download the Linux
+    kernel 2.6.24</a> and untar it in a directory of your choice (hereafter
     referred to as <span class="src">$DIR</span>). Second, apply the
     LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
     and configure, compile, and install the kernel as usual. The patch is <span
@@ -277,78 +281,46 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
     </p>
 <pre class="shell">
 cd $DIR
-# get Linux 2.6.20
-wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
-tar xjf linux-2.6.20.tar.bz2
-wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/litmus-rt-2007.3.patch
-mv linux-2.6.20 litmus-rt
+# get Linux 2.6.24
+wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2
+tar xjf linux-2.6.24.tar.bz2
+wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2008.1/litmus-rt-2008.1.patch
+mv linux-2.6.24 litmus2008
 # apply the LITMUS RT patch
-cd litmus-rt
-patch -p1 &lt; ../litmus-rt-2007.3.patch
+cd litmus2008
+patch -p1 &lt; ../litmus-rt-2008.1.patch
 # create a working kernel configuration with HZ=1000
-make gconfig
+make menuconfig
 # compile the kernel
 make bzImage
 make modules
 # proceed to install kernel, build initrd, etc.
 ...
 </pre>
-   <p>
-   After the kernel has been compiled and installed, the boot-loader must be
-   configured to load the desired real-time scheduler plugin at boot time (run
-   time selection of the real-time scheduler is currently not supported). The
-   real-time scheduler plugin is selected with the <span
-   class="src">rtsched</span> kernel parameter. 
-   </p>
-<pre class="shell">
-rtsched= {linux, pfair, part_edf, global_edf, 
-          global_edf_np, edf_hsb, gsn_edf, psn_edf, adaptive}
-</pre>
-   <p>
-   For example, on our test machine, we use the
-   following GRUB entry:
-   </p>
-
-<pre class="shell">
-title  Kernel 2.6.20-LITMUSRT
-root   (hd0,5)
-kernel /boot/vmlinuz-2.6.20-LITMUSRT root=/dev/sda6 ro vga=791 rtsched=gsn_edf
-initrd /boot/kernel-2.6.20-LITMUSRT.img
-</pre>
+    <p>
+      When configuring the kernel, note that there is a menu (at the very end of the list) 
+      with LITMUS<sup>RT</sup>-specific configuration options.
+    </p>
 
     <h3>Libraries</h3>
     <p class="notopmargin">
-    The two user-space libraries, <span class="src">liblitmus</span> and  <span
-    class="src">libso</span>, provide their own makefiles and thus are easy to
-    compile. The kernel interface for real-time tasks is provided by <span
-    class="src">liblitmus</span>, which can be compiled as follows:
+    The user-space library for real-time tasks, <span class="src">liblitmus</span>, 
+    depends on the LITMUS<sup>RT</sup> kernel kernel and provides its own makefile. 
+    In order to compile <span class="src">liblitmus</span>, you need to adjust the
+    variable <span class="src">KERNEL_DIR</span> in the Makfile to point to your 
+    copy of the kernel.
     </p>
 <pre class="shell">
 cd $DIR
-wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/liblitmus-2007.3.tgz
-tar xzf liblitmus-2007.3.tgz
+wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2008.1/liblitmus-2008.1.tgz
+tar xzf liblitmus-2008.1.tgz
 cd liblitmus 
+# change KERNEL_DIR in Makefile to point to the kernel source
 make
-</pre>
-    <p>
-    The second library,  <span class="src">libso</span>, provides shared object
-    and synchronization support for real-time tasks. It depends on  <span
-    class="src">liblitmus</span> and must be installed in &quot;parallel&quot;
-    (they must have the same parent directory). The following commands will
-    obtain and compile  <span class="src">libso</span>, including the test programs:
-    </p>
-<pre class="shell">
-cd $DIR
-wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/libso-2007.3.tgz
-tar xzf libso-2007.3.tgz
-cd libso
-make
-make tests
 </pre>
     <p class="nobottommargin">
     Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup>
-    real-time API as provided by  <span class="src">libso</span> and  
-    <span class="src">liblitmus</span>.
+    real-time API as provided by <span class="src">liblitmus</span>.
     </p>
 
     </div>
@@ -358,18 +330,56 @@ make tests
     <div class="box"> 
 
     <p class="notopmargin">
-      Most of the documentation has yet to be written. To get an overview of
+      Unfortunately, most of the documentation has yet to be written. To get an overview of
       the architecture of the kernel extension, we recommend reading the paper
       <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
       A Status Report&rdquo;</a>.
     </p>
+    <h3>Real-Time Scheduling Policies</h3>
+    <p class="qa">
+    The kernel contains the following real-time scheduling policy implementations:
+    </p>
+    <ul>
+      <li>
+      PFAIR, an implementation of the PD<sup>2</sup> algorithm,
+      </li>
+      <li>
+      PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol
+      FMLP,
+      </li>
+      <li>
+      GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol
+      FMLP,
+      </li>
+      <li>
+      C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and
+      </li>
+      <li>
+      Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch.
+      </li>
+    </ul>
     <p>
+    Only one policy can be active at any time. Initially (<em>i.e.,</em> during boot), the "Linux" policy is active.
+    You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display
+    the name of the currently active policy.
+    </p>
+    <h3>Changing the Active Policy</h3>
+    <p class="qa">
+    You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>) 
+    to select a new plugin at run time.
+    <div align="center">
+    <img class="screenshot" src="gfx/setsched.png" alt="Screen shot of setsched"/>
+    </div>
+    Only root can change the active policy, and only when there are no real-time tasks present.
+    </p>
+    <h3>Writing Real-Time Tasks</h3>
+    <p class="qa">
     The user space library that provides the LITMUS<sup>RT</sup> API, 
     <span class="src">liblitmus</span>, contains two example real-time tasks 
     (<span class="src">base_task.c</span> and 
      <span class="src">base_mt_task.c</span>)
     that both illustrate how to use the API and provide a skeleton for real-time
-    task development. To get started with development, take a look these example
+    task development. To get started with development, please take a look these example
     programs.
     </p>
     <p class="nobottommargin">
@@ -390,9 +400,7 @@ make tests
 
     <p class="nomargin">
     Linux is a registered trademark of Linus Torvalds. <br /> The
-    LITMUS<sup>RT</sup> logo was designed by <a
-    href="http://designs.primevalpress.com">Jasper McChesney</a> of <a
-    href="http://designs.primevalpress.com">Primeval Designs</a>. <br />
+    LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of Primeval Designs. <br />
     Web design by Bj&ouml;rn Brandenburg.
     </p>
 
-- 
cgit v1.2.2