summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@Serenity.local>2008-07-19 08:06:24 -0400
committerBjoern Brandenburg <bbb@Serenity.local>2008-07-19 08:06:24 -0400
commitb3386bc5a3f1e45bb779bc9c977aeb7530f52b6f (patch)
tree35ee2ef75d328f0d6b683f38525e557885ab2b74
parente42e6ebad6e516497b34e6ee0a3ff49839a2caca (diff)
work on the documentation
made it somewhat more pretty
-rw-r--r--gfx/setsched.pngbin0 -> 14816 bytes
-rw-r--r--inc/format.css31
-rw-r--r--index2.html192
3 files changed, 123 insertions, 100 deletions
diff --git a/gfx/setsched.png b/gfx/setsched.png
new file mode 100644
index 0000000..e90c62b
--- /dev/null
+++ b/gfx/setsched.png
Binary files 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 {
15 15
16 16
17body { 17body {
18 background-image : url('gfx/corner.png');
19 background-position : top right; 18 background-position : top right;
20 background-repeat : no-repeat; 19 background-repeat : no-repeat;
21 20
@@ -34,6 +33,16 @@ img {
34 border: 0px; 33 border: 0px;
35} 34}
36 35
36h4 {
37 font-style: italic;
38 margin: 0;
39 padding: 0;
40}
41
42.release {
43 margin-left: 0.5in;
44}
45
37p { 46p {
38 font-size: 12pt; 47 font-size: 12pt;
39 } 48 }
@@ -169,7 +178,7 @@ h1 {
169} 178}
170 179
171h2 { 180h2 {
172 font-size: 13pt; 181 font: italic bold 18pt Georgia, "Times New Roman", Times, serif;
173} 182}
174 183
175 184
@@ -186,6 +195,12 @@ h3 {
186 margin-bottom: 0.1cm; 195 margin-bottom: 0.1cm;
187} 196}
188 197
198.relname {
199 color: #eb4f0c;
200 margin-left: 0.25in;
201 font: italic bold 16pt Georgia, "Times New Roman", Times, serif;
202}
203
189.itext { 204.itext {
190 margin-bottom: 0cm; 205 margin-bottom: 0cm;
191 margin-left: 0.6cm; 206 margin-left: 0.6cm;
@@ -214,14 +229,14 @@ h3 {
214 margin-left: 0.5cm; 229 margin-left: 0.5cm;
215 margin-right: 0.5cm; 230 margin-right: 0.5cm;
216 padding: 0.2cm; 231 padding: 0.2cm;
217 font-family: Courier New, Courier, monospace;
218 font-size: 10pt;
219 font-weight: bold;
220 background-color: #000000; 232 background-color: #000000;
221 color: #cccccc; 233 color: #cccccc;
222 border-color: #00C400; 234 border: 2px solid #eb4f0c;
223 border-width: 1px; 235 font: bold 10pt "Courier New", Courier, mono;
224 border-style: solid; 236}
237
238.qa {
239 margin-top: 0;
225} 240}
226 241
227.flushright { 242.flushright {
diff --git a/index2.html b/index2.html
index 883f9ef..db9ebe4 100644
--- a/index2.html
+++ b/index2.html
@@ -53,13 +53,13 @@
53 </ul> 53 </ul>
54 <p> 54 <p>
55 </p> 55 </p>
56 <p>Earlier versions (2007.1 &mdash; 2007.3), which were based on Linux&nbsp;2.6.20 56 <p>Earlier versions (2007.1 &mdash; 2007.3), which are based on Linux&nbsp;2.6.20
57 and supported additional scheduling policies, are discussed 57 and support additional scheduling policies, are discussed
58 on a separate page dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>. 58 on a separate page dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>.
59 </p> 59 </p>
60 <p class="nobottommargin"> 60 <p class="nobottommargin">
61 The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006, 61 The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006,
62 was based on Linux&nbsp;2.6.9 and never publicly released. 62 is based on Linux&nbsp;2.6.9.
63 </div> 63 </div>
64 64
65 <h2 id="support">Support</h2> 65 <h2 id="support">Support</h2>
@@ -91,7 +91,7 @@
91 </li> 91 </li>
92 </ul> 92 </ul>
93 <p> 93 <p>
94 (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>.) 94 (<a href="litmus2007.html#collaborators">Additional contributors</a> contributed to earlier versions of LITMUS<sup>RT</sup>.)
95 </p> 95 </p>
96 </div> 96 </div>
97 97
@@ -101,45 +101,49 @@
101 101
102 <ol class="nomargin"> 102 <ol class="nomargin">
103 103
104 <li>
105 <p>
106 B. Brandenburg and J. Anderson,
107 &ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, in submission, July 2008.
108 <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>.
109 </p>
110 </li>
104 111
105 <li> 112 <li>
113 <p>
106 B. Brandenburg, J. Calandrino, and J. Anderson, 114 B. Brandenburg, J. Calandrino, and J. Anderson,
107 &ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;, in submission, May 2008. 115 &ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;, in submission, May 2008.
108 <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>. 116 <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>.
117 </p>
109 </li> 118 </li>
110 119
111 <li> 120 <li>
112 B. Brandenburg and J. Anderson, 121 <p>
113 &ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, in submission, April 2008.
114 <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>.
115 </li>
116
117 <li>
118 B. Brandenburg and J. Anderson, 122 B. Brandenburg and J. Anderson,
119 &ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP, 123 &ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP,
120 and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;, 124 and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;,
121 <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, to appear, 2008. 125 <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, to appear, August 2008.
122 <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>. 126 <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>.
127 </p>
123 </li> 128 </li>
124 129
125 <li> 130 <li>
126 A. Block, B. Brandenburg<, J. Anderson, 131 <p>
132 A. Block, B. Brandenburg, J. Anderson,
127 and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;, 133 and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;,
128 <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, to appear, 2008. 134 <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008.
129 <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>. 135 <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>.
130 136 </p>
131 </li> 137 </li>
132 138
133 <li> 139 <li>
140 <p>
134 B. Brandenburg, J. Calandrino, A. Block, 141 B. Brandenburg, J. Calandrino, A. Block,
135 H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization 142 H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization
136 on Multiprocessors: To Block or Not to Block, to Suspend or 143 on Multiprocessors: To Block or Not to Block, to Suspend or
137 Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded 144 Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded
138Technology and Applications Symposium</cite>, pp. 342-353, April 2008. 145Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
139 <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>. 146 <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>.
140 </li>
141
142
143 <p> 147 <p>
144 Extended version, including all graphs: 148 Extended version, including all graphs:
145 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>, 149 <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.
161 <p> 165 <p>
162 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks 166 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
163 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro 167 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
164 Conference on Real-Time Systems</cite>, July 2007, to appear. 168 Conference on Real-Time Systems</cite>, pp. 61-70, July 2007.
165 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, 169 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>,
166 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>. 170 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
167 </p> 171 </p>
@@ -196,13 +200,13 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
196 <span class="src">liblitmus</span>, the user-space API for real-time tasks. 200 <span class="src">liblitmus</span>, the user-space API for real-time tasks.
197 </p> 201 </p>
198 202
203 <h3 class="relname">LITMUS<sup>RT</sup> 2008.1</h3>
204 <div class="release">
205 <p>
206 Based on Linux 2.6.24. Released in July 2008.
207 </p>
208 <h4>Files:</h4>
199 <ul> 209 <ul>
200 <li>
201 2008.1 (July 2008)<br/>
202 Based on Linux 2.6.24. (see <a href="#install">Section Install</a>
203 below) <br/>
204 Files:
205 <ul>
206 <li> 210 <li>
207 <a href="download/2008.1/litmus-rt-2008.1.patch">litmus-rt-2008.1.patch</a> 211 <a href="download/2008.1/litmus-rt-2008.1.patch">litmus-rt-2008.1.patch</a>
208 </li> 212 </li>
@@ -211,10 +215,9 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
211 </li> 215 </li>
212 <li><a href="download/2008.1/SHA256SUMS">SHA256 check sums</a> 216 <li><a href="download/2008.1/SHA256SUMS">SHA256 check sums</a>
213 </li> 217 </li>
214 </ul> 218 </ul>
215 </li> 219
216 <li> 220 <h4>Major changes (since LITMUS<sup>RT</sup> 2007.3):</h4>
217 Major changes (compared to LITMUS<sup>RT</sup> 2007.3):
218 <ul> 221 <ul>
219 <li>LITMUS<sup>RT</sup> was ported to Linux 2.6.24. 222 <li>LITMUS<sup>RT</sup> was ported to Linux 2.6.24.
220 </li> 223 </li>
@@ -235,6 +238,7 @@ Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
235 </ul> 238 </ul>
236 </li> 239 </li>
237 </ul> 240 </ul>
241 </div>
238 242
239 <p> 243 <p>
240 Please note that the current implementation is a <em>prototype</em> with 244 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.
255 <h2 id="install">Installation</h2> 259 <h2 id="install">Installation</h2>
256 <div class="box"> 260 <div class="box">
257 <p class="notopmargin"> 261 <p class="notopmargin">
258 The current release of LITMUS<sup>RT</sup>, version 2007.2, consists of an 262 The current release of LITMUS<sup>RT</sup> consists of an
259 extension of the Linux kernel that adds support for the sporadic task 263 extension of the Linux kernel that adds support for the sporadic task
260 model, a scheduler plugin infrastructure, and some scheduler plugins, as 264 model, a scheduler plugin infrastructure, and some scheduler plugins, as
261 well as two user-space libraries that provide the LITMUS<sup>RT</sup> 265 well as a user-space library that provides the LITMUS<sup>RT</sup>
262 real-time API. Note, that the current implementation only works on the 266 real-time API. Note, that the current implementation only works on the
263 Intel x86 architecture. 267 Intel x86-32 and sparc64 architectures.
264 </p> 268 </p>
265 <h3>Patching the Kernel</h3> 269 <h3>Patching the Kernel</h3>
266 <p class="notopmargin"> 270 <p class="notopmargin">
267 The extension to the Linux kernel is released as a patch against Linux 271 The extension to the Linux kernel is released as a patch against Linux
268 2.6.20. To install the LITMUS<sup>RT</sup> kernel, first <a 272 2.6.24. To install the LITMUS<sup>RT</sup> kernel, first <a
269 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2">download the Linux 273 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2">download the Linux
270 kernel 2.6.20</a> and untar it in a directory of your choice (hereafter 274 kernel 2.6.24</a> and untar it in a directory of your choice (hereafter
271 referred to as <span class="src">$DIR</span>). Second, apply the 275 referred to as <span class="src">$DIR</span>). Second, apply the
272 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>) 276 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
273 and configure, compile, and install the kernel as usual. The patch is <span 277 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.
277 </p> 281 </p>
278<pre class="shell"> 282<pre class="shell">
279cd $DIR 283cd $DIR
280# get Linux 2.6.20 284# get Linux 2.6.24
281wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2 285wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2
282tar xjf linux-2.6.20.tar.bz2 286tar xjf linux-2.6.24.tar.bz2
283wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/litmus-rt-2007.3.patch 287wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2008.1/litmus-rt-2008.1.patch
284mv linux-2.6.20 litmus-rt 288mv linux-2.6.24 litmus2008
285# apply the LITMUS RT patch 289# apply the LITMUS RT patch
286cd litmus-rt 290cd litmus2008
287patch -p1 &lt; ../litmus-rt-2007.3.patch 291patch -p1 &lt; ../litmus-rt-2008.1.patch
288# create a working kernel configuration with HZ=1000 292# create a working kernel configuration with HZ=1000
289make gconfig 293make menuconfig
290# compile the kernel 294# compile the kernel
291make bzImage 295make bzImage
292make modules 296make modules
293# proceed to install kernel, build initrd, etc. 297# proceed to install kernel, build initrd, etc.
294... 298...
295</pre> 299</pre>
296 <p> 300 <p>
297 After the kernel has been compiled and installed, the boot-loader must be 301 When configuring the kernel, note that there is a menu (at the very end of the list)
298 configured to load the desired real-time scheduler plugin at boot time (run 302 with LITMUS<sup>RT</sup>-specific configuration options.
299 time selection of the real-time scheduler is currently not supported). The 303 </p>
300 real-time scheduler plugin is selected with the <span
301 class="src">rtsched</span> kernel parameter.
302 </p>
303<pre class="shell">
304rtsched= {linux, pfair, part_edf, global_edf,
305 global_edf_np, edf_hsb, gsn_edf, psn_edf, adaptive}
306</pre>
307 <p>
308 For example, on our test machine, we use the
309 following GRUB entry:
310 </p>
311
312<pre class="shell">
313title Kernel 2.6.20-LITMUSRT
314root (hd0,5)
315kernel /boot/vmlinuz-2.6.20-LITMUSRT root=/dev/sda6 ro vga=791 rtsched=gsn_edf
316initrd /boot/kernel-2.6.20-LITMUSRT.img
317</pre>
318 304
319 <h3>Libraries</h3> 305 <h3>Libraries</h3>
320 <p class="notopmargin"> 306 <p class="notopmargin">
321 The two user-space libraries, <span class="src">liblitmus</span> and <span 307 The user-space library for real-time tasks, <span class="src">liblitmus</span>,
322 class="src">libso</span>, provide their own makefiles and thus are easy to 308 depends on the LITMUS<sup>RT</sup> kernel kernel and provides its own makefile.
323 compile. The kernel interface for real-time tasks is provided by <span 309 In order to compile <span class="src">liblitmus</span>, you need to adjust the
324 class="src">liblitmus</span>, which can be compiled as follows: 310 variable <span class="src">KERNEL_DIR</span> in the Makfile to point to your
311 copy of the kernel.
325 </p> 312 </p>
326<pre class="shell"> 313<pre class="shell">
327cd $DIR 314cd $DIR
328wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/liblitmus-2007.3.tgz 315wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2008.1/liblitmus-2008.1.tgz
329tar xzf liblitmus-2007.3.tgz 316tar xzf liblitmus-2008.1.tgz
330cd liblitmus 317cd liblitmus
318# change KERNEL_DIR in Makefile to point to the kernel source
331make 319make
332</pre> 320</pre>
333 <p>
334 The second library, <span class="src">libso</span>, provides shared object
335 and synchronization support for real-time tasks. It depends on <span
336 class="src">liblitmus</span> and must be installed in &quot;parallel&quot;
337 (they must have the same parent directory). The following commands will
338 obtain and compile <span class="src">libso</span>, including the test programs:
339 </p>
340<pre class="shell">
341cd $DIR
342wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/libso-2007.3.tgz
343tar xzf libso-2007.3.tgz
344cd libso
345make
346make tests
347</pre>
348 <p class="nobottommargin"> 321 <p class="nobottommargin">
349 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup> 322 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup>
350 real-time API as provided by <span class="src">libso</span> and 323 real-time API as provided by <span class="src">liblitmus</span>.
351 <span class="src">liblitmus</span>.
352 </p> 324 </p>
353 325
354 </div> 326 </div>
@@ -358,18 +330,56 @@ make tests
358 <div class="box"> 330 <div class="box">
359 331
360 <p class="notopmargin"> 332 <p class="notopmargin">
361 Most of the documentation has yet to be written. To get an overview of 333 Unfortunately, most of the documentation has yet to be written. To get an overview of
362 the architecture of the kernel extension, we recommend reading the paper 334 the architecture of the kernel extension, we recommend reading the paper
363 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>: 335 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
364 A Status Report&rdquo;</a>. 336 A Status Report&rdquo;</a>.
365 </p> 337 </p>
338 <h3>Real-Time Scheduling Policies</h3>
339 <p class="qa">
340 The kernel contains the following real-time scheduling policy implementations:
341 </p>
342 <ul>
343 <li>
344 PFAIR, an implementation of the PD<sup>2</sup> algorithm,
345 </li>
346 <li>
347 PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol
348 FMLP,
349 </li>
350 <li>
351 GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol
352 FMLP,
353 </li>
354 <li>
355 C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and
356 </li>
357 <li>
358 Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch.
359 </li>
360 </ul>
366 <p> 361 <p>
362 Only one policy can be active at any time. Initially (<em>i.e.,</em> during boot), the "Linux" policy is active.
363 You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display
364 the name of the currently active policy.
365 </p>
366 <h3>Changing the Active Policy</h3>
367 <p class="qa">
368 You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>)
369 to select a new plugin at run time.
370 <div align="center">
371 <img class="screenshot" src="gfx/setsched.png" alt="Screen shot of setsched"/>
372 </div>
373 Only root can change the active policy, and only when there are no real-time tasks present.
374 </p>
375 <h3>Writing Real-Time Tasks</h3>
376 <p class="qa">
367 The user space library that provides the LITMUS<sup>RT</sup> API, 377 The user space library that provides the LITMUS<sup>RT</sup> API,
368 <span class="src">liblitmus</span>, contains two example real-time tasks 378 <span class="src">liblitmus</span>, contains two example real-time tasks
369 (<span class="src">base_task.c</span> and 379 (<span class="src">base_task.c</span> and
370 <span class="src">base_mt_task.c</span>) 380 <span class="src">base_mt_task.c</span>)
371 that both illustrate how to use the API and provide a skeleton for real-time 381 that both illustrate how to use the API and provide a skeleton for real-time
372 task development. To get started with development, take a look these example 382 task development. To get started with development, please take a look these example
373 programs. 383 programs.
374 </p> 384 </p>
375 <p class="nobottommargin"> 385 <p class="nobottommargin">
@@ -390,9 +400,7 @@ make tests
390 400
391 <p class="nomargin"> 401 <p class="nomargin">
392 Linux is a registered trademark of Linus Torvalds. <br /> The 402 Linux is a registered trademark of Linus Torvalds. <br /> The
393 LITMUS<sup>RT</sup> logo was designed by <a 403 LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of Primeval Designs. <br />
394 href="http://designs.primevalpress.com">Jasper McChesney</a> of <a
395 href="http://designs.primevalpress.com">Primeval Designs</a>. <br />
396 Web design by Bj&ouml;rn Brandenburg. 404 Web design by Bj&ouml;rn Brandenburg.
397 </p> 405 </p>
398 406