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