summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuruprasad Aphale <guru@koruna.cs.unc.edu>2010-05-18 17:55:45 -0400
committerGuruprasad Aphale <guru@koruna.cs.unc.edu>2010-05-18 17:55:45 -0400
commit500804f9b4a81e9cf18f3a42f966cad3d241c793 (patch)
tree616f9b546bb7cf198de56b4397939e0bb626c8d3
parentae5c6554d5c5d38f45820171fc069030b16b54f4 (diff)
Revert back Bjoern's changes and added scons -h option
-rw-r--r--index.html1085
1 files changed, 543 insertions, 542 deletions
diff --git a/index.html b/index.html
index bb6c026..2116e9c 100644
--- a/index.html
+++ b/index.html
@@ -1,542 +1,543 @@
1 1
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 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"> 3<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
4 <head> 4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6 <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" /> 6 <meta name="verify-v1" content="pZNmf5XyUUfAPdlSPbFSavMUsLgVsmBYOXzOhbIy2gw=" />
7 <link rel="stylesheet" type="text/css" href="inc/format.css"/> 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> 8 <title>LITMUS RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems</title>
9 </head> 9 </head>
10 <body> 10 <body>
11 <div class="logobox"> 11 <div class="logobox">
12 <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" /> 12 <img src="inc/litmusrt.png" alt="LITMUS^RT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems" />
13 <p class="authors"> 13 <p class="authors">
14 <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson &amp; 14 <a href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson &amp;
15 Students</a>, 15 Students</a>,
16 <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a> 16 <a href="http://www.unc.edu">The University of North Carolina at Chapel Hill</a>
17 </p> 17 </p>
18 18
19 </div> 19 </div>
20 20
21 <div class="nav"> 21 <div class="nav">
22 <p> 22 <p>
23 <a href="#about">about</a> - 23 <a href="#about">about</a> -
24 <a href="#support">support</a> - 24 <a href="#support">support</a> -
25 <a href="#collaborators">collaborators</a> - 25 <a href="#collaborators">collaborators</a> -
26 <a href="#publications">publications</a> - 26 <a href="#publications">publications</a> -
27 <a href="#download">download</a> - 27 <a href="#download">download</a> -
28 <a href="#install">installation</a> - 28 <a href="#install">installation</a> -
29 <a href="#doc">documentation</a> 29 <a href="#doc">documentation</a>
30 </p> 30 </p>
31 </div> 31 </div>
32 32
33 <h2 id="about">About</h2> 33 <h2 id="about">About</h2>
34 <div class="box"> 34 <div class="box">
35 <p class="nomargin"> 35 <p class="nomargin">
36 The LITMUS<sup>RT</sup> project is a soft real-time extension of the Linux 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 37 kernel with focus on multiprocessor real-time scheduling and
38 synchronization. The Linux kernel is modified 38 synchronization. The Linux kernel is modified
39 to support the sporadic task 39 to support the sporadic task
40 model and modular scheduler plugins. Both partitioned and global scheduling 40 model and modular scheduler plugins. Both partitioned and global scheduling
41 is supported. 41 is supported.
42 </p> 42 </p>
43 <h3>Goals</h3> 43 <h3>Goals</h3>
44 <p class="notopmargin"> 44 <p class="notopmargin">
45 The primary purpose of the LITMUS<sup>RT</sup> project is to <strong>provide a useful experimental platform for applied real-time systems research</strong>. In that regard, LITMUS<sup>RT</sup> provides abstractions and interfaces within the kernel that simplify the prototyping of multiprocessor real-time scheduling and synchronization algorithms (compared to modifying a "vanilla" Linux kernel). As a secondary goal, LITMUS<sup>RT</sup> serves as a <strong>proof of concept</strong>, showing that algorithms such as PFAIR can be implemented on current hardware. Finally, we hope that parts of LITMUS<sup>RT</sup> and the "lessons learned" may find value as blueprints/sources of inspiration for other (both commercial and open source) implementation efforts. 45 The primary purpose of the LITMUS<sup>RT</sup> project is to <strong>provide a useful experimental platform for applied real-time systems research</strong>. In that regard, LITMUS<sup>RT</sup> provides abstractions and interfaces within the kernel that simplify the prototyping of multiprocessor real-time scheduling and synchronization algorithms (compared to modifying a "vanilla" Linux kernel). As a secondary goal, LITMUS<sup>RT</sup> serves as a <strong>proof of concept</strong>, showing that algorithms such as PFAIR can be implemented on current hardware. Finally, we hope that parts of LITMUS<sup>RT</sup> and the "lessons learned" may find value as blueprints/sources of inspiration for other (both commercial and open source) implementation efforts.
46 </p> 46 </p>
47 <h3>Non-Goals</h3> 47 <h3>Non-Goals</h3>
48 <p class="notopmargin"> 48 <p class="notopmargin">
49 LITMUS<sup>RT</sup> is not a production-quality system, and we have currently no plans to turn it into one. LITMUS<sup>RT</sup> is not "stable," <em>i.e.</em>, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUS<sup>RT</sup>-API offers alternate system call interfaces. While we aim to follow Linux-coding guidelines, LITMUS<sup>RT</sup> is not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUS<sup>RT</sup> may eventually find adoption in Linux. 49 LITMUS<sup>RT</sup> is not a production-quality system, and we have currently no plans to turn it into one. LITMUS<sup>RT</sup> is not "stable," <em>i.e.</em>, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUS<sup>RT</sup>-API offers alternate system call interfaces. While we aim to follow Linux-coding guidelines, LITMUS<sup>RT</sup> is not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUS<sup>RT</sup> may eventually find adoption in Linux.
50 </p> 50 </p>
51 <h3>Current Version</h3> 51 <h3>Current Version</h3>
52 <p class="notopmargin"> 52 <p class="notopmargin">
53 The current version of LITMUS<sup>RT</sup> is <strong>2010.1</strong> and is based on Linux&nbsp;2.6.32. 53 The current version of LITMUS<sup>RT</sup> is <strong>2010.1</strong> and is based on Linux&nbsp;2.6.32.
54 It was released on 05/12/2010 and includes plugins for the following 54 It was released on 05/12/2010 and includes plugins for the following
55 scheduling policies: 55 scheduling policies:
56 </p> 56 </p>
57 <ul> 57 <ul>
58 <li> Partitioned EDF with synchronization support (PSN-EDF)</li> 58 <li> Partitioned EDF with synchronization support (PSN-EDF)</li>
59 <li> Global EDF with synchronization support (GSN-EDF)</li> 59 <li> Global EDF with synchronization support (GSN-EDF)</li>
60 <li> Clustered EDF (C-EDF) </li> 60 <li> Clustered EDF (C-EDF) </li>
61 <li> PFAIR (both staggered and aligned quanta are supported)</li> 61 <li> PFAIR (both staggered and aligned quanta are supported)</li>
62 </ul> 62 </ul>
63 <p> 63 <p>
64 Please refer to the <a href="#download">download</a> and <a href="#install">installation</a> sections for details. 64 Please refer to the <a href="#download">download</a> and <a href="#install">installation</a> sections for details.
65 </p> 65 </p>
66 <p>Earlier versions (2008.1 &mdash 2008.3),based on Linux &nbsp;2.6.24 and (2007.1 &mdash; 2007.3), based on Linux&nbsp;2.6.20 66 <p>Earlier versions based on Linux &nbsp;2.6.24 and Linux&nbsp;2.6.20,
67 ,support additional scheduling policies, are discussed on separate pages dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2008</a> and <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 </a> series respectively. 67 which supported additional scheduling policies, are discussed on separate pages dedicated to the <a href="litmus2007.html">LITMUS<sup>RT</sup> 2008</a> and <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 </a> series respectively.
68 </p> 68 </p>
69 <p class="nobottommargin"> 69 <p class="nobottommargin">
70 The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006, 70 The first version of LITMUS<sup>RT</sup>, which was implemented in Spring 2006,
71 is based on Linux&nbsp;2.6.9. 71 is based on Linux&nbsp;2.6.9.
72 </p> 72 </p>
73 <h3> Development Plans </h3> 73 <h3> Development Plans </h3>
74 There are plans to port LITMUS<sup>RT</sup> to PowerPC and ARM platforms. Please contact us for details. 74 There are plans to port LITMUS<sup>RT</sup> to PowerPC and ARM platforms. Please contact us for details.
75 </div> 75 </div>
76 <h2 id="support">Support</h2> 76 <h2 id="support">Support</h2>
77 <div class="box"> 77 <div class="box">
78 <p class="nomargin"> 78 <p class="nomargin">
79 The LITMUS<sup>RT</sup> development effort is being supported by grants from, SUN Corp., 79 The LITMUS<sup>RT</sup> development effort is being supported by grants from
80 Intel Corp., IBM Corp., The National Science Foundation (grant CCR 0615197), and The U.S. 80 AT&amp;T, IBM, and Northrop Grumman Corps.; the National Science Foundation (grants CNS 0834270 and CNS 0834132); the U.S.
81 Army Research Office (grant W911NF-06-1-0425). 81 Army Research Office (grant W911NF-09-1-0535); and the Air Force Office of Scientific Research (grant FA 9550-09-1-0549).
82 </p> 82 </p>
83 </div> 83 </div>
84 84
85 <h2 id="collaborators">Collaborators</h2> 85 <h2 id="collaborators">Collaborators</h2>
86 <div class="box"> 86 <div class="box">
87 <p class="notopmargin"> The LITMUS<sup>RT</sup> project is led by <a 87 <p class="notopmargin"> The LITMUS<sup>RT</sup> project is led by <a
88 href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>. 88 href="http://www.cs.unc.edu/~anderson/">Dr. James H. Anderson</a>.
89 </p> 89 </p>
90 <p> 90 <p>
91 The implementation effort is carried out by students of the 91 The implementation effort is carried out by students of the
92 <a href="http://www.cs.unc.edu/~anderson/real-time/">Real-Time Systems 92 <a href="http://www.cs.unc.edu/~anderson/real-time/">Real-Time Systems
93 Group</a> at the <a href="http://www.unc.edu">University of North Carolina 93 Group</a> at the <a href="http://www.unc.edu">University of North Carolina
94 at Chapel Hill</a>: 94 at Chapel Hill</a>:
95 </p> 95 </p>
96 <ul> 96 <ul>
97 <li> 97 <li>
98 <a href="http://www.cs.unc.edu/~bbb/">Bj&ouml;rn B. Brandenburg</a> (current maintainer) 98 <a href="http://www.cs.unc.edu/~bbb/">Bj&ouml;rn B. Brandenburg</a> (current maintainer)
99 </li> 99 </li>
100 <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (Visiting researcher from University of Rome "Tor Vergata") 100 <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (University of Rome "Tor Vergata")
101 </li> 101 </li>
102 </ul> 102 </ul>
103 <p class="nobottommargin"> 103 <p class="nobottommargin">
104 (Additional collaborators for <a href="litmus2008.html#collaborators">LITMUS<sup>RT</sup> 2008 series</a> and <a href="litmus2007.html#collaborators">LITMUS<sup>RT</sup> 2007 series</a> contributed to earlier versions of LITMUS<sup>RT</sup>.) 104 Additional collaborators contributed to the previous <a href="litmus2008.html#collaborators">LITMUS<sup>RT</sup> 2008</a> and the <a href="litmus2007.html#collaborators">LITMUS<sup>RT</sup> 2007</a> versions.
105 </p> 105 </p>
106 </div> 106 </div>
107 107
108 108
109 <h2 id="publications">Publications</h2> 109 <h2 id="publications">Publications</h2>
110 <div class="box"> 110 <div class="box">
111 <ol class="nomargin"> 111
112 <li><p> 112 <ol class="nomargin">
113 B. Brandenburg and J. Anderson, 113 <li><p>
114 &#8220;On the Implementation of Global Real-Time 114 B. Brandenburg and J. Anderson,
115 Schedulers&#8221;, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp.&nbsp;214-224, December 2009. 115 &#8220;On the Implementation of Global Real-Time
116 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>. 116 Schedulers&#8221;, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp.&nbsp;214-224, December 2009.
117 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>. 117 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>.
118 Longer version with all graphs: 118 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>.
119 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>. 119 Longer version with all graphs:
120 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>. 120 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>.
121</p> 121 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>.
122<p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3). 122</p>
123</p> 123<p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3).
124 <ul> 124</p>
125 <li> 125 <ul>
126 <a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a> 126 <li>
127 </li> 127 <a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a>
128 </ul> 128 </li>
129 129 </ul>
130</li> 130
131 <li> 131</li>
132 <p> 132 <li>
133 B. Brandenburg and J. Anderson 133 <p>
134 &ldquo;Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems&rdquo;, 134 B. Brandenburg and J. Anderson
135 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009. 135 &ldquo;Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems&rdquo;,
136 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.pdf">PDF</a>. 136 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009.
137 Long version with blocking terms: 137 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b.pdf">PDF</a>.
138 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.pdf">PDF</a>. 138 Long version with blocking terms:
139 </p> 139 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09b-long.pdf">PDF</a>.
140 </li> 140 </p>
141 141 </li>
142 <li> 142
143 <p> 143 <li>
144 J. Calandrino and J. Anderson 144 <p>
145 &ldquo;On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler&rdquo;, 145 J. Calandrino and J. Anderson
146 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009. 146 &ldquo;On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler&rdquo;,
147 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.pdf">PDF</a>. 147 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009.
148 </p> 148 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ecrts09c.pdf">PDF</a>.
149 </li> 149 </p>
150 150 </li>
151 <li> 151
152 <p> 152 <li>
153 M. Mollison, B. Brandenburg, and J. Anderson 153 <p>
154 &ldquo;Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>&rdquo;, 154 M. Mollison, B. Brandenburg, and J. Anderson
155 <cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009. 155 &ldquo;Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>&rdquo;,
156 <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.pdf">PDF</a>. 156 <cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009.
157 </p> 157 <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.ps">Postscript</a>. <a href="http://www.cs.unc.edu/~anderson/papers/ospert09.pdf">PDF</a>.
158 </li> 158 </p>
159 159 </li>
160 <li> 160
161 <p> 161 <li>
162 B. Brandenburg and J. Anderson, 162 <p>
163 &ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, 163 B. Brandenburg and J. Anderson,
164 <cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008. 164 &ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;,
165 <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>. 165 <cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008.
166 </p> 166 <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>.
167 </li> 167 </p>
168 168 </li>
169 <li> 169
170 <p> 170 <li>
171 B. Brandenburg, J. Calandrino, and J. Anderson, 171 <p>
172 &ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;, 172 B. Brandenburg, J. Calandrino, and J. Anderson,
173 <cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>, 173 &ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;,
174 pp. 157-169, December 2008. 174 <cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>,
175 <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>. 175 pp. 157-169, December 2008.
176 </p> 176 <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>.
177 </li> 177 </p>
178 178 </li>
179 <li> 179
180 <p> 180 <li>
181 B. Brandenburg and J. Anderson, 181 <p>
182 &ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP, 182 B. Brandenburg and J. Anderson,
183 and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;, 183 &ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP,
184 <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008. 184 and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;,
185 <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>. 185 <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008.
186 </p> 186 <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>.
187 <p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of 187 </p>
188 the main distribution. For reference, we provide the branch as a separate download: 188 <p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of
189 </p> 189 the main distribution. For reference, we provide the branch as a separate download:
190 <ul> 190 </p>
191 <li> 191 <ul>
192 <a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a> 192 <li>
193 </li> 193 <a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a>
194 <li> 194 </li>
195 <a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a> 195 <li>
196 </li> 196 <a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a>
197 <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a> 197 </li>
198 </li> 198 <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a>
199 </ul> 199 </li>
200 <p>Please don't use this version for active development. If you are interested in this work, it would be best 200 </ul>
201 to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution. 201 <p>Please don't use this version for active development. If you are interested in this work, it would be best
202 </p> 202 to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution.
203 203 </p>
204 </li> 204
205 205 </li>
206 <li> 206
207 <p> 207 <li>
208 A. Block, B. Brandenburg, J. Anderson, 208 <p>
209 and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;, 209 A. Block, B. Brandenburg, J. Anderson,
210 <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008. 210 and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;,
211 <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>. 211 <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008.
212 </p> 212 <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>.
213 </li> 213 </p>
214 214 </li>
215 <li> 215
216 <p> 216 <li>
217 B. Brandenburg, J. Calandrino, A. Block, 217 <p>
218 H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization 218 B. Brandenburg, J. Calandrino, A. Block,
219 on Multiprocessors: To Block or Not to Block, to Suspend or 219 H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization
220 Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded 220 on Multiprocessors: To Block or Not to Block, to Suspend or
221Technology and Applications Symposium</cite>, pp. 342-353, April 2008. 221 Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded
222 <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>. 222Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
223 </p> 223 <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>.
224 <p> 224 </p>
225 Extended version, including all graphs: 225 <p>
226 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>, 226 Extended version, including all graphs:
227 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>. 227 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>,
228 </p> 228 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>.
229 </li> 229 </p>
230 230 </li>
231 <li> 231
232 <p> 232 <li>
233 B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson, 233 <p>
234 &quot;LITMUS<sup>RT</sup>: A Status Report&quot;, <cite> Proceedings of the 9th 234 B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson,
235 Real-Time Linux Workshop</cite>, pp. 107-123, November 2007. 235 &quot;LITMUS<sup>RT</sup>: A Status Report&quot;, <cite> Proceedings of the 9th
236 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>. 236 Real-Time Linux Workshop</cite>, pp. 107-123, November 2007.
237 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>. 237 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>.
238 </p> 238 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>.
239 </li> 239 </p>
240 240 </li>
241 <li> 241
242 <p> 242 <li>
243 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks 243 <p>
244 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro 244 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
245 Conference on Real-Time Systems</cite>, pp. 61-70, July 2007. 245 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
246 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, 246 Conference on Real-Time Systems</cite>, pp. 61-70, July 2007.
247 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>. 247 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>,
248 </p> 248 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
249 </li> 249 </p>
250 250 </li>
251 251
252 <li> 252
253 <p> 253 <li>
254 J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson, 254 <p>
255 &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time 255 J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson,
256 Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems 256 &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time
257 Symposium</cite>, pp. 111-123, December 2006. 257 Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems
258 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>, 258 Symposium</cite>, pp. 111-123, December 2006.
259 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>. 259 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>,
260 </p> 260 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>.
261 </li> 261 </p>
262 262 </li>
263 </ol> 263
264 </div> 264 </ol>
265 265 </div>
266 <h2 id="download">Download</h2> 266
267 <div class="box"> 267 <h2 id="download">Download</h2>
268 <p class="notopmargin"> 268 <div class="box">
269 The source code of LITMUS<sup>RT</sup> is made available as open source 269 <p class="notopmargin">
270 under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU 270 The source code of LITMUS<sup>RT</sup> is made available as open source
271 General Public License (GPL)</a>. 271 under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU
272 </p> 272 General Public License (GPL)</a>.
273 <p> 273 </p>
274 The current release of LITMUS<sup>RT</sup> is 2010.1. 274 <p>
275 It consists of our Linux kernel modifications in the form of 275 The current release of LITMUS<sup>RT</sup> is 2010.1.
276 a patch against Linux 2.6.32 and 276 It consists of our Linux kernel modifications in the form of
277 277 a patch against Linux 2.6.32 and
278 <span class="src">liblitmus</span>, the user-space API for real-time 278
279 tasks, as well as <span class="src">ft_tools</span>, a collection of tools 279 <span class="src">liblitmus</span>, the user-space API for real-time
280 used for tracing with <a href="http://www.cs.unc.edu/~bbb/feathertrace/">Feather-Trace</a> (which is part of the LITMUS<sup>RT</sup> patch). 280 tasks, as well as <span class="src">ft_tools</span>, a collection of tools
281 </p> 281 used for tracing with <a href="http://www.cs.unc.edu/~bbb/feathertrace/">Feather-Trace</a> (which is part of the LITMUS<sup>RT</sup> patch).
282 282 </p>
283 <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3> 283
284 <div class="release"> 284 <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3>
285 <p> 285 <div class="release">
286 Based on Linux 2.6.32. Released in May 2010. 286 <p>
287 287 Based on Linux 2.6.32. Released in May 2010.
288 </p> 288
289 <h4>Files:</h4> 289 </p>
290 <ul> 290 <h4>Files:</h4>
291 <li> 291 <ul>
292 <a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a> 292 <li>
293 </li> 293 <a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a>
294 <li> 294 </li>
295 <a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a> 295 <li>
296 </li> 296 <a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a>
297 297 </li>
298 <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a> 298
299 </li> 299 <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a>
300 </ul> 300 </li>
301 <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED 301 </ul>
302 <ul> 302 <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED
303 <li> 303 <ul>
304 Changed codebase from Linux 2.6.24 to Linux 2.6.32 304 <li>
305 </li> 305 Changed codebase from Linux 2.6.24 to Linux 2.6.32
306 <li>Several bugfixes.</li> 306 </li>
307 </div> 307 <li>Several bugfixes.</li>
308 308 </div>
309 <p> 309
310 Please note that the current implementation is a <em>prototype</em> with 310 <p>
311 certain limitations. Most notably, it is not secure in a multiuser context, 311 Please note that the current implementation is a <em>prototype</em> with
312 <em>i.e.</em>, real-time system calls do not require superuser 312 certain limitations. Most notably, it is not secure in a multiuser context,
313 privileges. 313 <em>i.e.</em>, real-time system calls do not require superuser
314 </p> 314 privileges.
315 315 </p>
316 <p class="nobottommargin"> 316
317 317 <p class="nobottommargin">
318 Older releases: <a href="litmus2008.html">LITMUS<sup>RT</sup> 2008 series</a>, <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>. 318
319 </p> 319 Older releases: <a href="litmus2008.html">LITMUS<sup>RT</sup> 2008 series</a>, <a href="litmus2007.html">LITMUS<sup>RT</sup> 2007 series</a>.
320 320 </p>
321 </div> 321
322 322 </div>
323 323
324 324
325 <h2 id="install">Installation</h2> 325
326 <div class="box"> 326 <h2 id="install">Installation</h2>
327 <p class="notopmargin"> 327 <div class="box">
328 The current release of LITMUS<sup>RT</sup> consists of an 328 <p class="notopmargin">
329 extension of the Linux kernel that adds support for the sporadic task 329 The current release of LITMUS<sup>RT</sup> consists of an
330 model, a scheduler plugin infrastructure, and some scheduler plugins, as 330 extension of the Linux kernel that adds support for the sporadic task
331 well as a user-space library that provides the LITMUS<sup>RT</sup> 331 model, a scheduler plugin infrastructure, and some scheduler plugins, as
332 real-time API. Note that the current implementation only works on the 332 well as a user-space library that provides the LITMUS<sup>RT</sup>
333 Intel x86-32 and sparc64 architectures. 333 real-time API. Note that the current implementation only works on the
334 </p> 334 Intel x86-32 and x86-64 architectures.
335 <h3>Patching the Kernel</h3> 335 </p>
336 <p class="notopmargin"> 336 <h3>Patching the Kernel</h3>
337 The extension to the Linux kernel is released as a patch against Linux 337 <p class="notopmargin">
338 2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a 338 The extension to the Linux kernel is released as a patch against Linux
339 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux 339 2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a
340 kernel 2.6.32</a> and untar it in a directory of your choice (hereafter 340 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux
341 referred to as <span class="src">$DIR</span>). Second, apply the 341 kernel 2.6.32</a> and untar it in a directory of your choice (hereafter
342 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>) 342 referred to as <span class="src">$DIR</span>). Second, apply the
343 and configure, compile, and install the kernel as usual. The patch is <span 343 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
344 class="src">-p1</span> applicable. 344 and configure, compile, and install the kernel as usual. The patch is <span
345 To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and 345 class="src">-p1</span> applicable.
346 compiled with the following commands: 346 To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and
347 </p> 347 compiled with the following commands:
348<pre class="shell"> 348 </p>
349cd $DIR 349<pre class="shell">
350# get Linux 2.6.32 350cd $DIR
351wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2 351# get Linux 2.6.32
352tar xjf linux-2.6.32.tar.bz2 352wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
353wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch 353tar xjf linux-2.6.32.tar.bz2
354mv linux-2.6.32 litmus2010 354wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch
355# apply the LITMUS RT patch 355mv linux-2.6.32 litmus2010
356cd litmus2010 356# apply the LITMUS RT patch
357patch -p1 &lt; ../litmus-rt-2010.1.patch 357cd litmus2010
358# create a working kernel configuration 358patch -p1 &lt; ../litmus-rt-2010.1.patch
359# - select HZ=1000 359# create a working kernel configuration
360# - enable in-kernel preemptions 360# - select HZ=1000
361# - disable NO_HZ 361# - enable in-kernel preemptions
362# - don't use power management options like frequency scaling 362# - disable NO_HZ
363# - disable support for group scheduling 363# - don't use power management options like frequency scaling
364make menuconfig 364# - disable support for group scheduling
365# compile the kernel 365make menuconfig
366make bzImage 366# compile the kernel
367make modules 367make bzImage
368# proceed to install kernel, build initrd, etc. 368make modules
369... 369# proceed to install kernel, build initrd, etc.
370</pre> 370...
371 <p> 371</pre>
372 When configuring the kernel, note that there is a menu (at the very end of the list) 372 <p>
373 with LITMUS<sup>RT</sup>-specific configuration options. For reference, we provide sample <a href="download/2010.1/32bit-config">32-bit </a> and <a href="download/2010.1/64bit-config">64-bit </a> configurations that are known to work under QEMU</a>. 373 When configuring the kernel, note that there is a menu (at the very end of the list)
374 </p> 374 with LITMUS<sup>RT</sup>-specific configuration options. For reference, we provide sample <a href="download/2010.1/32bit-config">32-bit </a> and <a href="download/2010.1/64bit-config">64-bit </a> configurations that are known to work under QEMU</a>.
375 375 </p>
376 <h3>Libraries</h3> 376
377 <p class="notopmargin"> 377 <h3>Libraries</h3>
378 The user-space library for real-time tasks, <span class="src">liblitmus</span>, 378 <p class="notopmargin">
379 depends on the LITMUS<sup>RT</sup> kernel kernel and provides its own build system (based on <a href="http://www.scons.org/">scons</a>). 379 The user-space library for real-time tasks, <span class="src">liblitmus</span>,
380 In order to compile <span class="src">liblitmus</span>, you need to adjust the 380 depends on the LITMUS<sup>RT</sup> kernel kernel and provides its own build system (based on <a href="http://www.scons.org/">scons</a>).
381 variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your 381 In order to compile <span class="src">liblitmus</span>, you need to adjust the
382 copy of the kernel. Users should not update the <span class="src">SConstruct</span> file manually anymore. Instead, a <span class="src">.config</span> file can be created with appropriate variables. The required variables can be listed using <span class="src"> scons -h </span> command. This command lists the variables required for building the <span class="src"> liblitmus2010 </span> library. <br> 382 variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your
383 Sample output of <span class="src"> scons -h </span> is as shown below. 383 copy of the kernel. Users should not update the <span class="src">SConstruct</span> file manually anymore. Instead, a <span class="src">.config</span> file can be created with appropriate variables. The required variables can be listed using <span class="src"> scons -h </span> command. This command lists the variables required for building the <span class="src"> liblitmus2010 </span> library. <br>
384 </p> 384 Sample output of <span class="src"> scons -h </span> is as shown below.
385 <p> 385 </p>
386 <pre class="shell"> 386 <p>
387scons -h 387 <pre class="shell">
388scons: Reading SConscript files ... 388scons -h
389scons: done reading SConscript files. 389scons: Reading SConscript files ...
390 390scons: done reading SConscript files.
391============================================= 391
392liblitmus --- The LITMUS^RT Userspace Library 392=============================================
393 393liblitmus --- The LITMUS^RT Userspace Library
394There are a number of user-configurable build 394
395variables. These can either be set on the 395There are a number of user-configurable build
396command line (e.g., scons ARCH=x86) or read 396variables. These can either be set on the
397from a local configuration file (.config). 397command line (e.g., scons ARCH=x86) or read
398 398from a local configuration file (.config).
399Run 'scons --dump-config' to see the final 399
400build configuration. 400Run 'scons --dump-config' to see the final
401 401build configuration.
402Build Variables 402
403--------------- 403Build Variables
404 404---------------
405LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL ) 405
406 default: ../litmus2010 406LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL )
407 actual: ../litmus2010 407 default: ../litmus2010
408 408 actual: ../litmus2010
409PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS ) 409
410 default: /usr/include/python2.5 410PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS )
411 actual: /usr/include/python2.5 411 default: /usr/include/python2.5
412 412 actual: /usr/include/python2.5
413ARCH: Target architecture. (x86_64|sparc64|x86|i686) 413
414 default: x86_64 414ARCH: Target architecture. (x86_64|sparc64|x86|i686)
415 actual: x86_64 415 default: x86_64
416 416 actual: x86_64
417WSS: Working set size for pm analysis 417
418 default: 3072 418WSS: Working set size for pm analysis
419 actual: 3072 419 default: 3072
420 420 actual: 3072
421Use scons -H for help about command-line options. 421
422 </pre> 422Use scons -H for help about command-line options.
423 423 </pre>
424<p class="notopmargin"> 424
425 To summarize, the <span class="src"> liblitmus </span> can be obtained and 425<p class="notopmargin">
426 compiled with the following commands: 426 To summarize, the <span class="src"> liblitmus </span> can be obtained and
427</p> 427 compiled with the following commands:
428 428</p>
429<pre class="shell"> 429
430cd $DIR 430<pre class="shell">
431wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz 431cd $DIR
432tar xzf liblitmus-2010.1.tgz 432wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz
433cd liblitmus 433tar xzf liblitmus-2010.1.tgz
434 434cd liblitmus
435# set LITMUS_KERNEL in .config to point to the kernel source and compile 435
436scons 436# set LITMUS_KERNEL in .config to point to the kernel source and compile
437</pre> 437scons
438 <p class="nobottommargin"> 438</pre>
439 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup> 439 <p class="nobottommargin">
440 real-time API as provided by <span class="src">liblitmus</span>. 440 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup>
441 </p> 441 real-time API as provided by <span class="src">liblitmus</span>.
442 442 </p>
443 </div> 443
444 444 </div>
445 445
446 <h2 id="doc">Documentation</h2> 446
447 <div class="box"> 447 <h2 id="doc">Documentation</h2>
448 448 <div class="box">
449 <p class="notopmargin"> 449
450 Unfortunately, most of the documentation has yet to be written. To get an overview of 450 <p class="notopmargin">
451 the architecture of the kernel extension, we recommend reading the paper 451 Unfortunately, most of the documentation has yet to be written. To get an overview of
452 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>: 452 the architecture of the kernel extension, we recommend reading the paper
453 A Status Report&rdquo;</a>. 453 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
454 </p> 454 A Status Report&rdquo;</a>.
455 <h3>Real-Time Scheduling Policies</h3> 455 </p>
456 <p class="qa"> 456 <h3>Real-Time Scheduling Policies</h3>
457 The kernel contains the following real-time scheduling policy implementations: 457 <p class="qa">
458 </p> 458 The kernel contains the following real-time scheduling policy implementations:
459 <ul> 459 </p>
460 <li> 460 <ul>
461 PFAIR, an implementation of the PD<sup>2</sup> algorithm, 461 <li>
462 </li> 462 PFAIR, an implementation of the PD<sup>2</sup> algorithm,
463 <li> 463 </li>
464 PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol 464 <li>
465 FMLP, 465 PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol
466 </li> 466 FMLP,
467 <li> 467 </li>
468 GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol 468 <li>
469 FMLP, 469 GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol
470 </li> 470 FMLP,
471 <li> 471 </li>
472 C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and 472 <li>
473 </li> 473 C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and
474 <li> 474 </li>
475 Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch. 475 <li>
476 </li> 476 Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch.
477 </ul> 477 </li>
478 <p> 478 </ul>
479 Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active. 479 <p>
480 You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display 480 Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active.
481 the name of the currently active policy. 481 You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display
482 </p> 482 the name of the currently active policy.
483 <h3>Changing the Active Policy</h3> 483 </p>
484 <p class="qa"> 484 <h3>Changing the Active Policy</h3>
485 You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>) 485 <p class="qa">
486 to select a new plugin at run time. 486 You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>)
487 </p> 487 to select a new plugin at run time.
488 <div class="screenshot"> 488 </p>
489 <img src="gfx/setsched.png" alt="Screen shot of setsched"/> 489 <div class="screenshot">
490 </div> 490 <img src="gfx/setsched.png" alt="Screen shot of setsched"/>
491 <p> 491 </div>
492 Only root can change the active policy, and only when there are no real-time tasks present. 492 <p>
493 </p> 493 Only root can change the active policy, and only when there are no real-time tasks present.
494 <p> 494 </p>
495 If you do not have the <span class="src">dialog</span> utility installed, then you can still use <span class="src">setsched</span> by passing the desired scheduling policy as a commandline parameter, <em>e.g.</em> type <span class="src"> setsched PFAIR </span> to activate the PFAIR plugin. 495 <p>
496 </p> 496 If you do not have the <span class="src">dialog</span> utility installed, then you can still use <span class="src">setsched</span> by passing the desired scheduling policy as a commandline parameter, <em>e.g.</em> type <span class="src"> setsched PFAIR </span> to activate the PFAIR plugin.
497 <h3>Writing Real-Time Tasks</h3> 497 </p>
498 <p class="qa"> 498 <h3>Writing Real-Time Tasks</h3>
499 The user space library that provides the LITMUS<sup>RT</sup> API, 499 <p class="qa">
500 <span class="src">liblitmus</span>, contains two example real-time tasks 500 The user space library that provides the LITMUS<sup>RT</sup> API,
501 (<span class="src">base_task.c</span> and 501 <span class="src">liblitmus</span>, contains two example real-time tasks
502 <span class="src">base_mt_task.c</span>) 502 (<span class="src">base_task.c</span> and
503 that both illustrate how to use the API and provide a skeleton for real-time 503 <span class="src">base_mt_task.c</span>)
504 task development. To get started with development, please take a look these example 504 that both illustrate how to use the API and provide a skeleton for real-time
505 programs. 505 task development. To get started with development, please take a look these example
506 </p> 506 programs.
507 <h3>Tracing Overheads and Scheduling Decisions</h3> 507 </p>
508 <p class="qa">LITMUS<sup>RT</sup> provides numerous tracing facilities that are discussed in-depth in the tutorial <a href="doc/tracing.html">Tracing with LITMUS<sup>RT</sup></a>. 508 <h3>Tracing Overheads and Scheduling Decisions</h3>
509 </p> 509 <p class="qa">LITMUS<sup>RT</sup> provides numerous tracing facilities that are discussed in-depth in the tutorial <a href="doc/tracing.html">Tracing with LITMUS<sup>RT</sup></a>.
510 <p class="nobottommargin"> 510 </p>
511 Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any 511 <p class="nobottommargin">
512 questions. 512 Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any
513 </p> 513 questions.
514 514 </p>
515 515
516 </div> 516
517 517 </div>
518 <h2 id="credits">Credits</h2> 518
519 <div class="box"> 519 <h2 id="credits">Credits</h2>
520 <div style="float: right;"> 520 <div class="box">
521 <a href="http://validator.w3.org/check?uri=referer"><img 521 <div style="float: right;">
522 src="http://www.w3.org/Icons/valid-xhtml10" 522 <a href="http://validator.w3.org/check?uri=referer"><img
523 alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a> 523 src="http://www.w3.org/Icons/valid-xhtml10"
524 </div> 524 alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a>
525 525 </div>
526 <p class="nomargin"> 526
527 Linux is a registered trademark of Linus Torvalds. <br /> The 527 <p class="nomargin">
528 LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br /> 528 Linux is a registered trademark of Linus Torvalds. <br /> The
529 Web design by Bj&ouml;rn Brandenburg. 529 LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br />
530 </p> 530 Web design by Bj&ouml;rn Brandenburg.
531 531 </p>
532 532
533 </div> 533
534 534 </div>
535<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> 535
536</script> 536<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
537<script type="text/javascript"> 537</script>
538_uacct = "UA-3184628-1"; 538<script type="text/javascript">
539urchinTracker(); 539_uacct = "UA-3184628-1";
540</script> 540urchinTracker();
541</body> 541</script>
542</html> 542</body>
543</html>