summaryrefslogtreecommitdiff
path: root/diplomathesis/node13.html
blob: 3d7e5410e88438fe53a3c510ce8de9e0d24675ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>RTOS</TITLE>
<META NAME="description" CONTENT="RTOS">
<META NAME="keywords" CONTENT="diplomathesis">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="diplomathesis.css">

<LINK REL="previous" HREF="node12.html">
<LINK REL="up" HREF="node12.html">
<LINK REL="next" HREF="node14.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html351"
  HREF="node14.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="/usr/share/latex2html/icons/next.png"></A> 
<A NAME="tex2html347"
  HREF="node12.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="/usr/share/latex2html/icons/up.png"></A> 
<A NAME="tex2html343"
  HREF="node12.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="/usr/share/latex2html/icons/prev.png"></A> 
<A NAME="tex2html349"
  HREF="node3.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
 SRC="/usr/share/latex2html/icons/contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html352"
  HREF="node14.html">embedded Systems</A>
<B> Up:</B> <A NAME="tex2html348"
  HREF="node12.html">Echtzeitsystem</A>
<B> Previous:</B> <A NAME="tex2html344"
  HREF="node12.html">Echtzeitsystem</A>
 &nbsp; <B>  <A NAME="tex2html350"
  HREF="node3.html">Contents</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H3><A NAME="SECTION00053100000000000000"></A>
<A NAME="sec:rtos"></A>
<BR>
RTOS - Real-time Operating System - Echtzeitbetriebssystem
</H3>
Konventionelle Betriebssysteme und Echtzeitbetriebssysteme unterscheiden sich am gravierendsten in der Implementierung des Schedulings. Insbesondere in der Implementierung der Warteliste. Sobald in der Warteliste eine h&#246;her priorisierte Aufgabe, als die die gerade bearbeitet wird eintrifft, mu&#223; ein RTOS die neu eingetroffene Aufgabe bearbeiten. Um dies ohne Zeitverluste gew&#228;hrleisten zu k&#246;nnen, mu&#223; bei einem RTOS das Auffinden der Aufgabe mit der h&#246;chsten Priorit&#228;t in der Warteliste sehr effektiv implementiert sein.

<P>
Beim Umgang mit Semaphoren und Mutexen mu&#223; bei der Implementation eines RTOS zus&#228;tzlich darauf geachtet werden, dass es bei verschieden priorisierten Aufgaben zu einer unerw&#252;nschten Priority Inversion kommen kann. Eine niedrig priorisierte Aufgabe h&#228;lt einen Mutex. Dieser wird kurz darauf von einer h&#246;her priorisierten Aufgabe angefordert. In diesem Fall mu&#223; vermieden werden, dass die h&#246;her priorisierte Aufgabe solange blockiert, bis die niedriger Priorisierte den Mutex freigibt.

<P>
Ein RTOS mu&#223; die Abarbeitung von Interrupts cachen, damit diese nicht die Ausf&#252;hrung von Echtzeitaufgaben beeinflussen.

<P>
Die Reservierung von Speicher mu&#223; in konstanter Zeit, unabh&#228;ngig von der Menge des angeforderten Speichers erfolgen. Bietet das RTOS dieses Feature nicht, mu&#223; der Programmierer vor der Echtzeitbearbeitung den von der Echtzeitroutine ben&#246;tigten Speicher reservieren.

<P>
Der vanilla Linux Kernel [<A
 HREF="node86.html#kernel">The 07</A>] bietet momentan noch keine  ausreichende Grundlage f&#252;r harte Echtzeit unter Linux. Der RT_ PREEMPT PATCH ([<A
 HREF="node86.html#rt">Moln07</A>] und [<A
 HREF="node86.html#rtwiki">Ts'o07</A>]) von Ingo Molnar et al., fa&#223;t die n&#246;tigen &#196;nderungen f&#252;r harte Echtzeit gegen&#252;ber dem vanilla Kernel zusammen.  Linus Torvalds ist mit der sukzessiven Integration des RT_ PREEMPT Patches in die vanilla Sources einverstanden. Jede Menge Code aus dem RT_ PREEMPT Patch wanderte mit 2.6.18 und 2.6.19 in die vanilla Sourcen. Weiteres wird mit den n&#228;chsten Kernel Releases folgen.

<P>
Neben Linux mit RT_ PREEMPT Patch gibt es weitere (zum Teil kommerzielle) <SPAN  CLASS="textit">RTOS</SPAN>es. Ein kleiner Auszug bekannter Systeme: RTLinux [<A
 HREF="node86.html#rtlinux">FSML07</A>], INTEGRITY [<A
 HREF="node86.html#integrity">Gree07</A>], Symbian OS [<A
 HREF="node86.html#symbian">Limi07</A>], VxWorks [<A
 HREF="node86.html#vxworks">RIVE07</A>], Windows CE [<A
 HREF="node86.html#ce">Micr07</A>], Microware OS 9 [<A
 HREF="node86.html#os9">Radi07</A>]....

<P>
Bei TRUMPF Laser wird der Standard Kernel mit RT_ PREEMPT Patch verwendet, da ein Laser &#252;ber 10 Jahre im Einsatz ist und kein kommerzielles Produkt mit entsprechend langem Supportzyklus angeboten wird. Ein weiterer Grund f&#252;r Linux war die einfache Portierbarkeit des Codes, von dem zuvor eingesetzten Microware OS 9.

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html351"
  HREF="node14.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="/usr/share/latex2html/icons/next.png"></A> 
<A NAME="tex2html347"
  HREF="node12.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="/usr/share/latex2html/icons/up.png"></A> 
<A NAME="tex2html343"
  HREF="node12.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="/usr/share/latex2html/icons/prev.png"></A> 
<A NAME="tex2html349"
  HREF="node3.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
 SRC="/usr/share/latex2html/icons/contents.png"></A>  
<BR>
<B> Next:</B> <A NAME="tex2html352"
  HREF="node14.html">embedded Systems</A>
<B> Up:</B> <A NAME="tex2html348"
  HREF="node12.html">Echtzeitsystem</A>
<B> Previous:</B> <A NAME="tex2html344"
  HREF="node12.html">Echtzeitsystem</A>
 &nbsp; <B>  <A NAME="tex2html350"
  HREF="node3.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
Manuel Traut
2007-02-25
</ADDRESS>
</BODY>
</HTML>