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