summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@sprg.uniroma2.it>2010-05-19 12:07:15 -0400
committerAndrea Bastoni <bastoni@sprg.uniroma2.it>2010-05-19 12:07:15 -0400
commit72b8b7279b3e5d327f078cadc3c351ca2d6adeab (patch)
treebb1273b17c56180327e9246a27a14606c6c66a22
parent500804f9b4a81e9cf18f3a42f966cad3d241c793 (diff)
Revert "Revert back Bjoern's changes and added scons -h option"
This reverts commit 500804f9b4a81e9cf18f3a42f966cad3d241c793.
-rw-r--r--index.html1085
1 files changed, 542 insertions, 543 deletions
diff --git a/index.html b/index.html
index 2116e9c..bb6c026 100644
--- a/index.html
+++ b/index.html
@@ -1,543 +1,542 @@
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 based on Linux &nbsp;2.6.24 and Linux&nbsp;2.6.20, 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
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. 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.
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 79 The LITMUS<sup>RT</sup> development effort is being supported by grants from, SUN Corp.,
80 AT&amp;T, IBM, and Northrop Grumman Corps.; the National Science Foundation (grants CNS 0834270 and CNS 0834132); the U.S. 80 Intel Corp., IBM Corp., The National Science Foundation (grant CCR 0615197), and The U.S.
81 Army Research Office (grant W911NF-09-1-0535); and the Air Force Office of Scientific Research (grant FA 9550-09-1-0549). 81 Army Research Office (grant W911NF-06-1-0425).
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> (University of Rome "Tor Vergata") 100 <li> <a href="http://www.sprg.uniroma2.it/home/bastoni/">Andrea Bastoni</a> (Visiting researcher from University of Rome "Tor Vergata")
101 </li> 101 </li>
102 </ul> 102 </ul>
103 <p class="nobottommargin"> 103 <p class="nobottommargin">
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. 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>.)
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 111 <ol class="nomargin">
112 <ol class="nomargin"> 112 <li><p>
113 <li><p> 113 B. Brandenburg and J. Anderson,
114 B. Brandenburg and J. Anderson, 114 &#8220;On the Implementation of Global Real-Time
115 &#8220;On the Implementation of Global Real-Time 115 Schedulers&#8221;, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp.&nbsp;214-224, December 2009.
116 Schedulers&#8221;, <cite>Proceedings of the 30th IEEE Real-Time Systems Symposium</cite>, pp.&nbsp;214-224, December 2009. 116 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>.
117 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.ps">Postscript</a>. 117 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>.
118 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a.pdf">PDF</a>. 118 Longer version with all graphs:
119 Longer version with all graphs: 119 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>.
120 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.ps">Postscript</a>. 120 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>.
121 <a href="http://www.cs.unc.edu/~anderson/papers/rtss09a_long.pdf">PDF</a>. 121</p>
122</p> 122<p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3).
123<p> For reference, all evaluated plugins are provided as part of the following patch (against version 2008.3). 123</p>
124</p> 124 <ul>
125 <ul> 125 <li>
126 <li> 126 <a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a>
127 <a href="download/RTSS09/litmus-rt-RTSS09.patch">litmus-rt-RTSS09.patch</a> 127 </li>
128 </li> 128 </ul>
129 </ul> 129
130 130</li>
131</li> 131 <li>
132 <li> 132 <p>
133 <p> 133 B. Brandenburg and J. Anderson
134 B. Brandenburg and J. Anderson 134 &ldquo;Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems&rdquo;,
135 &ldquo;Reader-Writer Synchronization for Shared-Memory Multiprocessor Real-Time Systems&rdquo;, 135 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009.
136 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 184-193, July 2009. 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>.
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>. 137 Long version with blocking terms:
138 Long version with blocking terms: 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>.
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>. 139 </p>
140 </p> 140 </li>
141 </li> 141
142 142 <li>
143 <li> 143 <p>
144 <p> 144 J. Calandrino and J. Anderson
145 J. Calandrino and J. Anderson 145 &ldquo;On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler&rdquo;,
146 &ldquo;On the Design and Implementation of a Cache-Aware Multicore Real-Time Scheduler&rdquo;, 146 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009.
147 <cite>Proceedings of the 21st Euromicro Conference on Real-Time Systems</cite>, pp. 194-204, July 2009. 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>.
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>. 148 </p>
149 </p> 149 </li>
150 </li> 150
151 151 <li>
152 <li> 152 <p>
153 <p> 153 M. Mollison, B. Brandenburg, and J. Anderson
154 M. Mollison, B. Brandenburg, and J. Anderson 154 &ldquo;Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>&rdquo;,
155 &ldquo;Towards Unit Testing Real-Time Schedulers in LITMUS<sup>RT</sup>&rdquo;, 155 <cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009.
156 <cite>Proceedings of the Fifth International Workshop on Operating Systems Platforms for Embedded Real-Time Applications</cite>, pp. 33-39, July 2009. 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>.
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>. 157 </p>
158 </p> 158 </li>
159 </li> 159
160 160 <li>
161 <li> 161 <p>
162 <p> 162 B. Brandenburg and J. Anderson,
163 B. Brandenburg and J. Anderson, 163 &ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;,
164 &ldquo;A Comparison of the M-PCP, D-PCP, and FMLP on LITMUS<sup>RT</sup>&rdquo;, 164 <cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008.
165 <cite>Proceedings of the 12th International Conference on Principles of Distributed Systems</cite>, pp. 105-124, December 2008. 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>.
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>. 166 </p>
167 </p> 167 </li>
168 </li> 168
169 169 <li>
170 <li> 170 <p>
171 <p> 171 B. Brandenburg, J. Calandrino, and J. Anderson,
172 B. Brandenburg, J. Calandrino, and J. Anderson, 172 &ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;,
173 &ldquo;On the Scalability of Real-Time Scheduling Algorithms on Multicore Platforms: A Case Study&rdquo;, 173 <cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>,
174 <cite>Proceedings of the 29th IEEE Real-Time Systems Symposium</cite>, 174 pp. 157-169, December 2008.
175 pp. 157-169, December 2008. 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>.
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>. 176 </p>
177 </p> 177 </li>
178 </li> 178
179 179 <li>
180 <li> 180 <p>
181 <p> 181 B. Brandenburg and J. Anderson,
182 B. Brandenburg and J. Anderson, 182 &ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP,
183 &ldquo;An Implementation of the PCP, SRP, D-PCP, M-PCP, 183 and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;,
184 and FMLP Real-Time Synchronization Protocols in LITMUS<sup>RT</sup>&rdquo;, 184 <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008.
185 <cite>Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications</cite>, pp. 185-194, August 2008. 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>.
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>. 186 </p>
187 </p> 187 <p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of
188 <p><strong>Note:</strong> The work described in this paper took part in a branch that is currently not part of 188 the main distribution. For reference, we provide the branch as a separate download:
189 the main distribution. For reference, we provide the branch as a separate download: 189 </p>
190 </p> 190 <ul>
191 <ul> 191 <li>
192 <li> 192 <a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a>
193 <a href="download/RTCSA08/litmus-rt-RTCSA08.patch">litmus-rt-RTCSA08.patch</a> 193 </li>
194 </li> 194 <li>
195 <li> 195 <a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a>
196 <a href="download/RTCSA08/liblitmus-RTCSA08.tgz">liblitmus-RTCSA08.tgz</a> 196 </li>
197 </li> 197 <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a>
198 <li><a href="download/RTCSA08/SHA256SUMS">SHA256 check sums</a> 198 </li>
199 </li> 199 </ul>
200 </ul> 200 <p>Please don't use this version for active development. If you are interested in this work, it would be best
201 <p>Please don't use this version for active development. If you are interested in this work, it would be best 201 to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution.
202 to first port the desired features to a current version of LTIMUS<sup>RT</sup> and merge them into the main distribution. 202 </p>
203 </p> 203
204 204 </li>
205 </li> 205
206 206 <li>
207 <li> 207 <p>
208 <p> 208 A. Block, B. Brandenburg, J. Anderson,
209 A. Block, B. Brandenburg, J. Anderson, 209 and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;,
210 and S. Quint, &ldquo;An Adaptive Framework for Multiprocessor Real-Time Systems&rdquo;, 210 <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008.
211 <cite>Proceedings of the 20th Euromicro Conference on Real-Time Systems</cite>, pp. 23-33, July 2008. 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>.
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>. 212 </p>
213 </p> 213 </li>
214 </li> 214
215 215 <li>
216 <li> 216 <p>
217 <p> 217 B. Brandenburg, J. Calandrino, A. Block,
218 B. Brandenburg, J. Calandrino, A. Block, 218 H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization
219 H. Leontyev, and J. Anderson, &ldquo;Real-Time Synchronization 219 on Multiprocessors: To Block or Not to Block, to Suspend or
220 on Multiprocessors: To Block or Not to Block, to Suspend or 220 Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded
221 Spin?&rdquo;, <cite> Proceedings of the 14th IEEE Real-Time and Embedded 221Technology and Applications Symposium</cite>, pp. 342-353, April 2008.
222Technology and Applications Symposium</cite>, pp. 342-353, April 2008. 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>.
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>. 223 </p>
224 </p> 224 <p>
225 <p> 225 Extended version, including all graphs:
226 Extended version, including all graphs: 226 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>,
227 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.ps">Postscript</a>, 227 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>.
228 <a href="http://www.cs.unc.edu/~anderson/papers/rtas08along.pdf">PDF</a>. 228 </p>
229 </p> 229 </li>
230 </li> 230
231 231 <li>
232 <li> 232 <p>
233 <p> 233 B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson,
234 B. Brandenburg, A. Block, J. Calandrino, U. Devi, H. Leontyev, and J. Anderson, 234 &quot;LITMUS<sup>RT</sup>: A Status Report&quot;, <cite> Proceedings of the 9th
235 &quot;LITMUS<sup>RT</sup>: A Status Report&quot;, <cite> Proceedings of the 9th 235 Real-Time Linux Workshop</cite>, pp. 107-123, November 2007.
236 Real-Time Linux Workshop</cite>, pp. 107-123, November 2007. 236 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>.
237 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.ps">Postscript</a>. 237 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>.
238 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">PDF</a>. 238 </p>
239 </p> 239 </li>
240 </li> 240
241 241 <li>
242 <li> 242 <p>
243 <p> 243 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks
244 B. Brandenburg and J. Anderson, &quot;Integrating Hard/Soft Real-Time Tasks 244 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro
245 and Best-Effort Jobs on Multiprocessors&quot;, <cite> Proceedings of the 19th Euromicro 245 Conference on Real-Time Systems</cite>, pp. 61-70, July 2007.
246 Conference on Real-Time Systems</cite>, pp. 61-70, July 2007. 246 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>,
247 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.ps">Postscript</a>, 247 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>.
248 <a href="http://www.cs.unc.edu/~anderson/papers/ecrts07b.pdf">PDF</a>. 248 </p>
249 </p> 249 </li>
250 </li> 250
251 251
252 252 <li>
253 <li> 253 <p>
254 <p> 254 J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson,
255 J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson, 255 &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time
256 &quot;LITMUS<sup>RT</sup>: A Testbed for Empirically Comparing Real-Time 256 Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems
257 Multiprocessor Schedulers &quot;, <cite>Proceedings of the 27th IEEE Real-Time Systems 257 Symposium</cite>, pp. 111-123, December 2006.
258 Symposium</cite>, pp. 111-123, December 2006. 258 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>,
259 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.ps">Postscript</a>, 259 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>.
260 <a href="http://www.cs.unc.edu/~anderson/papers/rtss06b.pdf">PDF</a>. 260 </p>
261 </p> 261 </li>
262 </li> 262
263 263 </ol>
264 </ol> 264 </div>
265 </div> 265
266 266 <h2 id="download">Download</h2>
267 <h2 id="download">Download</h2> 267 <div class="box">
268 <div class="box"> 268 <p class="notopmargin">
269 <p class="notopmargin"> 269 The source code of LITMUS<sup>RT</sup> is made available as open source
270 The source code of LITMUS<sup>RT</sup> is made available as open source 270 under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU
271 under the terms of the <a href="http://www.gnu.org/licenses/gpl.txt">GNU 271 General Public License (GPL)</a>.
272 General Public License (GPL)</a>. 272 </p>
273 </p> 273 <p>
274 <p> 274 The current release of LITMUS<sup>RT</sup> is 2010.1.
275 The current release of LITMUS<sup>RT</sup> is 2010.1. 275 It consists of our Linux kernel modifications in the form of
276 It consists of our Linux kernel modifications in the form of 276 a patch against Linux 2.6.32 and
277 a patch against Linux 2.6.32 and 277
278 278 <span class="src">liblitmus</span>, the user-space API for real-time
279 <span class="src">liblitmus</span>, the user-space API for real-time 279 tasks, as well as <span class="src">ft_tools</span>, a collection of tools
280 tasks, as well as <span class="src">ft_tools</span>, a collection of tools 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).
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). 281 </p>
282 </p> 282
283 283 <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3>
284 <h3 class="relname">LITMUS<sup>RT</sup> 2010.1</h3> 284 <div class="release">
285 <div class="release"> 285 <p>
286 <p> 286 Based on Linux 2.6.32. Released in May 2010.
287 Based on Linux 2.6.32. Released in May 2010. 287
288 288 </p>
289 </p> 289 <h4>Files:</h4>
290 <h4>Files:</h4> 290 <ul>
291 <ul> 291 <li>
292 <li> 292 <a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a>
293 <a href="download/2010.1/litmus-rt-2010.1.patch">litmus-rt-2010.1.patch</a> 293 </li>
294 </li> 294 <li>
295 <li> 295 <a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a>
296 <a href="download/2010.1/liblitmus-2010.1.tgz">liblitmus-2010.1.tgz</a> 296 </li>
297 </li> 297
298 298 <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a>
299 <li><a href="download/2010.1/SHA256SUMS">SHA256 check sums</a> 299 </li>
300 </li> 300 </ul>
301 </ul> 301 <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED
302 <h4>Major changes (since LITMUS<sup>RT</sup> 2008.3):</h4> TO BE UPDATED 302 <ul>
303 <ul> 303 <li>
304 <li> 304 Changed codebase from Linux 2.6.24 to Linux 2.6.32
305 Changed codebase from Linux 2.6.24 to Linux 2.6.32 305 </li>
306 </li> 306 <li>Several bugfixes.</li>
307 <li>Several bugfixes.</li> 307 </div>
308 </div> 308
309 309 <p>
310 <p> 310 Please note that the current implementation is a <em>prototype</em> with
311 Please note that the current implementation is a <em>prototype</em> with 311 certain limitations. Most notably, it is not secure in a multiuser context,
312 certain limitations. Most notably, it is not secure in a multiuser context, 312 <em>i.e.</em>, real-time system calls do not require superuser
313 <em>i.e.</em>, real-time system calls do not require superuser 313 privileges.
314 privileges. 314 </p>
315 </p> 315
316 316 <p class="nobottommargin">
317 <p class="nobottommargin"> 317
318 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>.
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>. 319 </p>
320 </p> 320
321 321 </div>
322 </div> 322
323 323
324 324
325 325 <h2 id="install">Installation</h2>
326 <h2 id="install">Installation</h2> 326 <div class="box">
327 <div class="box"> 327 <p class="notopmargin">
328 <p class="notopmargin"> 328 The current release of LITMUS<sup>RT</sup> consists of an
329 The current release of LITMUS<sup>RT</sup> consists of an 329 extension of the Linux kernel that adds support for the sporadic task
330 extension of the Linux kernel that adds support for the sporadic task 330 model, a scheduler plugin infrastructure, and some scheduler plugins, as
331 model, a scheduler plugin infrastructure, and some scheduler plugins, as 331 well as a user-space library that provides the LITMUS<sup>RT</sup>
332 well as a user-space library that provides the LITMUS<sup>RT</sup> 332 real-time API. Note that the current implementation only works on the
333 real-time API. Note that the current implementation only works on the 333 Intel x86-32 and sparc64 architectures.
334 Intel x86-32 and x86-64 architectures. 334 </p>
335 </p> 335 <h3>Patching the Kernel</h3>
336 <h3>Patching the Kernel</h3> 336 <p class="notopmargin">
337 <p class="notopmargin"> 337 The extension to the Linux kernel is released as a patch against Linux
338 The extension to the Linux kernel is released as a patch against Linux 338 2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a
339 2.6.32. To install the LITMUS<sup>RT</sup> kernel, first <a 339 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux
340 href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2">download the Linux 340 kernel 2.6.32</a> and untar it in a directory of your choice (hereafter
341 kernel 2.6.32</a> and untar it in a directory of your choice (hereafter 341 referred to as <span class="src">$DIR</span>). Second, apply the
342 referred to as <span class="src">$DIR</span>). Second, apply the 342 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>)
343 LITMUS<sup>RT</sup> patch (see <a href="#download">Section Download</a>) 343 and configure, compile, and install the kernel as usual. The patch is <span
344 and configure, compile, and install the kernel as usual. The patch is <span 344 class="src">-p1</span> applicable.
345 class="src">-p1</span> applicable. 345 To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and
346 To summarize, the LITMUS<sup>RT</sup> kernel can be obtained, patched, and 346 compiled with the following commands:
347 compiled with the following commands: 347 </p>
348 </p> 348<pre class="shell">
349<pre class="shell"> 349cd $DIR
350cd $DIR 350# get Linux 2.6.32
351# get Linux 2.6.32 351wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
352wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2 352tar xjf linux-2.6.32.tar.bz2
353tar xjf linux-2.6.32.tar.bz2 353wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch
354wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/litmus-rt-2010.1.patch 354mv linux-2.6.32 litmus2010
355mv linux-2.6.32 litmus2010 355# apply the LITMUS RT patch
356# apply the LITMUS RT patch 356cd litmus2010
357cd litmus2010 357patch -p1 &lt; ../litmus-rt-2010.1.patch
358patch -p1 &lt; ../litmus-rt-2010.1.patch 358# create a working kernel configuration
359# create a working kernel configuration 359# - select HZ=1000
360# - select HZ=1000 360# - enable in-kernel preemptions
361# - enable in-kernel preemptions 361# - disable NO_HZ
362# - disable NO_HZ 362# - don't use power management options like frequency scaling
363# - don't use power management options like frequency scaling 363# - disable support for group scheduling
364# - disable support for group scheduling 364make menuconfig
365make menuconfig 365# compile the kernel
366# compile the kernel 366make bzImage
367make bzImage 367make modules
368make modules 368# proceed to install kernel, build initrd, etc.
369# proceed to install kernel, build initrd, etc. 369...
370... 370</pre>
371</pre> 371 <p>
372 <p> 372 When configuring the kernel, note that there is a menu (at the very end of the list)
373 When configuring the kernel, note that there is a menu (at the very end of the list) 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>.
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>. 374 </p>
375 </p> 375
376 376 <h3>Libraries</h3>
377 <h3>Libraries</h3> 377 <p class="notopmargin">
378 <p class="notopmargin"> 378 The user-space library for real-time tasks, <span class="src">liblitmus</span>,
379 The user-space library for real-time tasks, <span class="src">liblitmus</span>, 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>).
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>). 380 In order to compile <span class="src">liblitmus</span>, you need to adjust the
381 In order to compile <span class="src">liblitmus</span>, you need to adjust the 381 variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your
382 variable <span class="src">LITMUS_KERNEL</span> in the <span class="src">SConstruct</span> file to point to your 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>
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> 383 Sample output of <span class="src"> scons -h </span> is as shown below.
384 Sample output of <span class="src"> scons -h </span> is as shown below. 384 </p>
385 </p> 385 <p>
386 <p> 386 <pre class="shell">
387 <pre class="shell"> 387scons -h
388scons -h 388scons: Reading SConscript files ...
389scons: Reading SConscript files ... 389scons: done reading SConscript files.
390scons: done reading SConscript files. 390
391 391=============================================
392============================================= 392liblitmus --- The LITMUS^RT Userspace Library
393liblitmus --- The LITMUS^RT Userspace Library 393
394 394There are a number of user-configurable build
395There are a number of user-configurable build 395variables. These can either be set on the
396variables. These can either be set on the 396command line (e.g., scons ARCH=x86) or read
397command line (e.g., scons ARCH=x86) or read 397from a local configuration file (.config).
398from a local configuration file (.config). 398
399 399Run 'scons --dump-config' to see the final
400Run 'scons --dump-config' to see the final 400build configuration.
401build configuration. 401
402 402Build Variables
403Build Variables 403---------------
404--------------- 404
405 405LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL )
406LITMUS_KERNEL: Where to find the LITMUS^RT kernel. ( /path/to/LITMUS_KERNEL ) 406 default: ../litmus2010
407 default: ../litmus2010 407 actual: ../litmus2010
408 actual: ../litmus2010 408
409 409PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS )
410PYTHON_HEADERS: Where to find Python headers. ( /path/to/PYTHON_HEADERS ) 410 default: /usr/include/python2.5
411 default: /usr/include/python2.5 411 actual: /usr/include/python2.5
412 actual: /usr/include/python2.5 412
413 413ARCH: Target architecture. (x86_64|sparc64|x86|i686)
414ARCH: Target architecture. (x86_64|sparc64|x86|i686) 414 default: x86_64
415 default: x86_64 415 actual: x86_64
416 actual: x86_64 416
417 417WSS: Working set size for pm analysis
418WSS: Working set size for pm analysis 418 default: 3072
419 default: 3072 419 actual: 3072
420 actual: 3072 420
421 421Use scons -H for help about command-line options.
422Use scons -H for help about command-line options. 422 </pre>
423 </pre> 423
424 424<p class="notopmargin">
425<p class="notopmargin"> 425 To summarize, the <span class="src"> liblitmus </span> can be obtained and
426 To summarize, the <span class="src"> liblitmus </span> can be obtained and 426 compiled with the following commands:
427 compiled with the following commands: 427</p>
428</p> 428
429 429<pre class="shell">
430<pre class="shell"> 430cd $DIR
431cd $DIR 431wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz
432wget http://www.cs.unc.edu/~anderson/litmus-rt/download/2010.1/liblitmus-2010.1.tgz 432tar xzf liblitmus-2010.1.tgz
433tar xzf liblitmus-2010.1.tgz 433cd liblitmus
434cd liblitmus 434
435 435# set LITMUS_KERNEL in .config to point to the kernel source and compile
436# set LITMUS_KERNEL in .config to point to the kernel source and compile 436scons
437scons 437</pre>
438</pre> 438 <p class="nobottommargin">
439 <p class="nobottommargin"> 439 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup>
440 Please refer to the <a href="#doc">documentation</a> on how to use the LITMUS<sup>RT</sup> 440 real-time API as provided by <span class="src">liblitmus</span>.
441 real-time API as provided by <span class="src">liblitmus</span>. 441 </p>
442 </p> 442
443 443 </div>
444 </div> 444
445 445
446 446 <h2 id="doc">Documentation</h2>
447 <h2 id="doc">Documentation</h2> 447 <div class="box">
448 <div class="box"> 448
449 449 <p class="notopmargin">
450 <p class="notopmargin"> 450 Unfortunately, most of the documentation has yet to be written. To get an overview of
451 Unfortunately, most of the documentation has yet to be written. To get an overview of 451 the architecture of the kernel extension, we recommend reading the paper
452 the architecture of the kernel extension, we recommend reading the paper 452 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>:
453 <a href="http://www.cs.unc.edu/~anderson/papers/rtlws07.pdf">&ldquo;LITMUS<sup>RT</sup>: 453 A Status Report&rdquo;</a>.
454 A Status Report&rdquo;</a>. 454 </p>
455 </p> 455 <h3>Real-Time Scheduling Policies</h3>
456 <h3>Real-Time Scheduling Policies</h3> 456 <p class="qa">
457 <p class="qa"> 457 The kernel contains the following real-time scheduling policy implementations:
458 The kernel contains the following real-time scheduling policy implementations: 458 </p>
459 </p> 459 <ul>
460 <ul> 460 <li>
461 <li> 461 PFAIR, an implementation of the PD<sup>2</sup> algorithm,
462 PFAIR, an implementation of the PD<sup>2</sup> algorithm, 462 </li>
463 </li> 463 <li>
464 <li> 464 PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol
465 PSN-EDF, a partitioned EDF (P-EDF) implementation with support for the real-time synchronization protocol 465 FMLP,
466 FMLP, 466 </li>
467 </li> 467 <li>
468 <li> 468 GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol
469 GSN-EDF, a global EDF (G-EDF) implementation with support for the real-time synchronization protocol 469 FMLP,
470 FMLP, 470 </li>
471 </li> 471 <li>
472 <li> 472 C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and
473 C-EDF (Clustered EDF), a hybrid of G-EDF and P-EDF, and 473 </li>
474 </li> 474 <li>
475 <li> 475 Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch.
476 Linux, a placeholder policy that disables all real-time functionality added by the LITMUS<sup>RT</sup> patch. 476 </li>
477 </li> 477 </ul>
478 </ul> 478 <p>
479 <p> 479 Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active.
480 Only one policy can be active at any time. Initially (<em>i.e.,</em> during and after boot), the "Linux" policy is active. 480 You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display
481 You can use the tool <span class="src">showsched</span> (part of <span class="src">liblitmus</span>) to display 481 the name of the currently active policy.
482 the name of the currently active policy. 482 </p>
483 </p> 483 <h3>Changing the Active Policy</h3>
484 <h3>Changing the Active Policy</h3> 484 <p class="qa">
485 <p class="qa"> 485 You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>)
486 You can use the tool <span class="src">setsched</span> (part of <span class="src">liblitmus</span>) 486 to select a new plugin at run time.
487 to select a new plugin at run time. 487 </p>
488 </p> 488 <div class="screenshot">
489 <div class="screenshot"> 489 <img src="gfx/setsched.png" alt="Screen shot of setsched"/>
490 <img src="gfx/setsched.png" alt="Screen shot of setsched"/> 490 </div>
491 </div> 491 <p>
492 <p> 492 Only root can change the active policy, and only when there are no real-time tasks present.
493 Only root can change the active policy, and only when there are no real-time tasks present. 493 </p>
494 </p> 494 <p>
495 <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.
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. 496 </p>
497 </p> 497 <h3>Writing Real-Time Tasks</h3>
498 <h3>Writing Real-Time Tasks</h3> 498 <p class="qa">
499 <p class="qa"> 499 The user space library that provides the LITMUS<sup>RT</sup> API,
500 The user space library that provides the LITMUS<sup>RT</sup> API, 500 <span class="src">liblitmus</span>, contains two example real-time tasks
501 <span class="src">liblitmus</span>, contains two example real-time tasks 501 (<span class="src">base_task.c</span> and
502 (<span class="src">base_task.c</span> and 502 <span class="src">base_mt_task.c</span>)
503 <span class="src">base_mt_task.c</span>) 503 that both illustrate how to use the API and provide a skeleton for real-time
504 that both illustrate how to use the API and provide a skeleton for real-time 504 task development. To get started with development, please take a look these example
505 task development. To get started with development, please take a look these example 505 programs.
506 programs. 506 </p>
507 </p> 507 <h3>Tracing Overheads and Scheduling Decisions</h3>
508 <h3>Tracing Overheads and Scheduling Decisions</h3> 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>.
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>. 509 </p>
510 </p> 510 <p class="nobottommargin">
511 <p class="nobottommargin"> 511 Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any
512 Please contact <span class="src">bbb[AT]cs.unc.edu</span> if you have any 512 questions.
513 questions. 513 </p>
514 </p> 514
515 515
516 516 </div>
517 </div> 517
518 518 <h2 id="credits">Credits</h2>
519 <h2 id="credits">Credits</h2> 519 <div class="box">
520 <div class="box"> 520 <div style="float: right;">
521 <div style="float: right;"> 521 <a href="http://validator.w3.org/check?uri=referer"><img
522 <a href="http://validator.w3.org/check?uri=referer"><img 522 src="http://www.w3.org/Icons/valid-xhtml10"
523 src="http://www.w3.org/Icons/valid-xhtml10" 523 alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a>
524 alt="Valid XHTML 1.0 Strict" height="31" width="88"/></a> 524 </div>
525 </div> 525
526 526 <p class="nomargin">
527 <p class="nomargin"> 527 Linux is a registered trademark of Linus Torvalds. <br /> The
528 Linux is a registered trademark of Linus Torvalds. <br /> The 528 LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br />
529 LITMUS<sup>RT</sup> logo was designed by Jasper McChesney of <a href="http://www.breakforsense.net/">Break for Sense Design</a>. <br /> 529 Web design by Bj&ouml;rn Brandenburg.
530 Web design by Bj&ouml;rn Brandenburg. 530 </p>
531 </p> 531
532 532
533 533 </div>
534 </div> 534
535 535<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
536<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> 536</script>
537</script> 537<script type="text/javascript">
538<script type="text/javascript"> 538_uacct = "UA-3184628-1";
539_uacct = "UA-3184628-1"; 539urchinTracker();
540urchinTracker(); 540</script>
541</script> 541</body>
542</body> 542</html>
543</html>