summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@Serenity.local>2008-07-19 08:07:49 -0400
committerBjoern Brandenburg <bbb@Serenity.local>2008-07-19 08:07:49 -0400
commite7b02b1bfc866f39ee2916f6870f73f5f6447863 (patch)
tree2594db690f4fe431cd89c6b69157d5c74d12cab2
parentb3386bc5a3f1e45bb779bc9c977aeb7530f52b6f (diff)
get rid of the old homepage
-rw-r--r--index.html423
1 files changed, 0 insertions, 423 deletions
diff --git a/index.html b/index.html
deleted file mode 100644
index bc7e42d..0000000
--- a/index.html
+++ /dev/null
@@ -1,423 +0,0 @@
1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" />
7 <link rel="stylesheet" type="text/css" href="inc/format.css"/>
8 <title>LITMUS RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</title>
9 </head>
10 <body>
11 <!--<h1>LITMUS<sup>RT</sup>: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</h1>-->
12 <div class="logobox">
13 <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" />
14 <p class="authors">
15 <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson &amp;
16 Students</a>,
17 <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a>
18 </p>
19
20 </div>
21
22 <div class="nav">
23 <p>
24 <a href="#about">about</a> -
25 <a href="#support">support</a> -
26 <a href="#collaborators">collaborators</a> -
27 <a href="#publications">publications</a> -
28 <a href="#download">download</a> -
29 <a href="#install">installation</a> -
30 <a href="#links">documentation</a>
31 </p>
32 </div>
33
34
35
36 <h2 id="about">About</h2>
37 <div class="box">
38 <p class="nomargin">
39 The LITMUS<sup>RT</sup> project is a soft real-time extension of the Linux
40 kernel with focus on multiprocessor real-time scheduling and
41 synchronization. The Linux kernel (currently, version 2.6.20) is modified
42 to support the sporadic task
43 model and modular scheduler plugins. Both partitioned and global scheduling
44 is supported. In the current version (2007.3), plugins for the following
45 scheduling policies are included:
46 </p>
47 <ul>
48 <li> Partitioned EDF (P-EDF)</li>
49 <li> Partitioned EDF with synchronization support (PSN-EDF)</li>
50 <li> Global EDF (G-EDF)</li>
51 <li> Global EDF with synchronization support (GSN-EDF)</li>
52 <li> Global non-preemptive EDF (G-NP-EDF)</li>
53 <li> Global Feedback-Controlled EDF (FC-EDF)</li>
54 <li> EDF for heterogeneous task systems (EDF-HSB)</li>
55 <li> PFAIR (both staggered and aligned quanta are supported)</li>
56 </ul>
57 <p>
58 The latest public release of LITMUS<sup>RT</sup> occurred on 01/28/2008.
59 <em>This is the last release of the 2007 series.</em> The next
60 LITMUS<sup>RT</sup> release will be based on Linux 2.6.24.
61 </p>
62 </div>
63
64 <h2 id="support">Support</h2>
65 <div class="box">
66 <p class="nomargin">
67 The LITMUS<sup>RT</sup> development effort is being supported by grants from
68 Intel Corp., IBM Corp., The National Science Foundation (grant CCR 0615197), and The U.S.
69 Army Research Office (grant W911NF-06-1-0425).
70 </p>
71 </div>
72
73 <h2 id="collaborators">Collaborators</h2>
74 <div class="box">
75 <p class="nomargin"> The LITMUS<sup>RT</sup> project is led by <a
76 href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>. The
77 implementation effort is carried out by students of the
78 <a href="http://www.cs.unc.edu/rt">Real-Time Systems
79 Group</a> at the <a href="http://www.unc.edu">University of North Carolina
80 at Chapel Hill</a>:
81 </p>
82 <ul>
83
84 <li> <a href="http://www.cs.unc.edu/~block/">Aaron D. Block</a>
85 </li>
86
87 <li> <a href="http://www.cs.unc.edu/~bbb/">Bj&ouml;rn B. Brandenburg</a>
88 </li>
89
90 <li> <a href="http://www.cs.unc.edu/~jmc/">John M. Calandrino</a>
91 </li>
92
93 <li> <a href="http://www.cs.unc.edu/~uma/">UmaMaheswari Devi</a> <em>(graduated
94 Dec. 2006)</em>
95 </li>
96
97 <li> <a href="http://www.cs.unc.edu/~leontyev/">Hennadiy Leontyev</a>
98 </li>
99
100 </ul>
101
102 </div>
103
104
105 <h2 id="publications">Publications</h2>
106 <div class="box">
107
108 <ul class="nomargin">
109
110
111 <li>
112 <p>
113 A. Block, B. Brandenburg, J. Anderson, and S. Quint, &quot;An Adaptive Framework for Multiprocessor Real-Time Systems&quot;, in submission, January 2008.
114 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.ps">Postscript</a>.
115 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts08b.pdf">PDF</a>.
116 </p>
117 </li>
118
119
120
121 <li>
122 <p>
123 B. Brandenburg, J. Calandrino, A. Block, H. Leontyev, and
124 J. Anderson. &quot;Real-Time Synchronization on Multiprocessors: To Block
125 or Not to Block, to Suspend or Spin?&quot;, <cite>
126 Proceedings of the 14th IEEE Real-Time and Embedded Technology and Applications Symposium</cite>, to appear,
127 April 2008.
128 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08a.ps">Postscript</a>,
129 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08a.pdf">PDF</a>.
130 </p>
131 <p>
132 Extended version, including all graphs:
133 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>,
134 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>.
135 </p>
136 </li>
137
138 <li>
139 <p>
140 B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson,
141 &quot; LITMUS<sup>RT</sup>: A Status Report &quot;, <cite> Proceedings of the 9th
142 Real-Time Linux Workshop</cite>, pp. 107-123, November 2007.
143 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>.
144 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>.
145 </p>
146 </li>
147
148 <li>
149 <p>
150 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
151 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
152 Conference on Real-Time Systems</cite>, July 2007, to appear.
153 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>,
154 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
155 </p>
156 </li>
157
158
159 <li>
160 <p>
161 J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson,
162 &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time
163 Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems
164 Symposium</cite>, pp. 111-123, December 2006.
165 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>,
166 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>.
167 </p>
168 </li>
169
170 </ul>
171 </div>
172
173 <h2 id="download">Download</h2>
174 <div class="box">
175 <p class="notopmargin">
176 The source code of LITMUS<sup>RT</sup> is made available as open source
177 under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU
178 General Public License (GPL)</a>.
179 </p>
180 <p>
181 The latest version of LITMUS<sup>RT</sup> is 2007.3 and was released on 01/28/2008.
182 It consists of
183 our Linux kernel modifications in the form of
184 a patch against Linux 2.6.20,
185 <span class="src">liblitmus</span>, the user-space API for real-time tasks,
186 and <span class="src">libso</span>, a library for shared objects that
187 provides synchronization primitives suitable for real-time tasks.
188 </p>
189
190 <ul>
191 <li>
192 2007.3 (January 2008)<br/>
193 Based on Linux 2.6.20. (see <a href="#install">Section Install</a>
194 below) <br/>
195 Files:
196 <ul>
197 <li><a href="download/2007.3/litmus-rt-2007.3.patch">litmus-rt-2007.3.patch</a> (344 KB)</li>
198 <li><a href="download/2007.3/liblitmus-2007.3.tgz">liblitmus-2007.3.tgz</a>
199 (14 KB)</li>
200 <li><a href="download/2007.3/libso-2007.3.tgz">libso-2007.3.tgz</a>
201 (15 KB)</li>
202 <li><a href="download/2007.3/SHA256SUMS">SHA256 check sums.</a>
203 </li>
204 </ul>
205 </li>
206 <li>
207 Major changes:
208 <ul>
209 <li>
210 Support for multi-threaded real-time applications added. The
211 use of <span class="src">libso</span> is no longer required.
212 </li>
213 <li>
214 All allocations (semaphores, etc.) are now dynamic. No more
215 running out of resources.
216 </li>
217 <li>
218 Real-Time tasks do not have be launched with
219 <span class="src">rt_launch</span> anymore. Instead, a new
220 <span class="src">task_mode()</span> API was introduced that
221 allows (Linux) tasks to transition in and out of
222 background task mode (std. Linux task) and LITMUS<sup>RT</sup>
223 real-time task.
224 </li>
225 <li>
226 Many bug fixes.
227 </li>
228 </ul>
229 </li>
230 </ul>
231
232 <p class="nobottommargin">
233 Please note that the current implementation is a <em>prototype</em> with
234 certain limitations. Most notably, it is not secure in a multiuser context,
235 <em>i.e.</em>, real-time system calls do not require superuser
236 privileges. Further, some resources (<em>e.g.</em> semaphores) that
237 should be dynamically allocated are allocated statically in the current version.
238 </p>
239
240 <p class="nobottommargin">
241 Old releases:
242 </p>
243
244 <ul>
245 <li> 2007.2 (November 2007)<br/>
246 Based on Linux 2.6.20. <br/>
247 <a href="download/litmus-rt-2007.2.patch">litmus-rt-2007.2.patch</a>
248 (328 KB)<br/>
249 <a href="download/liblitmus-2007.2.tgz">liblitmus-2007.2.tgz</a>
250 (11 KB) <br/>
251 <a href="download/libso-2007.2.tgz">libso-2007.2.tgz</a>
252 (16 KB) <br/><br/>
253 </li>
254
255 <li> 2007.1 (May 2007)<br/>
256 Based on Linux 2.6.20. <br/>
257 <a href="download/litmus-rt-2007.1.patch">litmus-rt-2007.1.patch</a>
258 (266 KB) <br/>
259 <a href="download/liblitmus-2007.1.tgz">liblitmus-2007.1.tgz</a>
260 (6.8 KB) <br/>
261 <a href="download/libso-2007.1.tgz">libso-2007.1.tgz</a>
262 (16 KB) <br/>
263 </li>
264 </ul>
265
266 </div>
267
268
269 <h2 id="install">Installation</h2>
270 <div class="box">
271 <p class="notopmargin">
272 The current release of LITMUS<sup>RT</sup>, version 2007.2, consists of an
273 extension of the Linux kernel that adds support for the sporadic task
274 model, a scheduler plugin infrastructure, and some scheduler plugins, as
275 well as two user-space libraries that provide the LITMUS<sup>RT</sup>
276 real-time API. Note, that the current implementation only works on the
277 Intel x86 architecture.
278 </p>
279 <h3>Patching the Kernel</h3>
280 <p class="notopmargin">
281 The extension to the Linux kernel is released as a patch against Linux
282 2.6.20. To install the LITMUS<sup>RT</sup> kernel, first <a
283 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2">download the Linux
284 kernel 2.6.20</a> and untar it in a directory of your choice (hereafter
285 referred to as <span class="src">$DIR</span>). Second, apply the
286 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
287 and configure, compile, and install the kernel as usual. The patch is <span
288 class="src">-p1</span> applicable.
289 To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and
290 compiled with the following commands:
291 </p>
292<pre class="shell">
293cd $DIR
294# get Linux 2.6.20
295wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
296tar xjf linux-2.6.20.tar.bz2
297wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/litmus-rt-2007.3.patch
298mv linux-2.6.20 litmus-rt
299# apply the LITMUS RT patch
300cd litmus-rt
301patch -p1 &lt; ../litmus-rt-2007.3.patch
302# create a working kernel configuration with HZ=1000
303make gconfig
304# compile the kernel
305make bzImage
306make modules
307# proceed to install kernel, build initrd, etc.
308...
309</pre>
310 <p>
311 After the kernel has been compiled and installed, the boot-loader must be
312 configured to load the desired real-time scheduler plugin at boot time (run
313 time selection of the real-time scheduler is currently not supported). The
314 real-time scheduler plugin is selected with the <span
315 class="src">rtsched</span> kernel parameter.
316 </p>
317<pre class="shell">
318rtsched= {linux, pfair, part_edf, global_edf,
319 global_edf_np, edf_hsb, gsn_edf, psn_edf, adaptive}
320</pre>
321 <p>
322 For example, on our test machine, we use the
323 following GRUB entry:
324 </p>
325
326<pre class="shell">
327title Kernel 2.6.20-LITMUSRT
328root (hd0,5)
329kernel /boot/vmlinuz-2.6.20-LITMUSRT root=/dev/sda6 ro vga=791 rtsched=gsn_edf
330initrd /boot/kernel-2.6.20-LITMUSRT.img
331</pre>
332
333 <h3>Libraries</h3>
334 <p class="notopmargin">
335 The two user-space libraries, <span class="src">liblitmus</span> and <span
336 class="src">libso</span>, provide their own makefiles and thus are easy to
337 compile. The kernel interface for real-time tasks is provided by <span
338 class="src">liblitmus</span>, which can be compiled as follows:
339 </p>
340<pre class="shell">
341cd $DIR
342wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/liblitmus-2007.3.tgz
343tar xzf liblitmus-2007.3.tgz
344cd liblitmus
345make
346</pre>
347 <p>
348 The second library, <span class="src">libso</span>, provides shared object
349 and synchronization support for real-time tasks. It depends on <span
350 class="src">liblitmus</span> and must be installed in &quot;parallel&quot;
351 (they must have the same parent directory). The following commands will
352 obtain and compile <span class="src">libso</span>, including the test programs:
353 </p>
354<pre class="shell">
355cd $DIR
356wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2007.3/libso-2007.3.tgz
357tar xzf libso-2007.3.tgz
358cd libso
359make
360make tests
361</pre>
362 <p class="nobottommargin">
363 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup>
364 real-time API as provided by <span class="src">libso</span> and
365 <span class="src">liblitmus</span>.
366 </p>
367
368 </div>
369
370
371 <h2 id="doc">Documentation</h2>
372 <div class="box">
373
374 <p class="notopmargin">
375 Most of the documentation has yet to be written. To get an overview of
376 the architecture of the kernel extension, we recommend to read the paper
377 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
378 A Status Report&rdquo;</a>.
379 </p>
380 <p>
381 The user space library that provides the LITMUS<sup>RT</sup> API,
382 <span class="src">liblitmus</span>, contains two example real-time tasks
383 (<span class="src">base_task.c</span> and
384 <span class="src">base_mt_task.c</span>)
385 that both illustrate how to use the API and provide a skeleton for real-time
386 task development. To get started with development, take a look these example
387 programs.
388 </p>
389 <p class="nobottommargin">
390 Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any
391 questions.
392 </p>
393
394
395 </div>
396
397 <h2 id="credits">Credits</h2>
398 <div class="box">
399 <div style="float: right;">
400 <a href="http://validator.w3.org/check?uri=referer"><img
401 src="http://www.w3.org/Icons/valid-xhtml10"
402 alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a>
403 </div>
404
405 <p class="nomargin">
406 Linux is a registered trademark of Linus Torvalds. <br /> The
407 LITMUS<sup>RT</sup> logo was designed by <a
408 href="http://designs.primevalpress.com">Jasper McChesney</a> of <a
409 href="http://designs.primevalpress.com">Primeval Designs</a>. <br />
410 Web design by Bj&ouml;rn Brandenburg.
411 </p>
412
413
414 </div>
415
416<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
417</script>
418<script type="text/javascript">
419_uacct = "UA-3184628-1";
420urchinTracker();
421</script>
422</body>
423</html>