From eacbf5bb4d57af21c731f41251015d3b991ad490 Mon Sep 17 00:00:00 2001 From: guest Date: Fri, 30 Nov 2007 13:41:25 +0000 Subject: final version, initial import git-svn-id: svn+ssh://mecka.net/home/svn/rtcorba-thesis@1 cba7306a-a4a0-4afd-bcb4-bd19f8a24309 --- diplomathesis/diplomathesis.css | 69 +++ diplomathesis/diplomathesis.html | 282 ++++++++++ diplomathesis/footnode.html | 446 ++++++++++++++++ diplomathesis/images.aux | 2 + diplomathesis/images.bbl | 502 ++++++++++++++++++ diplomathesis/images.log | 647 +++++++++++++++++++++++ diplomathesis/images.pl | 6 + diplomathesis/images.tex | 522 +++++++++++++++++++ diplomathesis/index.html | 282 ++++++++++ diplomathesis/internals.pl | 674 ++++++++++++++++++++++++ diplomathesis/labels.pl | 1057 ++++++++++++++++++++++++++++++++++++++ diplomathesis/node1.html | 122 +++++ diplomathesis/node10.html | 174 +++++++ diplomathesis/node11.html | 121 +++++ diplomathesis/node12.html | 160 ++++++ diplomathesis/node13.html | 127 +++++ diplomathesis/node14.html | 97 ++++ diplomathesis/node15.html | 154 ++++++ diplomathesis/node16.html | 184 +++++++ diplomathesis/node17.html | 100 ++++ diplomathesis/node18.html | 85 +++ diplomathesis/node19.html | 71 +++ diplomathesis/node2.html | 132 +++++ diplomathesis/node20.html | 71 +++ diplomathesis/node21.html | 79 +++ diplomathesis/node22.html | 87 ++++ diplomathesis/node23.html | 80 +++ diplomathesis/node24.html | 74 +++ diplomathesis/node25.html | 121 +++++ diplomathesis/node26.html | 136 +++++ diplomathesis/node27.html | 71 +++ diplomathesis/node28.html | 71 +++ diplomathesis/node29.html | 71 +++ diplomathesis/node3.html | 159 ++++++ diplomathesis/node30.html | 72 +++ diplomathesis/node31.html | 73 +++ diplomathesis/node32.html | 91 ++++ diplomathesis/node33.html | 77 +++ diplomathesis/node34.html | 128 +++++ diplomathesis/node35.html | 83 +++ diplomathesis/node36.html | 240 +++++++++ diplomathesis/node37.html | 153 ++++++ diplomathesis/node38.html | 137 +++++ diplomathesis/node39.html | 164 ++++++ diplomathesis/node4.html | 106 ++++ diplomathesis/node40.html | 93 ++++ diplomathesis/node41.html | 130 +++++ diplomathesis/node42.html | 96 ++++ diplomathesis/node43.html | 253 +++++++++ diplomathesis/node44.html | 82 +++ diplomathesis/node45.html | 106 ++++ diplomathesis/node46.html | 100 ++++ diplomathesis/node47.html | 73 +++ diplomathesis/node48.html | 125 +++++ diplomathesis/node49.html | 196 +++++++ diplomathesis/node5.html | 96 ++++ diplomathesis/node50.html | 83 +++ diplomathesis/node51.html | 372 ++++++++++++++ diplomathesis/node52.html | 73 +++ diplomathesis/node53.html | 86 ++++ diplomathesis/node54.html | 220 ++++++++ diplomathesis/node55.html | 79 +++ diplomathesis/node56.html | 90 ++++ diplomathesis/node57.html | 79 +++ diplomathesis/node58.html | 90 ++++ diplomathesis/node59.html | 80 +++ diplomathesis/node6.html | 86 ++++ diplomathesis/node60.html | 104 ++++ diplomathesis/node61.html | 84 +++ diplomathesis/node62.html | 98 ++++ diplomathesis/node63.html | 112 ++++ diplomathesis/node64.html | 82 +++ diplomathesis/node65.html | 98 ++++ diplomathesis/node66.html | 87 ++++ diplomathesis/node67.html | 123 +++++ diplomathesis/node68.html | 171 ++++++ diplomathesis/node69.html | 203 ++++++++ diplomathesis/node7.html | 81 +++ diplomathesis/node70.html | 81 +++ diplomathesis/node71.html | 78 +++ diplomathesis/node72.html | 159 ++++++ diplomathesis/node73.html | 140 +++++ diplomathesis/node74.html | 71 +++ diplomathesis/node75.html | 71 +++ diplomathesis/node76.html | 130 +++++ diplomathesis/node77.html | 88 ++++ diplomathesis/node78.html | 78 +++ diplomathesis/node79.html | 128 +++++ diplomathesis/node8.html | 135 +++++ diplomathesis/node80.html | 80 +++ diplomathesis/node81.html | 135 +++++ diplomathesis/node82.html | 93 ++++ diplomathesis/node83.html | 93 ++++ diplomathesis/node84.html | 135 +++++ diplomathesis/node85.html | 180 +++++++ diplomathesis/node86.html | 654 +++++++++++++++++++++++ diplomathesis/node87.html | 78 +++ diplomathesis/node9.html | 177 +++++++ 98 files changed, 15075 insertions(+) create mode 100644 diplomathesis/diplomathesis.css create mode 100644 diplomathesis/diplomathesis.html create mode 100644 diplomathesis/footnode.html create mode 100644 diplomathesis/images.aux create mode 100644 diplomathesis/images.bbl create mode 100644 diplomathesis/images.log create mode 100644 diplomathesis/images.pl create mode 100644 diplomathesis/images.tex create mode 100644 diplomathesis/index.html create mode 100644 diplomathesis/internals.pl create mode 100644 diplomathesis/labels.pl create mode 100644 diplomathesis/node1.html create mode 100644 diplomathesis/node10.html create mode 100644 diplomathesis/node11.html create mode 100644 diplomathesis/node12.html create mode 100644 diplomathesis/node13.html create mode 100644 diplomathesis/node14.html create mode 100644 diplomathesis/node15.html create mode 100644 diplomathesis/node16.html create mode 100644 diplomathesis/node17.html create mode 100644 diplomathesis/node18.html create mode 100644 diplomathesis/node19.html create mode 100644 diplomathesis/node2.html create mode 100644 diplomathesis/node20.html create mode 100644 diplomathesis/node21.html create mode 100644 diplomathesis/node22.html create mode 100644 diplomathesis/node23.html create mode 100644 diplomathesis/node24.html create mode 100644 diplomathesis/node25.html create mode 100644 diplomathesis/node26.html create mode 100644 diplomathesis/node27.html create mode 100644 diplomathesis/node28.html create mode 100644 diplomathesis/node29.html create mode 100644 diplomathesis/node3.html create mode 100644 diplomathesis/node30.html create mode 100644 diplomathesis/node31.html create mode 100644 diplomathesis/node32.html create mode 100644 diplomathesis/node33.html create mode 100644 diplomathesis/node34.html create mode 100644 diplomathesis/node35.html create mode 100644 diplomathesis/node36.html create mode 100644 diplomathesis/node37.html create mode 100644 diplomathesis/node38.html create mode 100644 diplomathesis/node39.html create mode 100644 diplomathesis/node4.html create mode 100644 diplomathesis/node40.html create mode 100644 diplomathesis/node41.html create mode 100644 diplomathesis/node42.html create mode 100644 diplomathesis/node43.html create mode 100644 diplomathesis/node44.html create mode 100644 diplomathesis/node45.html create mode 100644 diplomathesis/node46.html create mode 100644 diplomathesis/node47.html create mode 100644 diplomathesis/node48.html create mode 100644 diplomathesis/node49.html create mode 100644 diplomathesis/node5.html create mode 100644 diplomathesis/node50.html create mode 100644 diplomathesis/node51.html create mode 100644 diplomathesis/node52.html create mode 100644 diplomathesis/node53.html create mode 100644 diplomathesis/node54.html create mode 100644 diplomathesis/node55.html create mode 100644 diplomathesis/node56.html create mode 100644 diplomathesis/node57.html create mode 100644 diplomathesis/node58.html create mode 100644 diplomathesis/node59.html create mode 100644 diplomathesis/node6.html create mode 100644 diplomathesis/node60.html create mode 100644 diplomathesis/node61.html create mode 100644 diplomathesis/node62.html create mode 100644 diplomathesis/node63.html create mode 100644 diplomathesis/node64.html create mode 100644 diplomathesis/node65.html create mode 100644 diplomathesis/node66.html create mode 100644 diplomathesis/node67.html create mode 100644 diplomathesis/node68.html create mode 100644 diplomathesis/node69.html create mode 100644 diplomathesis/node7.html create mode 100644 diplomathesis/node70.html create mode 100644 diplomathesis/node71.html create mode 100644 diplomathesis/node72.html create mode 100644 diplomathesis/node73.html create mode 100644 diplomathesis/node74.html create mode 100644 diplomathesis/node75.html create mode 100644 diplomathesis/node76.html create mode 100644 diplomathesis/node77.html create mode 100644 diplomathesis/node78.html create mode 100644 diplomathesis/node79.html create mode 100644 diplomathesis/node8.html create mode 100644 diplomathesis/node80.html create mode 100644 diplomathesis/node81.html create mode 100644 diplomathesis/node82.html create mode 100644 diplomathesis/node83.html create mode 100644 diplomathesis/node84.html create mode 100644 diplomathesis/node85.html create mode 100644 diplomathesis/node86.html create mode 100644 diplomathesis/node87.html create mode 100644 diplomathesis/node9.html (limited to 'diplomathesis') diff --git a/diplomathesis/diplomathesis.css b/diplomathesis/diplomathesis.css new file mode 100644 index 0000000..2121088 --- /dev/null +++ b/diplomathesis/diplomathesis.css @@ -0,0 +1,69 @@ +/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */ +.MATH { font-family: "Century Schoolbook", serif; } +.MATH I { font-family: "Century Schoolbook", serif; font-style: italic } +.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold } + +/* implement both fixed-size and relative sizes */ +SMALL.XTINY { font-size : xx-small } +SMALL.TINY { font-size : x-small } +SMALL.SCRIPTSIZE { font-size : smaller } +SMALL.FOOTNOTESIZE { font-size : small } +SMALL.SMALL { } +BIG.LARGE { } +BIG.XLARGE { font-size : large } +BIG.XXLARGE { font-size : x-large } +BIG.HUGE { font-size : larger } +BIG.XHUGE { font-size : xx-large } + +/* heading styles */ +H1 { } +H2 { } +H3 { } +H4 { } +H5 { } + +/* mathematics styles */ +DIV.displaymath { } /* math displays */ +TD.eqno { } /* equation-number cells */ + + +/* document-specific styles come next */ +DIV.navigation { } +DIV.flushleft { } +DIV.center { } +SPAN.textit { font-style: italic } +SPAN.textsl { font-style: italic } +SPAN.arabic { } +SPAN.textbf { font-weight: bold } +SPAN.eqn-number { } +#hue814 { color: #0000ff; } +#hue816 { color: #0000ff; } +#hue823 { color: #0000ff; } +#hue825 { color: #0000ff; } +#hue832 { color: #0000ff; } +#hue834 { color: #0000ff; } +#hue841 { color: #0000ff; } +#hue843 { color: #0000ff; } +#hue845 { color: #0000ff; } +#hue847 { color: #0000ff; } +#hue849 { color: #00ff00; } +#hue851 { color: #00ff00; } +#hue853 { color: #00ff00; } +#hue855 { color: #0000ff; } +#hue857 { color: #00ff00; } +#hue859 { color: #00ff00; } +#hue861 { color: #00ff00; } +#hue865 { color: #ff0000; } +#hue869 { color: #ff0000; } +#hue873 { color: #ff0000; } +#hue879 { color: #0000ff; } +#hue881 { color: #0000ff; } +#hue883 { color: #0000ff; } +#hue885 { color: #0000ff; } +#hue887 { color: #0000ff; } +#hue891 { color: #ff0000; } +#hue896 { color: #ff0000; } +#hue900 { color: #ff0000; } +#hue914 { color: #0000ff; } +#hue916 { color: #00ff00; } +#hue918 { color: #ff0000; } diff --git a/diplomathesis/diplomathesis.html b/diplomathesis/diplomathesis.html new file mode 100644 index 0000000..1aada76 --- /dev/null +++ b/diplomathesis/diplomathesis.html @@ -0,0 +1,282 @@ + + + + + +diplomathesis + + + + + + + + + + + + + + + + + + +

+Evaluation der Real-time CORBA Implementierung ACE/TAO +
+für den Einsatz in einer auf Real-time Linux basierenden Lasersteuerung +
+zur Echtzeitkommunikation via Ethernet + +Diplom Informatiker (Fachhochschule) +Manuel Traut +ai15278 +Prof. Dr. rer. nat. Martin Zeller (Hochschule Ravensburg-Weingarten) +Dipl. Inf. Matthias Bühler (TRUMPF Laser GmbH + Co. KG Schramberg) +01.11.2006 +28.02.2007 + +

+ +

+ +


+ + + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/footnode.html b/diplomathesis/footnode.html new file mode 100644 index 0000000..c6e5bce --- /dev/null +++ b/diplomathesis/footnode.html @@ -0,0 +1,446 @@ + + + + + +Footnotes + + + + + + + + + + + + + + + + +
+
... OSADL.ORG[*]
+
TRUMPF Laser ist Gründungsmitglied der OSADL eG [OSAD07a]. OSADL bildet eine Plattform für Unternehmen, welche sich zum Ziel gesetzt haben, openSource Software in der Automatisierungstechnik einzusetzen. + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... SETI@home[*]
+
a +scientific experiment that uses Internet-connected computers in the Search for +Extraterrestrial Intelligence (SETI). You can participate by running a free +program that downloads and analyzes radio telescope data. Informationen: +[SETI06] + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... distcc[*]
+
freier, verteilter C/C++ Compiler [Pool07] + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... Cast:[*]
+
wandeln eines Datentyps in einen Anderen + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... Servers[*]
+
Darstellung im Beispiel vereinfacht + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... Speicheroszilloskop[*]
+
in meinem Fall ein Tektronix TDS 3034B [Tekt07] + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... CSV[*]
+
Comma Separated Values [Shaf07] + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... rtnice[*]
+
Download: http://www.tglx.de/projects/misc/rtnice/rtnice.tar.bz2 + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... Railswitch[*]
+
Typ: RS20-0400T1T1SDAE + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... PI-Mutex[*]
+
Priority Inherritance Mutex: fordert ein höher priorisierter Prozess einen Mutex an, welcher momentan von einem niedriger Priorisierten gehalten wird, so erbt der niedrig priorisierte Prozess die Priorität des höher Priorisierten, solange, bis er den Mutex freigibt. + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
... HMI[*]
+
Human Machine Interface + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
+ + diff --git a/diplomathesis/images.aux b/diplomathesis/images.aux new file mode 100644 index 0000000..314b811 --- /dev/null +++ b/diplomathesis/images.aux @@ -0,0 +1,2 @@ +\relax +\@input{cap/cite.aux} diff --git a/diplomathesis/images.bbl b/diplomathesis/images.bbl new file mode 100644 index 0000000..3501408 --- /dev/null +++ b/diplomathesis/images.bbl @@ -0,0 +1,502 @@ +\begin{thebibliography}{{TRUM}07b} + +\bibitem[{Bal,}91]{bal:dist} +\textsc{{Bal, Henri E.}}; \textsc{{Silicon Press}} (Hrsg.): +\newblock \emph{Programming {D}istributed {S}ystems}. +\newblock Prentice Hall International, 1991 + +\bibitem[{Blac}90]{black} +\textsc{{Black, Uyless}}; \textsc{{Prentice Hall}} (Hrsg.): +\newblock \emph{O{SI} {A} {M}odel for {C}omputer {C}ommunications {S}tandards}. +\newblock Prentice Hall, 1 November 1990 + +\bibitem[Bogn07]{egiiop} +\textsc{Bogner}, S.: +\newblock \emph{Mixing ACE/TAO and .NET Clients and Servers}. +\newblock Internet: http://www.codeproject.com/csharp/IIOPNetandTAO.asp/, 9 + Februar 2007 + +\bibitem[Boll07]{dotgnu} +\textsc{Bollow}, N.: +\newblock \emph{DotGNU Project}. +\newblock Internet: http://www.dotgnu.org/, 8 Februar 2007 + +\bibitem[CiA07]{can} +\textsc{CiA}: +\newblock \emph{Controller Area Network (CAN) - CAN in Automation (CiA)}. +\newblock Internet: http://www.can-cia.org/, 5 Februar 2007 + +\bibitem[Cisc06]{catalyst} +\textsc{Cisco~Systems}, I. +\newblock \emph{Cisco Catalyst 2955 Series Switches}. +\newblock Internet: + http://www.cisco.com/application/pdf/en/us/guest/products/ps5062/c1650/ccmig% +ration\_ 09186a008017ae6f.pdf. +\newblock 28 November 2006 + +\bibitem[Corp07a]{visibroker} +\textsc{Corporation}, B.~S.: +\newblock \emph{Borland VisiBroker - CORBA ORB-Based Platform for Distributed + Applications}. +\newblock Internet: http://www.borland.com/us/products/visibroker/index.html, 5 + Februar 2007 + +\bibitem[Corp07b]{msnet} +\textsc{Corporation}, M.: +\newblock \emph{.NET Framework Developer Center}. +\newblock Internet: http://msdn2.microsoft.com/en-us/netframework/default.aspx, + 8 Februar 2007 + +\bibitem[Desa07]{morfeo} +\textsc{y~Desarrollo S.A.~Unipersonal}, T.~I.: +\newblock \emph{Morfeo-Project - Home page}. +\newblock Internet: http://www.morfeo-project.org/, 8 Februar 2007 + +\bibitem[Deve06]{acelog} +\textsc{Developer}, A.: +\newblock \emph{websvn: View of /trunk/ACE/ChangeLog - Revision 75319}. +\newblock Internet: + https://svn.dre.vanderbilt.edu/viewvc/Middleware/\\trunk/ACE/ChangeLog?view=% +markup\&pathrev=75319, 10 November 2006 + +\bibitem[ELCA07]{iiop} +\textsc{ELCA}: +\newblock \emph{IIOP.NET - Overview}. +\newblock Internet: http://iiop-net.sourceforge.net/, 8 Februar 2007 + +\bibitem[ETHE07]{powerlink} +\textsc{ETHERNET Powerlink Standardization~Group}, c. T.~A.: +\newblock \emph{ETHERNET Powerlink :: EPSG}. +\newblock Internet: http://www.ethernet-powerlink.org/, 5 Februar 2007 + +\bibitem[FSML07]{rtlinux} +\textsc{FSMLabs}, I.: +\newblock \emph{Home - fsmlabs.com}. +\newblock Internet: http://www.fsmlabs.com/, 5 Februar 2007 + +\bibitem[Gil$^+$01]{taoscheduling} +\textsc{Gill}, C.~D.; \textsc{Levine}, D.~L.; \textsc{Schmidt}, D.~C.: +\newblock \emph{The Design and Performance of a Real-Time CORBA Scheduling + Service}. +\newblock DOC, Forschungsbericht, 2001 + +\bibitem[Glei06]{linutronix} +\textsc{Gleixner}, T.: +\newblock \emph{linutronix - home}. +\newblock Internet: http://linutronix.de/, 13 Dezember 2006 + +\bibitem[Gopa06]{pnetstate} +\textsc{Gopal}, V.: +\newblock \emph{Portable.Net Status Page}. +\newblock Internet: http://dotgnu.org/pnetlib-status/, 9 M{\^^b a}rz 2006 + +\bibitem[Gree07]{integrity} +\textsc{Green Hills~SOFTWARE}, I.: +\newblock \emph{INTEGRITY Real-Time Operating System}. +\newblock Internet: http://www.ghs.com/products/rtos/integrity.html, 5 Februar + 2007 + +\bibitem[HEAD07]{odva} +\textsc{HEADQUATERS}, O.: +\newblock \emph{ODVA : Home}. +\newblock Internet: http://www.odva.org/, 5 Februar 2007 + +\bibitem[Hoch05]{iceintro} +\textsc{Hochgeschwender}, N.: +\newblock \emph{Die ZeroC/Ice Middleware}. +\newblock Robocupteam FH Weingarten, Forschungsbericht, 2005 + +\bibitem[{Homa}07]{homaghp} +\textsc{{Homag AG}}: +\newblock \emph{Homag AG - Homag Holzverarbeitungssysteme AG}. +\newblock Internet: http://www.homag.de/, 5 Februar 2007 + +\bibitem[Hus$^+$03]{aceguide} +\textsc{Huston}, S.~D.; \textsc{Johnson}, J.~C.; \textsc{Syyid}, U.; + \textsc{Education}, P. (Hrsg.): +\newblock \emph{The ACE Programmer's Guide}. +\newblock Addison-Wesley, 2003 + +\bibitem[INTE07]{interbus} +\textsc{INTERBUS}: +\newblock \emph{INTERBUS Club online}. +\newblock Internet: http://www.interbusclub.com/de/, 5 Februar 2007 + +\bibitem[Intr07]{espresso} +\textsc{Intrinsyc Software~International}, I.: +\newblock \emph{J-Integra Espresso: J2EE / CORBA / .NET Interoperability}. +\newblock Internet: http://j-integra.intrinsyc.com/products/espresso/, 8 + Februar 2007 + +\bibitem[I/O05]{xdd} +I/O Performance, Inc.: +\newblock \emph{Xdd User's Guide}. +\newblock Version 6.5.100106. +\newblock 16 Dezember 2005 + +\bibitem[John07]{remcorba} +\textsc{Johnson}, K.: +\newblock \emph{Remoting.Corba Integration of IIOP into .NET}. +\newblock Internet: http://remoting-corba.sourceforge.net/, 8 Februar 2007 + +\bibitem[Jona07]{netremoting} +\textsc{Piet Obermeyer~und Jonathan~Hawkins}, m.~D.: +\newblock \emph{Microsoft .NET Remoting: Ein technischer \"Uberblick}. +\newblock Internet: + http://www.microsoft.com/germany/msdn/library/net/NETRemoting.mspx, 5 Februar + 2007 + +\bibitem[{Kont}07]{kontron} +\textsc{{Kontron AG}}: +\newblock \emph{Industrial Automation - Kontron}. +\newblock Internet: http://de.kontron.com/index.php?id=38, 10 Februar 2007 + +\bibitem[Kuh$^+$00]{ioqos} +\textsc{Kuhns}, F.; \textsc{Levine}, D.; \textsc{Schmidt}, D.~C.; + \textsc{O'Ryan}, C.: +\newblock \emph{Supporting High-performance I/O in QoS-enabled ORB Middleware}. +\newblock DOC, Forschungsbericht, 2000 + +\bibitem[Lan$^+$]{cancorba1} +\textsc{Lankes}, S.; \textsc{Jabs}, A.; \textsc{Bemmerl}, T.: +\newblock \emph{Design and Performance of a CAN-based Connection-oriented + Protocol for Real-time CORBA}. +\newblock {In: }Journal of Systems and Software, +\newblock 77, Issue 1 + +\bibitem[Limi07]{symbian} +\textsc{Limited}, S.~S.: +\newblock \emph{Symbian OS - the mobile operating system}. +\newblock Internet: http://www.symbian.com/, 5 Februar 2007 + +\bibitem[Linu06]{grub} +\textsc{gentoo Linux~Community}: +\newblock \emph{Gentoo Handbuch Rev. 7.2. Konfiguration des Bootloaders}. +\newblock Internet: + http://www.gentoo.de/doc/de/handbook/handbook-x86.xml?part=1\&chap=10\#doc\_% +chap2, 7 September 2006 + +\bibitem[{Love}05]{love:kernel} +\textsc{{Love, Robert}}; \textsc{{Novell Press}} (Hrsg.): +\newblock \emph{Linux-Kernel-Handbuch (Leitfaden zu Design und Implementierung + zu Kernel 2.6)}. +\newblock Addison-Wesley, 10 Juli 2005 + +\bibitem[Micr07]{ce} +\textsc{Microsoft}: +\newblock \emph{Windows Embedded CE Overview and Benefits}. +\newblock Internet: + http://www.microsoft.com/windows/embedded/eval/wince/default.mspx, 5 Februar + 2007 + +\bibitem[Moln07]{rt} +\textsc{Molnar}, I.: +\newblock \emph{Index of /mingo/realtime-preempt}. +\newblock Internet: http://www.redhat.com/~mingo/realtime-preempt/, 5 Februar + 2007 + +\bibitem[MySQ07]{mysql} +\textsc{MySQL}: +\newblock \emph{MySQL AB - The world's most popular open source database}. +\newblock Internet: http://www.mysql.com/, 8 Februar 2007 + +\bibitem[{Nata}07]{footprint} +\textsc{{Natarajan, Bala}}: +\newblock \emph{Footprint Metrics Detailed Results}. +\newblock Internet: http://www.dre.vanderbilt.edu/stats/simple\_ + footprint.shtml, 7 Februar 2007 + +\bibitem[Netw07a]{jini} +\textsc{Network}, S.~D.: +\newblock \emph{Jini Network Technology}. +\newblock Internet: http://java.sun.com/developer/products/jini/, 5 Februar + 2007 + +\bibitem[Netw07b]{rmi} +\textsc{Network}, S.~D.: +\newblock \emph{Remote Method Invocation}. +\newblock Internet: + http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp, 5 Februar + 2007 + +\bibitem[Nic$^+$98]{diffserv} +\textsc{Nichols}, K.; \textsc{Blake}, S.; \textsc{Baker}, F.; \textsc{Black}, + D.: +\newblock \emph{RFC 2474: Definition of the Differentiated Services Field (DS + Field) in the IPv4 and IPv6 Headers}. +\newblock Cisco Systems and Torrent Networking Technologies and EMC + Corporation, Forschungsbericht, 1998 + +\bibitem[{Obj}03a]{eventspec} +{ObjectManagmentGroup}: +\newblock \emph{Event Service Specification}. +\newblock Version 1.2. +\newblock 2 Oktober 2003 + +\bibitem[{Obj}03b]{namingspec} +{ObjectManagmentGroup}: +\newblock \emph{Naming Service Specification}. +\newblock Version 1.3. +\newblock 3 Oktober 2003 + +\bibitem[{Obj}04]{corbaspec} +{ObjectManagmentGroup}: +\newblock \emph{Common {O}bject {R}equest {B}roker {A}rchitecture: {C}ore + {S}pecification - CORBA}. +\newblock Version 3.0.3. +\newblock 12 M{\^^b a}rz 2004 + +\bibitem[{Obj}05a]{daisspec} +{ObjectManagmentGroup}: +\newblock \emph{Data Acquisition From Industrial System}. +\newblock Version 1.1. +\newblock 1 Juni 2005 + +\bibitem[{Obj}05b]{rtcorbaspec} +{ObjectManagmentGroup}: +\newblock \emph{Real-time CORBA Specification}. +\newblock Version 1.2. +\newblock 4 Januar 2005 + +\bibitem[Obje05]{devguide} +\textsc{Object~Computing}, I.; \textsc{Object~Computing}, I. (Hrsg.): +\newblock \emph{TAO Developer's Guide Version 1.4a}. +\newblock Object Computing, Inc., 2005 + +\bibitem[Obje07]{omg} +\textsc{ObjectManagmentGroup}: +\newblock \emph{Object Managment Group}. +\newblock Internet: http://www.omg.org/, 5 Februar 2007 + +\bibitem[OMG07]{corbaservices} +\textsc{OMG}: +\newblock \emph{CORBAservices Specification}. +\newblock Internet: + http://www.omg.org/technology/documents/corbaservices\_spec\_catalog.htm, 5 + Februar 2007 + +\bibitem[OPCF07]{opc} +\textsc{OPCFoundation}: +\newblock \emph{The OPC Foundation - Dedicated to Interoperability in + Automation}. +\newblock Internet: http://www.opcfoundation.org/, 5 Februar 2007 + +\bibitem[{OSAD}07a]{OSADL} +\textsc{{OSADL eG}}: +\newblock \emph{Open Source Automation Development Labs}. +\newblock Internet: http://www.osadl.org/, 5 Februar 2007 + +\bibitem[{OSAD}07b]{OSADLLinux} +\textsc{{OSADL eG}}: +\newblock \emph{Realtime Kernel Live CD}. +\newblock Internet: http://osadl.org/projects-live-cd.0.html, 5 Februar 2007 + +\bibitem[Pool07]{distcc} +\textsc{Pool}, M.: +\newblock \emph{distcc: a fast, free distributed C/C++ compiler}. +\newblock Internet: http://distcc.samba.org/, 5 Februar 2007 + +\bibitem[Proj07]{mono} +\textsc{mono Project}: +\newblock \emph{Main Page - Mono}. +\newblock Internet: http://www.mono-project.com/, 8 Februar 2007 + +\bibitem[Pya$^+$01]{threadpools} +\textsc{Pyarali}, I.; \textsc{Spivak}, M.; \textsc{Cytron}, R.: +\newblock \emph{Evaluating Thread Pool Strategies for Real-time CORBA}. +\newblock DOC, Forschungsbericht, 2001 + +\bibitem[Radi07]{os9} +\textsc{RadiSys}: +\newblock \emph{MICROWARE OS-9}. +\newblock Internet: http://www.radisys.com/products/Microware-OS-9.cfm, 5 + Februar 2007 + +\bibitem[{Raym}97]{online:kath} +\textsc{{Raymond, Eric (\"ubersetzt von M\"uller, Lukas)}}: +\newblock \emph{Die Kathedrale und der Basar}. +\newblock {In: }Linux Magazin, +\newblock ~(1997), 1 August + +\bibitem[{Raym}01]{raymond:cathedral} +\textsc{{Raymond, Eric S.}}; \textsc{{O'Reilly}} (Hrsg.): +\newblock \emph{The Cathedral And The Bazar}. +\newblock dtv, 21 Februar 2001 + +\bibitem[Rede07]{cpuburn} +\textsc{Redelmeier}, R.: +\newblock \emph{cpuburn Homepage}. +\newblock Internet: http://pages.sbcglobal.net/redelm/, 6 Februar 2007 + +\bibitem[RIVE07]{vxworks} +\textsc{RIVER}, W.: +\newblock \emph{VxWorks Center}. +\newblock Internet: http://www.windriver.com/vxworks/, 5 Februar 2007 + +\bibitem[Schm98]{rtevent} +\textsc{Schmidt}, D.~C.: +\newblock \emph{An Overview of OMG CORBA Event Services}. +\newblock Washington University, St. Louis, Forschungsbericht, 1998 + +\bibitem[{Schm}06]{schmidt:taoinstall} +\textsc{{Schmidt, Douglas C.}}: +\newblock \emph{Building and {I}nstalling {TAO}}. +\newblock Internet: + http://www.cs.wustl.edu/~schmidt/ACE\_wrappers/TAO/TAO-INSTALL.html, 1 + September 2006 + +\bibitem[{Schm}07a]{acehp} +\textsc{{Schmidt, Douglas C.}}: +\newblock \emph{The ADAPTIVE Communication Environment}. +\newblock Internet: http://www.cs.wustl.edu/~schmidt/ACE.html, 6 Februar 2007 + +\bibitem[{Schm}07b]{schmidthp} +\textsc{{Schmidt, Douglas C.}}: +\newblock \emph{Douglas C. Schmidt's Welcome Page}. +\newblock Internet: http://www.cs.wustl.edu/~schmidt/, 5 Februar 2007 + +\bibitem[{Schm}07c]{taohp} +\textsc{{Schmidt, Douglas C.}}: +\newblock \emph{Real-time CORBA with TAO (The ACE ORB)}. +\newblock Internet: http://www.cs.wustl.edu/~schmidt/TAO.html, 5 Februar 2007 + +\bibitem[ScHu06]{pattern} +\textsc{Schmidt}, D.~C.; \textsc{Huston}, S.~D.; \textsc{C++ In-Depth + Series~Stroustrup}, B. (Hrsg.): +\newblock \emph{C++ Network Programming Volume 2, Systematic Reuse with ACE and + Frameworks}. +\newblock Addison-Wesley, 2006 + +\bibitem[SERC07]{sercos} +\textsc{SERCOS}: +\newblock \emph{SERCOS-III}. +\newblock Internet: http://www.sercos.de/sercos3.htm, 5 Februar 2007 + +\bibitem[SETI06]{seti} +\emph{S{ETI}@home}. +\newblock Internet: http://setiathome.berkeley.edu/, 6 September 2006 + +\bibitem[Shaf07]{csv} +\textsc{Shafranovich}, Y.: +\newblock \emph{RFC 4180: Common Format and MIME Type for Comma-Separated + Values (CSV) Files}. +\newblock SolidMatrix Technologies, Inc., Forschungsbericht, 2007 + +\bibitem[ShMo04]{hp} +\textsc{Shenoy}, R.; \textsc{Moore}, K.: +\newblock \emph{Sustaining the Integration of Long-Lived Systems with .NET}. +\newblock +\newblock ~(2004) + +\bibitem[Spie07]{jacorb} +\textsc{Spiegel}, A.: +\newblock \emph{JacORB}. +\newblock Internet: http://www.jacorb.org/, 5 Februar 2007 + +\bibitem[{Stev}94]{stevens} +\textsc{{Stevens, W. Richard}}; \textsc{{Addison Wesley}} (Hrsg.): +\newblock \emph{T{CP}/{IP} {I}llustrated {V}olume 1 - {T}he {P}rotocols}. +\newblock {Addison Wesley}, 1 Februar 1994 + +\bibitem[{Stro}00]{stroustrup} +\textsc{{Stroustrup, Bjarne}}; \textsc{{Pearson Education}} (Hrsg.): +\newblock \emph{The {C}++ {P}rogramming {L}anguage {S}pecial {E}dition}. +\newblock Addison Wesley, 15 M{\^^b a}rz 2000 + +\bibitem[{Tane}01]{tanenbaum} +\textsc{{Tanenbaum, Andrew S.}}; \textsc{{Prentice Hall International}} + (Hrsg.): +\newblock \emph{Modern {O}perating {S}ystems {S}econd {E}dition}. +\newblock Alan Apt, 6 Dezember 2001 + +\bibitem[Tech07]{orbacus} +\textsc{Technologies}, I.: +\newblock \emph{Orbacus: source available CORBA}. +\newblock Internet: http://www.iona.com/products/orbacus.htm, 5 Februar 2007 + +\bibitem[Tekt07]{tektronix} +\textsc{Tektronix}, I. +\newblock \emph{Digital Phosphor Oscilloscopes TDS 3000B Series}. +\newblock Internet: http://www.tek.com/site/ps/41-12482/pdfs/41W\_12482.pdf. +\newblock 6 Februar 2007 + +\bibitem[The 07]{kernel} +\textsc{The Kernel.Org~Organization}, I.: +\newblock \emph{The Linux Kernel Archives}. +\newblock Internet: http://kernel.org, 5 Februar 2007 + +\bibitem[{TRUM}07a]{trumpfhp} +\textsc{{TRUMPF GmbH + Co. KG}}: +\newblock \emph{TRUMPF Machine Tools - Laser Technology - Electronics - Medical + Technology - Power Tools}. +\newblock Internet: http://www.TRUMPF.com/, 5 Februar 2007 + +\bibitem[{TRUM}07b]{trumpfprog} +\textsc{{TRUMPF Laser GmbH + Co. KG}}: +\newblock \emph{TRUMPF Festk\"orperlaser Programm\"ubersicht 2006/07}. +\newblock Internet: + http://www.trumpf-laser.com/207.img-cust/Programmuebersicht.pdf/, 5 Februar + 2007 + +\bibitem[{TRUM}07c]{trumpflaserhp} +\textsc{{TRUMPF Laser GmbH + Co. KG}}: +\newblock \emph{TRUMPF Laser Division}. +\newblock Internet: http://www.TRUMPF-laser.com/, 5 Februar 2007 + +\bibitem[TrWi06]{soreduce} +\textsc{Traut}, M.; \textsc{Willemsen}, J.: +\newblock \emph{comp.soft-sys.ace - Error using mwc.pl after soreduce}. +\newblock Internet: http://groups.google.de/group/comp.soft-sys.ace/browse\_ + thread/thread/f66687e7c429f7c5/?hl=de\#, 13 Oktober 2006 + +\bibitem[Ts'o07]{rtwiki} +\textsc{Ts'o}, D.: +\newblock \emph{Real-Time Linux Wiki}. +\newblock Internet: http://rt.wiki.kernel.org/, 5 Februar 2007 + +\bibitem[W3C07]{soap} +\textsc{W3C}: +\newblock \emph{SOAP Specifications}. +\newblock Internet: http://www.w3.org/TR/soap/, 5 Februar 2007 + +\bibitem[Weis06]{dotgnutrumpf} +\textsc{Weiss}, H.: +\newblock \emph{Cross Platform Development - Why DotGNU?} +\newblock Internet: + http://dotgnu.org/pipermail/developers/2006-March/000182.html, 9 M{\^^b a}rz + 2006 + +\bibitem[WIKI07a]{dcom} +\textsc{WIKIPEDIA}: +\newblock \emph{Distributed Component Object Model}. +\newblock Internet: + http://de.wikipedia.org/wiki/Distributed\_Component\_Object\_Model, 5 Februar + 2007 + +\bibitem[{WIKI}07b]{linuxwiki} +\textsc{{WIKIPEDIA}}: +\newblock \emph{Linux}. +\newblock Internet: http://de.wikipedia.org/wiki/Linux, 5 Februar 2007 + +\bibitem[Will07]{gnuplot} +\textsc{Williams}, C.: +\newblock \emph{gnuplot homepage}. +\newblock Internet: http://www.gnuplot.info/, 6 Februar 2007 + +\bibitem[Zero07a]{ice} +\textsc{ZeroC}: +\newblock \emph{The Internet Communications Engine (Ice)}. +\newblock Internet: http://www.zeroc.com/ice.html, 5 Februar 2007 + +\bibitem[Zero07b]{fw} +\textsc{ZeroC}: +\newblock \emph{ZeroC - Ice vs. CORBA (Ice)}. +\newblock Internet: http://www.zeroc.com/iceVsCorba.html, 6 Februar 2007 + +\bibitem[Zero07c]{throughput} +\textsc{ZeroC}: +\newblock \emph{ZeroC - Throughput Performance Tests}. +\newblock Internet: http://www.zeroc.com/performance/throughput.html, 7 Februar + 2007 + +\end{thebibliography} diff --git a/diplomathesis/images.log b/diplomathesis/images.log new file mode 100644 index 0000000..0665404 --- /dev/null +++ b/diplomathesis/images.log @@ -0,0 +1,647 @@ +This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2006.11.11) 25 FEB 2007 14:47 +entering extended mode +**./images.tex +(./images.tex +LaTeX2e <2003/12/01> +Babel and hyphenation patterns for american, french, german, ngerman, b +ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch, esperanto, e +stonian, finnish, greek, icelandic, irish, italian, latin, magyar, norsk, polis +h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur +kish, ukrainian, nohyphenation, loaded. + +(/home/manut/Thesis/wise.cls +Document Class: wise 19/03/2004 Vorlage fuer Dokumente an der WiSe von Andreas +Gehlert +(/usr/share/texmf-tetex/tex/latex/koma-script/scrartcl.cls +Document Class: scrartcl 2004/09/16 v2.9t LaTeX2e KOMA document class +(/usr/share/texmf-tetex/tex/latex/koma-script/scrlfile.sty +Package: scrlfile 2004/09/16 v2.9t LaTeX2e KOMA package +Package scrlfile, 2004/09/16 v2.9t LaTeX2e KOMA package + Copyright (C) Markus Kohm + +) (/usr/share/texmf-tetex/tex/latex/base/size12.clo +File: size12.clo 2004/02/16 v1.4f Standard LaTeX file (size option) +) (/usr/share/texmf-tetex/tex/latex/koma-script/typearea.sty +Package: typearea 2004/09/16 v2.9t LaTeX2e KOMA package +Package typearea, 2004/09/16 v2.9t LaTeX2e KOMA package + Copyright (C) Frank Neukam, 1992-1994 + Copyright (C) Markus Kohm, 1994-2002 + +\ta@bcor=\skip41 +\ta@div=\count79 +\ta@hblk=\skip42 +\ta@vblk=\skip43 +\ta@temp=\skip44 +Package typearea Info: These are the values describing the layout: +(typearea) DIV = 12 +(typearea) BCOR = 0.0pt +(typearea) \paperwidth = 597.50793pt +(typearea) \textwidth = 448.13095pt +(typearea) \columnwidth = 0.0pt +(typearea) \columnsep = 0.0pt +(typearea) DIV-departure = -6/100 +(typearea) \evensidemargin = 2.4185pt +(typearea) \oddsidemargin = 2.4185pt +(typearea) \paperheight = 845.04694pt +(typearea) \textheight = 635.5pt +(typearea) \topmargin = -41.72441pt +(typearea) \headheight = 18.125pt +(typearea) \headsep = 21.75pt +(typearea) \topskip = 12.0pt +(typearea) \footskip = 50.75pt +(typearea) \baselineskip = 14.5pt +(typearea) on input line 633. +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip45 +\belowcaptionskip=\skip46 +\c@pti@nb@sid@b@x=\box26 +\bibindent=\dimen102 +) (/usr/share/texmf-tetex/tex/latex/geometry/geometry.sty +Package: geometry 2002/07/08 v3.2 Page Geometry +(/usr/share/texmf-tetex/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) +\Gm@cnth=\count88 +\Gm@cntv=\count89 +\c@Gm@tempcnt=\count90 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@dimlist=\toks15 +(/usr/share/texmf-tetex/tex/latex/geometry/geometry.cfg)) (/usr/share/texmf-tet +ex/tex/generic/german/german.sty v2.5e 1998-07-08 +Package: german 1998/07/08 v2.5e Support for writing german texts (br) +\grmnU@D=\dimen107 +) (/usr/share/texmf-tetex/tex/latex/base/inputenc.sty +Package: inputenc 2004/02/05 v1.0d Input encoding file +(/usr/share/texmf-tetex/tex/latex/base/latin1.def +File: latin1.def 2004/02/05 v1.0d Input encoding file +)) (/usr/share/texmf-tetex/tex/latex/psnfss/times.sty +Package: times 2004/09/15 PSNFSS-v9.2 (SPQR) +) (/usr/share/texmf-tetex/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) +(/usr/share/texmf-tetex/tex/latex/graphics/graphics.sty +Package: graphics 2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR) +(/usr/share/texmf-tetex/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) (/usr/share/texmf-tetex/tex/latex/graphics/graphics.cfg +File: graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive +) +Package graphics Info: Driver file: dvips.def on input line 80. +(/usr/share/texmf-tetex/tex/latex/graphics/dvips.def +File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +)) +\Gin@req@height=\dimen108 +\Gin@req@width=\dimen109 +) (/usr/share/texmf-tetex/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2004/03/15 ver 3.1 Verb mode for urls, etc. +) (/usr/share/texmf-tetex/tex/latex/setspace/setspace.sty +Package: setspace 2000/12/01 6.7 Contributed and Supported LaTeX2e package +Package: `setspace' 6.7 <2000/12/01> +) (/usr/share/texmf-tetex/tex/latex/koma-script/scrpage2.sty +Package: scrpage2 2004/09/05 v2.2a LaTeX2e KOMA package +) + +Class scrartcl Warning: font selection of elements `pagehead' and `pagefoot' +(scrartcl) changed, because you wanted to change font selection +(scrartcl) of element `pagehead' on input line 169. + +(/home/manut/Thesis/wiseapp.sty +Package: wiseapp 19/03/2004 v1.1 extra appendix facilities adopted to WiSe stan +dards +(/usr/share/texmf-tetex/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +\c@@ppsavesec=\count91 +\c@@ppsaveapp=\count92 +) (/home/manut/Thesis/wisetext.sty +Package: wisetext 19/03/2004 Textbausteine fuer Dokumente an der WiSe von Andre +as Gehlert +)) (/usr/share/texmf-tetex/tex/latex/listings/listings.sty +\lst@mode=\count93 +\lst@gtempboxa=\box27 +\lst@token=\toks16 +\lst@length=\count94 +\lst@currlwidth=\dimen110 +\lst@column=\count95 +\lst@pos=\count96 +\lst@lostspace=\dimen111 +\lst@width=\dimen112 +\lst@newlines=\count97 +\lst@lineno=\count98 +\c@lstlisting=\count99 +\lst@maxwidth=\dimen113 +(/usr/share/texmf-tetex/tex/latex/listings/lstpatch.sty +File: lstpatch.sty 2004/10/17 1.3b (Carsten Heinz) +) (/usr/share/texmf-tetex/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2004/09/07 1.3 (Carsten Heinz) +\c@lstnumber=\count100 +\lst@skipnumbers=\count101 +\lst@framebox=\box28 +) (/usr/share/texmf-tetex/tex/latex/listings/listings.cfg +File: listings.cfg 2004/09/05 1.3 listings configuration +)) +Package: listings 2004/10/17 1.3b (Carsten Heinz) +(/usr/share/texmf-tetex/tex/latex/graphics/color.sty +Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC) +(/usr/share/texmf-tetex/tex/latex/graphics/color.cfg +File: color.cfg 2005/02/03 v1.3 color configuration of teTeX/TeXLive +) +Package color Info: Driver file: dvips.def on input line 125. +(/usr/share/texmf-tetex/tex/latex/graphics/dvipsnam.def +File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +)) (/usr/share/texmf-tetex/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2004/09/05 1.3 listings language file +) (/usr/share/texmf-tetex/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2004/09/05 1.3 listings language file +) (/usr/share/texmf-tetex/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2004/09/07 1.3 (Carsten Heinz) +) (/usr/share/texmf-tetex/tex/latex/picins/picins.sty Option `picins' Version 3 +.0 Sep. 1992, TH Darmstadt/HRZ +\@BILD=\box29 +\@TEXT=\box30 +\d@breite=\dimen114 +\d@hoehe=\dimen115 +\d@xoff=\dimen116 +\d@yoff=\dimen117 +\d@shad=\dimen118 +\d@dash=\dimen119 +\d@boxl=\dimen120 +\d@pichskip=\dimen121 +\d@tmp=\dimen122 +\d@tmpa=\dimen123 +\d@bskip=\dimen124 +\hsiz@=\dimen125 +\p@getot@l=\dimen126 +\c@breite=\count102 +\c@hoehe=\count103 +\c@xoff=\count104 +\c@yoff=\count105 +\c@pos=\count106 +\c@shad=\count107 +\c@dash=\count108 +\c@boxl=\count109 +\c@zeilen=\count110 +\@changemode=\count111 +\c@piccaption=\count112 +\c@piccaptionpos=\count113 +\c@picpos=\count114 +\c@whole=\count115 +\c@half=\count116 +\c@tmp=\count117 +\c@tmpa=\count118 +\c@tmpb=\count119 +\c@tmpc=\count120 +\c@tmpd=\count121 +\d@leftskip=\skip47 +\ptoti=\dimen127 +\ptotii=\dimen128 +\env@box=\box31 +\d@envdp=\dimen129 +\c@hsize=\count122 +\c@envdp=\count123 +\d@envb=\dimen130 +) (/usr/share/texmf-tetex/tex/latex/tools/longtable.sty +Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) +\LTleft=\skip48 +\LTright=\skip49 +\LTpre=\skip50 +\LTpost=\skip51 +\LTchunksize=\count124 +\LTcapwidth=\dimen131 +\LT@head=\box32 +\LT@firsthead=\box33 +\LT@foot=\box34 +\LT@lastfoot=\box35 +\LT@cols=\count125 +\LT@rows=\count126 +\c@LT@tables=\count127 +\c@LT@chunks=\count128 +\LT@p@ftn=\toks17 +) +Class scrartcl Info: longtable captions redefined on input line 38. +\sizebox=\box36 +\lthtmlwrite=\write3 +(./images.aux (/home/manut/Thesis/cap/cite.aux)) +\openout1 = `images.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 195. +LaTeX Font Info: ... okay on input line 195. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 195. +LaTeX Font Info: ... okay on input line 195. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 195. +LaTeX Font Info: ... okay on input line 195. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 195. +LaTeX Font Info: ... okay on input line 195. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 195. +LaTeX Font Info: ... okay on input line 195. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 195. +LaTeX Font Info: ... okay on input line 195. +LaTeX Font Info: Try loading font information for OT1+ptm on input line 195. + +(/usr/share/texmf-tetex/tex/latex/psnfss/ot1ptm.fd +File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. +) +-------------------- Geometry parameters +paper: a4paper +landscape: -- +twocolumn: -- +twoside: -- +asymmetric: -- +h-parts: 85.35826pt, 455.24411pt, 56.9055pt +v-parts: 28.45274pt, 731.23584pt, 85.35826pt +hmarginratio: -- +vmarginratio: -- +lines: -- +heightrounded: -- +bindingoffset: 0.0pt +truedimen: -- +includehead: true +includefoot: -- +includemp: -- +driver: +-------------------- Page layout dimensions and switches +\paperwidth 597.50787pt +\paperheight 845.04684pt +\textwidth 349.0pt +\textheight 738.1686pt +\oddsidemargin 13.08827pt +\evensidemargin 13.08827pt +\topmargin 0.0pt +\headheight 0.0pt +\headsep 0.0pt +\footskip 0.0pt +\marginparwidth 42.67912pt +\marginparsep 12.8401pt +\columnsep 10.0pt +\skip\footins 10.8pt plus 4.0pt minus 2.0pt +\hoffset 0.0pt +\voffset 0.0pt +\mag 1000 + +(1in=72.27pt, 1cm=28.45pt) +----------------------- + +Package scrpage2 Warning: seems you are using a very small headheight. +(scrpage2) If you get overfull \vbox warnings at almost every +(scrpage2) page, you should increase headheight e.g. writing +(scrpage2) \setlength{\headheight}{1.1\baselineskip} +(scrpage2) into the preamble of your document. +(scrpage2) A better solution would be to use typearea package. + +(/home/manut/Thesis/diplomathesis.aux (/home/manut/Thesis/preface.aux) (/home/m +anut/Thesis/cap/cite.aux) (/home/manut/Thesis/cap/introduction.aux) (/home/manu +t/Thesis/cap/basics.aux) (/home/manut/Thesis/cap/datacom.aux + +LaTeX Warning: Label `img:RTCORBAPrioPorts' multiply defined. + +) (/home/manut/Thesis/cap/performance.aux) (/home/manut/Thesis/cap/iiopnet.aux) +(/home/manut/Thesis/cap/demo.aux) (/home/manut/Thesis/cap/integration.aux) (/ho +me/manut/Thesis/cap/fazit.aux) (/home/manut/Thesis/abbreviations.aux) (/home/ma +nut/Thesis/cap/sysconfig.aux)) (/home/manut/Thesis/preface.aux) (/home/manut/Th +esis/cap/cite.aux) (/home/manut/Thesis/cap/introduction.aux) (/home/manut/Thesi +s/cap/basics.aux + +LaTeX Warning: Label `sec:grundlagen' multiply defined. + + +LaTeX Warning: Label `sec:opensource' multiply defined. + + +LaTeX Warning: Label `sec:Real-time' multiply defined. + + +LaTeX Warning: Label `sec:rtos' multiply defined. + + +LaTeX Warning: Label `sec:embedded' multiply defined. + + +LaTeX Warning: Label `img:embedded' multiply defined. + + +LaTeX Warning: Label `sec:distsys' multiply defined. + + +LaTeX Warning: Label `img:distsys' multiply defined. + + +LaTeX Warning: Label `img:distcc' multiply defined. + + +LaTeX Warning: Label `sec:corba' multiply defined. + + +LaTeX Warning: Label `img:minCORBA' multiply defined. + + +LaTeX Warning: Label `img:objreq' multiply defined. + + +LaTeX Warning: Label `sec:orb' multiply defined. + + +LaTeX Warning: Label `img:orb' multiply defined. + + +LaTeX Warning: Label `sec:poa' multiply defined. + + +LaTeX Warning: Label `sec:policies' multiply defined. + + +LaTeX Warning: Label `sec:idl' multiply defined. + + +LaTeX Warning: Label `sec:mapping' multiply defined. + + +LaTeX Warning: Label `sec:ior' multiply defined. + + +LaTeX Warning: Label `tab:ior' multiply defined. + + +LaTeX Warning: Label `sec:rtcorba' multiply defined. + + +LaTeX Warning: Label `img:corbaext' multiply defined. + + +LaTeX Warning: Label `sec:services' multiply defined. + + +LaTeX Warning: Label `sec:namingservice' multiply defined. + + +LaTeX Warning: Label `sec:rteventservice' multiply defined. + + +LaTeX Warning: Label `sec:ice' multiply defined. + +) (/home/manut/Thesis/cap/datacom.aux + +LaTeX Warning: Label `sec:versuche' multiply defined. + + +LaTeX Warning: Label `img:rtmess' multiply defined. + + +LaTeX Warning: Label `cap:lastsim' multiply defined. + + +LaTeX Warning: Label `sec:ace' multiply defined. + + +LaTeX Warning: Label `sec:tao' multiply defined. + + +LaTeX Warning: Label `img:ace' multiply defined. + + +LaTeX Warning: Label `rttao' multiply defined. + + +LaTeX Warning: Label `sec:taosched' multiply defined. + + +LaTeX Warning: Label `sec:rtinfo' multiply defined. + + +LaTeX Warning: Label `tab:rtinfo' multiply defined. + + +LaTeX Warning: Label `sec:taopoa' multiply defined. + + +LaTeX Warning: Label `sec:v1' multiply defined. + + +LaTeX Warning: Label `img:sqV1' multiply defined. + + +LaTeX Warning: Label `img:rtcom' multiply defined. + + +LaTeX Warning: Label `tab:prioSup' multiply defined. + + +LaTeX Warning: Label `tab:prioRec' multiply defined. + + +LaTeX Warning: Label `tab:sysLastMatrix' multiply defined. + + +LaTeX Warning: Label `img:sysLast0100' multiply defined. + + +LaTeX Warning: Label `img:sysLast0136' multiply defined. + + +LaTeX Warning: Label `img:sysLast0108' multiply defined. + + +LaTeX Warning: Label `img:sysLast0116' multiply defined. + + +LaTeX Warning: Label `img:sysLast0213' multiply defined. + + +LaTeX Warning: Label `img:sysLast0149' multiply defined. + + +LaTeX Warning: Label `cap:reprio' multiply defined. + + +LaTeX Warning: Label `tab:rePrioSup' multiply defined. + + +LaTeX Warning: Label `img:optVerteilungOhneLast1' multiply defined. + + +LaTeX Warning: Label `img:optVerteilung1' multiply defined. + + +LaTeX Warning: Label `tab:rePrioRec' multiply defined. + + +LaTeX Warning: Label `sec:v2' multiply defined. + + +LaTeX Warning: Label `img:sequenzV2' multiply defined. + + +LaTeX Warning: Label `img:optVerteilungOhneLast2' multiply defined. + + +LaTeX Warning: Label `img:optVerteilung2' multiply defined. + + +LaTeX Warning: Label `img:2Consumer' multiply defined. + + +LaTeX Warning: Label `img:dataLat' multiply defined. + + +LaTeX Warning: Label `sec:v4' multiply defined. + + +LaTeX Warning: Label `sec:v3' multiply defined. + + +LaTeX Warning: Label `img:v4' multiply defined. + + +LaTeX Warning: Label `img:v3' multiply defined. + + +LaTeX Warning: Label `sec:v5' multiply defined. + + +LaTeX Warning: Label `tab:portprio' multiply defined. + + +LaTeX Warning: Label `img:diffServData' multiply defined. + + +LaTeX Warning: Label `img:RTCORBAPrioPorts' multiply defined. + + +LaTeX Warning: Label `img:RTCORBAPrioPorts' multiply defined. + + +LaTeX Warning: Label `img:v5_0' multiply defined. + + +LaTeX Warning: Label `img:v5_1-100' multiply defined. + + +LaTeX Warning: Label `img:v5cisco' multiply defined. + + +LaTeX Warning: Label `img:v5foto' multiply defined. + +) (/home/manut/Thesis/cap/performance.aux + +LaTeX Warning: Label `sec:footprint' multiply defined. + +) (/home/manut/Thesis/cap/iiopnet.aux + +LaTeX Warning: Label `sec:csharpcorba' multiply defined. + + +LaTeX Warning: Label `sec:IIOP.NET' multiply defined. + + +LaTeX Warning: Label `img:iiopdemo' multiply defined. + + +LaTeX Warning: Label `sec:demoapp' multiply defined. + +) (/home/manut/Thesis/cap/demo.aux + +LaTeX Warning: Label `sec:demo' multiply defined. + + +LaTeX Warning: Label `sec:impldemo1' multiply defined. + + +LaTeX Warning: Label `img:demo1uml' multiply defined. + + +LaTeX Warning: Label `img:demo1GUIDesign' multiply defined. + +) (/home/manut/Thesis/cap/integration.aux + +LaTeX Warning: Label `img:homagdais' multiply defined. + + +LaTeX Warning: Label `sec:integration' multiply defined. + + +LaTeX Warning: Label `sec:generic' multiply defined. + +) (/home/manut/Thesis/cap/fazit.aux) (/home/manut/Thesis/abbreviations.aux) (/h +ome/manut/Thesis/cap/sysconfig.aux + +LaTeX Warning: Label `sec:systemkonfigurationen' multiply defined. + + +LaTeX Warning: Label `sec:sysconfigSoft' multiply defined. + + +LaTeX Warning: Label `sec:rtpreempt' multiply defined. + + +LaTeX Warning: Label `sec:linuxace' multiply defined. + + +LaTeX Warning: Label `sec:linuxgperf' multiply defined. + + +LaTeX Warning: Label `sec:linuxtao' multiply defined. + + +LaTeX Warning: Label `sec:cpx' multiply defined. + + +LaTeX Warning: Label `img:op' multiply defined. + +) + +latex2htmlLength hsize=349.0pt + +latex2htmlLength vsize=738.1686pt + +latex2htmlLength hoffset=0.0pt + +latex2htmlLength voffset=0.0pt + +latex2htmlLength topmargin=0.0pt + +latex2htmlLength topskip=0.00003pt + +latex2htmlLength headheight=0.0pt + +latex2htmlLength headsep=0.0pt + +latex2htmlLength parskip=0.0pt plus 1.0pt + +latex2htmlLength oddsidemargin=13.08827pt + +latex2htmlLength evensidemargin=13.08827pt + +! I can't write on file `cap/cite.aux'. +\@include ...\immediate \openout \@partaux #1.aux + \immediate \write \@partau... +l.219 \begin{figure}\vbox{\include{cap/cite} + +Please type another output file name +! Emergency stop. +\@include ...\immediate \openout \@partaux #1.aux + \immediate \write \@partau... +l.219 \begin{figure}\vbox{\include{cap/cite} + +*** (job aborted, file error in nonstop mode) + + +Here is how much of TeX's memory you used: + 4168 strings out of 94501 + 57663 string characters out of 1175810 + 126217 words of memory out of 1000000 + 7250 multiletter control sequences out of 10000+50000 + 4445 words of font info for 16 fonts, out of 500000 for 2000 + 580 hyphenation exceptions out of 8191 + 35i,4n,68p,237b,222s stack positions out of 1500i,500n,5000p,200000b,5000s +No pages of output. diff --git a/diplomathesis/images.pl b/diplomathesis/images.pl new file mode 100644 index 0000000..6d0ccb4 --- /dev/null +++ b/diplomathesis/images.pl @@ -0,0 +1,6 @@ +# LaTeX2HTML 2002-2-1 (1.71) +# Associate images original text with physical files. + + +1; + diff --git a/diplomathesis/images.tex b/diplomathesis/images.tex new file mode 100644 index 0000000..8536b41 --- /dev/null +++ b/diplomathesis/images.tex @@ -0,0 +1,522 @@ +\batchmode + +\documentclass[xlevel]{wise} +\RequirePackage{ifthen} + + + + +\usepackage{listings,color} +\definecolor{lbcolor}{rgb}{0.95,0.95,0.95} +\lstset{language=C++, + frameround=fttt, + numbers=left, + stepnumber=1, + numbersep=5pt, + numberstyle=\tiny , + breaklines=true, + breakautoindent=true, + postbreak=\ , + tabsize=2, + basicstyle=\ttfamily\footnotesize , + showspaces=false, + showstringspaces=false, + extendedchars=true, + backgroundcolor=\color{lbcolor}, + keywordstyle =\bf , + %identifierstyle = \bf , + commentstyle =\color{green}, + stringstyle=\color{red} +} + + +\usepackage{picins}% +\providecommand{\shadowbr}{\\\rule{15.5cm}{0.3mm} \\} + + +\usepackage{longtable} + + + +\pagecolor[gray]{.7} + +\usepackage[latin1]{inputenc} + + + +\makeatletter +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/diplomathesis.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/preface.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/cite.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/introduction.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/basics.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/datacom.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/performance.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/iiopnet.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/demo.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/integration.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/fazit.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/abbreviations.aux +\makeatother +} +\AtBeginDocument{\makeatletter +\input /home/manut/Thesis/cap/sysconfig.aux +\makeatother +} + +\makeatletter +\count@=\the\catcode`\_ \catcode`\_=8 +\newenvironment{tex2html_wrap}{}{}% +\catcode`\<=12\catcode`\_=\count@ +\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}% +\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}% + \expandafter\renewcommand\csname #1\endcsname}% +\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}% +\let\newedcommand\renewedcommand +\let\renewedenvironment\newedenvironment +\makeatother +\let\mathon=$ +\let\mathoff=$ +\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi +\newbox\sizebox +\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt} +\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt} +\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt} +\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt} +\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt} +\setlength{\textwidth}{349pt} +\newwrite\lthtmlwrite +\makeatletter +\let\realnormalsize=\normalsize +\global\topskip=2sp +\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float +\def\@float{\let\@savefreelist\@freelist\real@float} +\def\liih@math{\ifmmode$\else\bad@math\fi} +\def\end@float{\realend@float\global\let\@freelist\@savefreelist} +\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float +\let\@largefloatcheck=\relax +\let\if@boxedmulticols=\iftrue +\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt} +\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize + \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}% + \def\phantompar{\csname par\endcsname}\normalsize}% +\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}% +\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }% +\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }% +\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup % + \let\ifinner=\iffalse \let\)\liih@math }% +\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}% + \expandafter\box\next\egroup}% +\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}% +\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox + \ifdim\dimen0>.95\vsize + \lthtmltypeout{% +*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}% + \ht\sizebox.95\vsize \dp\sizebox\z@ \fi + \lthtmltypeout{l2hSize % +:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}% +\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist + \lthtmlmathtype{#1}\lthtmlvboxmathA}% +\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}% +\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup + \let\@savefreelist\@freelist \lthtmlhboxmathB}% +\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}% +\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox + \global\let\@freelist\@savefreelist}% +\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}% +\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}% +\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}% + \lthtmldisplayA{#1}\let\@eqnnum\relax}% +\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}% +\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB} +\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA + \vrule height1.5ex width0pt }% +\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}% +\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}% +\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline} +\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath} +\newcommand\lthtmlindisplaymathZ{\egroup % + \centerinlinemath\lthtmllogmath\lthtmlsetmath} +\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{% + \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{% + \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt% + \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt% + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\centerinlinemath{% + \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi + \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1 + \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax} + +\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize + \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill + \else\expandafter\vss\fi}% +\providecommand{\selectlanguage}[1]{}% +\makeatletter \tracingstats = 1 + + +\begin{document} +\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}% +\makeatletter +\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}% +\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi% +\lthtmltypeout{}% +\makeatother +\setcounter{page}{1} +\onecolumn + +% !!! IMAGES START HERE !!! + +{\newpage\clearpage +\lthtmlfigureA{figure5268}% +\begin{figure}\vbox{\include{cap/cite} +}\end{figure}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline382}% +$n$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline386}% +$Time_{deadline} = Time_{start} + Duration_{max}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline388}% +$(0, Duration_{max}]$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline390}% +$Duration_{max}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlfigureA{shadowenv250}% +\begin{shadowenv} +\par +A distributed computing system consists of multiple autonomous +processors that do not share primary memory, but cooperate by +sending messages over a communication network. +\par +Henri Bal (Professor of Computer Science, Autor von \cite{bal:dist}) +\\ +\end{shadowenv}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{paragraph} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline392}% +$\Leftrightarrow$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{paragraph} +\stepcounter{paragraph} +\stepcounter{paragraph} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1226}% +$2.48*10^{-03}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1228}% +$2.78*10^{-03}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmldisplayA{displaymath652}% +\begin{displaymath} +2,78*10^{-03} - 2,48*10^{-03} = 300*10^{-6} [sec] +\end{displaymath}% +\lthtmldisplayZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +{\newpage\clearpage +\lthtmlfigureA{shadowenv703}% +\begin{shadowenv} +% latex2html id marker 703 + +\begin{itemize} +\item Erforschung der Grundlagen zur Implementierung eines Real-time CORBA ORBs (siehe Kapitel \ref{sec:rtcorba} f\"ur den Einsatz in verteilten (siehe Kapitel \ref{sec:distsys}), embedded (siehe \ref{sec:embedded}), Echtzeitsystemen (DRE - Distributed Real-time Systems). +\item Kombination von Echtzeit Ein- und Ausgabesystemarchitekturen mit einem optimierten ORB zur Implementierung einer Ende zu Ende CORBA Kommunikation mit Quality of Service (QoS) Anforderungen bez\"uglich Datendurchsatz, Latenzzeit, und Jitter \cite{ioqos}. +\item Anbieten einer qualitativ hochwertigen, frei verf\"ugbaren, openSource CORBA Middleware Plattform. TAO kann frei heruntergeladen, benutzt und weiterverbreitet werden. +\item Mitwirken bei der OMG \cite{omg} Real-time CORBA Spezifikation \cite{rtcorbaspec} +\item \dots +\end{itemize} +\end{shadowenv}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{paragraph} +\stepcounter{subparagraph} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1230}% +$C$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1236}% +$!= 0$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{paragraph} +\stepcounter{subsubsection} +\stepcounter{paragraph} +\stepcounter{paragraph} +\stepcounter{paragraph} +\stepcounter{subparagraph} +\stepcounter{subparagraph} +\stepcounter{paragraph} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1244}% +$\mu s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1246}% +$Duration_{Latenz} > Duration_{Periode}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1248}% +$\mu$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1250}% +$T_{Latenz} > \frac{T_{Periode}}{2}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subparagraph} +\stepcounter{subparagraph} +\stepcounter{subparagraph} +\stepcounter{subparagraph} +\stepcounter{subsubsection} +\stepcounter{paragraph} +\stepcounter{paragraph} +\stepcounter{paragraph} +\stepcounter{paragraph} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1252}% +$600 \mu s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1254}% +$-260 \mu \dots 138 \mu = 398 \mu s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsubsection} +\stepcounter{paragraph} +\stepcounter{subsubsection} +\stepcounter{paragraph} +{\newpage\clearpage +\lthtmlfigureA{lstlisting1106}% +\begin{lstlisting} +static RT_ORB_Loader "-ORBPriorityMapping linear -ORBSchedPolicy SCHED_FIFO -ORBScopePolicy SYSTEM" +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{paragraph} +{\newpage\clearpage +\lthtmlfigureA{lstlisting1110}% +\begin{lstlisting} +ps -Alfm +... +4 - root 10598 1001 14 - - - 10382 - 13:13 pts/0 00:00:46 ./ReceiverDual -orbinitref NameService=corbaloc:iiop:192.168.0.2:2809/NameService +4 S root - - 0 -40 - - - 429496 13:13 - 00:00:00 - +5 S root - - 0 -40 - - - futex 13:13 - 00:00:00 - +5 S root - - 3 58 - - - 429496 13:13 - 00:00:11 - +1 S root - - 0 -40 - - - 429496 13:13 - 00:00:00 - +... +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsubsection} +\stepcounter{paragraph} +\stepcounter{paragraph} +{\newpage\clearpage +\lthtmlfigureA{lstlisting1135}% +\begin{lstlisting} +RTCORBA::TCPProtocolProperties(ACE_DEFAULT_MAX_SOCKET_BUFSIZ, ACE_DEFAULT_MAX_SOCKET_BUFSIZ, 1, 0, 1, 1 /*enable netw. priority*/ ); +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlfigureA{lstlisting1137}% +\begin{lstlisting} +RTCORBA::ThreadPoolWithLanes(0 /*Stacksize*/, lanes, 0 /*borrowing*/, 0 /*buffering*/, 0 /*maxBuf*/, 0 /*maxBufSize*/); +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlfigureA{lstlisting1139}% +\begin{lstlisting} +RTCORBA::PriorityModel(RTCORBA::CLIENT_PROPAGATED, 0 /*default priority*/); +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{paragraph} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1256}% +$230 \mu s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline1258}% +$400 \mu s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlfigureA{lstlisting1767}% +\begin{lstlisting} +ilrun IDLToCLSCompiler.exe bench ../versuch1/bench.idl +exception encountered: System.NotImplementedException: Read + at System.Xml.Schema.XmlSchema.Read(Stream, ValidationEventHandler) in ./Schema/XmlSchema.cs:57 + at Ch.Elca.Iiop.IdlCompiler.Action.CompilerMappingPlugin..ctor() + at Ch.Elca.Iiop.IdlCompiler.Action.CompilerMappingPlugin..cctor() + at Ch.Elca.Iiop.IdlCompiler.IDLToCLS.AddCustomMappings(IList) + at Ch.Elca.Iiop.IdlCompiler.IDLToCLS.Setup(String[]) + at Ch.Elca.Iiop.IdlCompiler.IDLToCLS..ctor(String[]) + at Ch.Elca.Iiop.IdlCompiler.IDLToCLS.Main(String[]) +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlfigureA{lstlisting1770}% +\begin{lstlisting} +mono --trace=all-program IDLToCLSCompiler.exe bench ../versuch1/bench.idl | grep ENTER: | sed 's!.*ENTER:!!' | sed 's!(wrapper.*)!!' | uniq +\end{lstlisting}% +\lthtmlfigureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline6396}% +$^+$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + + +\end{document} diff --git a/diplomathesis/index.html b/diplomathesis/index.html new file mode 100644 index 0000000..1aada76 --- /dev/null +++ b/diplomathesis/index.html @@ -0,0 +1,282 @@ + + + + + +diplomathesis + + + + + + + + + + + + + + + + + + +

+Evaluation der Real-time CORBA Implementierung ACE/TAO +
+für den Einsatz in einer auf Real-time Linux basierenden Lasersteuerung +
+zur Echtzeitkommunikation via Ethernet + +Diplom Informatiker (Fachhochschule) +Manuel Traut +ai15278 +Prof. Dr. rer. nat. Martin Zeller (Hochschule Ravensburg-Weingarten) +Dipl. Inf. Matthias Bühler (TRUMPF Laser GmbH + Co. KG Schramberg) +01.11.2006 +28.02.2007 + +

+ +

+ +


+ + + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/internals.pl b/diplomathesis/internals.pl new file mode 100644 index 0000000..3c348d8 --- /dev/null +++ b/diplomathesis/internals.pl @@ -0,0 +1,674 @@ +# LaTeX2HTML 2002-2-1 (1.71) +# Associate internals original text with physical files. + + +$key = q/img:sysLast0108/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilungOhneLast1/; +$ref_files{$key} = "$dir".q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sequenzV2/; +$ref_files{$key} = "$dir".q|node58.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rteventservice/; +$ref_files{$key} = "$dir".q|node34.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:Real-time/; +$ref_files{$key} = "$dir".q|node12.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_dcom/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_msnet/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_fw/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_dotgnutrumpf/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_vxworks/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_ioqos/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtevent/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ior/; +$ref_files{$key} = "$dir".q|node25.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_stroustrup/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_cpuburn/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:taosched/; +$ref_files{$key} = "$dir".q|node42.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_opc/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_espresso/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilung1/; +$ref_files{$key} = "$dir".q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v2/; +$ref_files{$key} = "$dir".q|node56.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_integrity/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:corbaext/; +$ref_files{$key} = "$dir".q|node26.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_OSADL/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_morfeo/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_netremoting/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rtinfo/; +$ref_files{$key} = "$dir".q|node43.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:opensource/; +$ref_files{$key} = "$dir".q|node11.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:distsys/; +$ref_files{$key} = "$dir".q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_pnetstate/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_iiop/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_online:kath/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_kernel/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cap:lastsim/; +$ref_files{$key} = "$dir".q|node38.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:RTCORBAPrioPorts/; +$ref_files{$key} = "$dir".q|node68.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_devguide/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:policies/; +$ref_files{$key} = "$dir".q|node22.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_corbaspec/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_visibroker/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_taohp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_trumpfhp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_distcc/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_footprint/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_daisspec/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_catalyst/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_OSADLLinux/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_ice/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_threadpools/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_jini/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:iiopdemo/; +$ref_files{$key} = "$dir".q|node76.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:ace/; +$ref_files{$key} = "$dir".q|node40.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_jacorb/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5_1-100/; +$ref_files{$key} = "$dir".q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:demoapp/; +$ref_files{$key} = "$dir".q|node76.html|; +$noresave{$key} = "$nosave"; + +$key = q/rttao/; +$ref_files{$key} = "$dir".q|node41.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0149/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v3/; +$ref_files{$key} = "$dir".q|node65.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_odva/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_schmidthp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_acehp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:integration/; +$ref_files{$key} = "$dir".q|node77.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5cisco/; +$ref_files{$key} = "$dir".q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5foto/; +$ref_files{$key} = "$dir".q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:distcc/; +$ref_files{$key} = "$dir".q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v1/; +$ref_files{$key} = "$dir".q|node45.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v3/; +$ref_files{$key} = "$dir".q|node63.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:corba/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:distsys/; +$ref_files{$key} = "$dir".q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:minCORBA/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_aceguide/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rmi/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:generic/; +$ref_files{$key} = "$dir".q|node78.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:homagdais/; +$ref_files{$key} = "$dir".q|node79.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_can/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_pattern/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5_0/; +$ref_files{$key} = "$dir".q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilung2/; +$ref_files{$key} = "$dir".q|node60.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v5/; +$ref_files{$key} = "$dir".q|node66.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_black/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_grub/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:dataLat/; +$ref_files{$key} = "$dir".q|node62.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_love:kernel/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ace/; +$ref_files{$key} = "$dir".q|node40.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:prioRec/; +$ref_files{$key} = "$dir".q|node49.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:portprio/; +$ref_files{$key} = "$dir".q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_soap/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:grundlagen/; +$ref_files{$key} = "$dir".q|node9.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:ior/; +$ref_files{$key} = "$dir".q|node25.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_powerlink/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilungOhneLast2/; +$ref_files{$key} = "$dir".q|node60.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v4/; +$ref_files{$key} = "$dir".q|node63.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_csv/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_mono/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_diffserv/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_trumpflaserhp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:rtcom/; +$ref_files{$key} = "$dir".q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_remcorba/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtcorbaspec/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_stevens/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_schmidt:taoinstall/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0116/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_hp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:prioSup/; +$ref_files{$key} = "$dir".q|node49.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0213/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_corbaservices/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:embedded/; +$ref_files{$key} = "$dir".q|node14.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:poa/; +$ref_files{$key} = "$dir".q|node21.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_xdd/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:services/; +$ref_files{$key} = "$dir".q|node32.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:orb/; +$ref_files{$key} = "$dir".q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:rtmess/; +$ref_files{$key} = "$dir".q|node37.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_eventspec/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_ce/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:csharpcorba/; +$ref_files{$key} = "$dir".q|node72.html|; +$noresave{$key} = "$nosave"; + +$key = q/cap:reprio/; +$ref_files{$key} = "$dir".q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rePrioRec/; +$ref_files{$key} = "$dir".q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_iceintro/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_homaghp/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ice/; +$ref_files{$key} = "$dir".q|node35.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_interbus/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_soreduce/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtos/; +$ref_files{$key} = "$dir".q|node13.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v4/; +$ref_files{$key} = "$dir".q|node61.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0136/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:mapping/; +$ref_files{$key} = "$dir".q|node24.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_namingspec/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_linutronix/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_taoscheduling/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:diffServData/; +$ref_files{$key} = "$dir".q|node68.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sqV1/; +$ref_files{$key} = "$dir".q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:2Consumer/; +$ref_files{$key} = "$dir".q|node62.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_cancorba1/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_trumpfprog/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_bal:dist/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_tektronix/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rePrioSup/; +$ref_files{$key} = "$dir".q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:idl/; +$ref_files{$key} = "$dir".q|node23.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_os9/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_omg/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_linuxwiki/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_egiiop/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:versuche/; +$ref_files{$key} = "$dir".q|node36.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_mysql/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtlinux/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:embedded/; +$ref_files{$key} = "$dir".q|node14.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0100/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_orbacus/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_dotgnu/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_throughput/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_sercos/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:tao/; +$ref_files{$key} = "$dir".q|node41.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtwiki/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_acelog/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:orb/; +$ref_files{$key} = "$dir".q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:IIOP.NET/; +$ref_files{$key} = "$dir".q|node73.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_raymond:cathedral/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_kontron/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:objreq/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:sysLastMatrix/; +$ref_files{$key} = "$dir".q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rt/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtcorba/; +$ref_files{$key} = "$dir".q|node26.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_seti/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtinfo/; +$ref_files{$key} = "$dir".q|node43.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_symbian/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_tanenbaum/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_gnuplot/; +$ref_files{$key} = "$dir".q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:taopoa/; +$ref_files{$key} = "$dir".q|node44.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:namingservice/; +$ref_files{$key} = "$dir".q|node33.html|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/diplomathesis/labels.pl b/diplomathesis/labels.pl new file mode 100644 index 0000000..099c13b --- /dev/null +++ b/diplomathesis/labels.pl @@ -0,0 +1,1057 @@ +# LaTeX2HTML 2002-2-1 (1.71) +# Associate labels original text with physical files. + + +$key = q/img:sysLast0108/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilungOhneLast1/; +$external_labels{$key} = "$URL/" . q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sequenzV2/; +$external_labels{$key} = "$URL/" . q|node58.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rteventservice/; +$external_labels{$key} = "$URL/" . q|node34.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:Real-time/; +$external_labels{$key} = "$URL/" . q|node12.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_dcom/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_msnet/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_fw/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_dotgnutrumpf/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_vxworks/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_ioqos/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtevent/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ior/; +$external_labels{$key} = "$URL/" . q|node25.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_stroustrup/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_cpuburn/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:taosched/; +$external_labels{$key} = "$URL/" . q|node42.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_opc/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_espresso/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilung1/; +$external_labels{$key} = "$URL/" . q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v2/; +$external_labels{$key} = "$URL/" . q|node56.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_integrity/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:corbaext/; +$external_labels{$key} = "$URL/" . q|node26.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_OSADL/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_morfeo/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_netremoting/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rtinfo/; +$external_labels{$key} = "$URL/" . q|node43.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:opensource/; +$external_labels{$key} = "$URL/" . q|node11.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:distsys/; +$external_labels{$key} = "$URL/" . q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_pnetstate/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_iiop/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_online:kath/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_kernel/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cap:lastsim/; +$external_labels{$key} = "$URL/" . q|node38.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:RTCORBAPrioPorts/; +$external_labels{$key} = "$URL/" . q|node68.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_devguide/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:policies/; +$external_labels{$key} = "$URL/" . q|node22.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_corbaspec/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_visibroker/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_taohp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_trumpfhp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_distcc/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_footprint/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_daisspec/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_catalyst/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_OSADLLinux/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_ice/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_threadpools/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_jini/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:iiopdemo/; +$external_labels{$key} = "$URL/" . q|node76.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:ace/; +$external_labels{$key} = "$URL/" . q|node40.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_jacorb/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5_1-100/; +$external_labels{$key} = "$URL/" . q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:demoapp/; +$external_labels{$key} = "$URL/" . q|node76.html|; +$noresave{$key} = "$nosave"; + +$key = q/rttao/; +$external_labels{$key} = "$URL/" . q|node41.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0149/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v3/; +$external_labels{$key} = "$URL/" . q|node65.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_odva/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_schmidthp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_acehp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:integration/; +$external_labels{$key} = "$URL/" . q|node77.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5cisco/; +$external_labels{$key} = "$URL/" . q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5foto/; +$external_labels{$key} = "$URL/" . q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:distcc/; +$external_labels{$key} = "$URL/" . q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v1/; +$external_labels{$key} = "$URL/" . q|node45.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v3/; +$external_labels{$key} = "$URL/" . q|node63.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:corba/; +$external_labels{$key} = "$URL/" . q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:distsys/; +$external_labels{$key} = "$URL/" . q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:minCORBA/; +$external_labels{$key} = "$URL/" . q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_aceguide/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rmi/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:generic/; +$external_labels{$key} = "$URL/" . q|node78.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:homagdais/; +$external_labels{$key} = "$URL/" . q|node79.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_can/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_pattern/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5_0/; +$external_labels{$key} = "$URL/" . q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilung2/; +$external_labels{$key} = "$URL/" . q|node60.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v5/; +$external_labels{$key} = "$URL/" . q|node66.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_black/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_grub/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:dataLat/; +$external_labels{$key} = "$URL/" . q|node62.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_love:kernel/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ace/; +$external_labels{$key} = "$URL/" . q|node40.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:prioRec/; +$external_labels{$key} = "$URL/" . q|node49.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:portprio/; +$external_labels{$key} = "$URL/" . q|node69.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_soap/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:grundlagen/; +$external_labels{$key} = "$URL/" . q|node9.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:ior/; +$external_labels{$key} = "$URL/" . q|node25.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_powerlink/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilungOhneLast2/; +$external_labels{$key} = "$URL/" . q|node60.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:v4/; +$external_labels{$key} = "$URL/" . q|node63.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_csv/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_mono/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_diffserv/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_trumpflaserhp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:rtcom/; +$external_labels{$key} = "$URL/" . q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_remcorba/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtcorbaspec/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_stevens/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_schmidt:taoinstall/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0116/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_hp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:prioSup/; +$external_labels{$key} = "$URL/" . q|node49.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0213/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_corbaservices/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:embedded/; +$external_labels{$key} = "$URL/" . q|node14.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:poa/; +$external_labels{$key} = "$URL/" . q|node21.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_xdd/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:services/; +$external_labels{$key} = "$URL/" . q|node32.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:orb/; +$external_labels{$key} = "$URL/" . q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:rtmess/; +$external_labels{$key} = "$URL/" . q|node37.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_eventspec/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_ce/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:csharpcorba/; +$external_labels{$key} = "$URL/" . q|node72.html|; +$noresave{$key} = "$nosave"; + +$key = q/cap:reprio/; +$external_labels{$key} = "$URL/" . q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rePrioRec/; +$external_labels{$key} = "$URL/" . q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_iceintro/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_homaghp/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ice/; +$external_labels{$key} = "$URL/" . q|node35.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_interbus/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_soreduce/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtos/; +$external_labels{$key} = "$URL/" . q|node13.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v4/; +$external_labels{$key} = "$URL/" . q|node61.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0136/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:mapping/; +$external_labels{$key} = "$URL/" . q|node24.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_namingspec/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_linutronix/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_taoscheduling/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:diffServData/; +$external_labels{$key} = "$URL/" . q|node68.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sqV1/; +$external_labels{$key} = "$URL/" . q|node46.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:2Consumer/; +$external_labels{$key} = "$URL/" . q|node62.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_cancorba1/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_trumpfprog/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_bal:dist/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_tektronix/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rePrioSup/; +$external_labels{$key} = "$URL/" . q|node54.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:idl/; +$external_labels{$key} = "$URL/" . q|node23.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_os9/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_omg/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_linuxwiki/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_egiiop/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:versuche/; +$external_labels{$key} = "$URL/" . q|node36.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_mysql/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtlinux/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:embedded/; +$external_labels{$key} = "$URL/" . q|node14.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0100/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_orbacus/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_dotgnu/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_throughput/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_sercos/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:tao/; +$external_labels{$key} = "$URL/" . q|node41.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rtwiki/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_acelog/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:orb/; +$external_labels{$key} = "$URL/" . q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:IIOP.NET/; +$external_labels{$key} = "$URL/" . q|node73.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_raymond:cathedral/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_kontron/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/img:objreq/; +$external_labels{$key} = "$URL/" . q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/tab:sysLastMatrix/; +$external_labels{$key} = "$URL/" . q|node51.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_rt/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtcorba/; +$external_labels{$key} = "$URL/" . q|node26.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_seti/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtinfo/; +$external_labels{$key} = "$URL/" . q|node43.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_symbian/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_tanenbaum/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/cite_gnuplot/; +$external_labels{$key} = "$URL/" . q|node86.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:taopoa/; +$external_labels{$key} = "$URL/" . q|node44.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:namingservice/; +$external_labels{$key} = "$URL/" . q|node33.html|; +$noresave{$key} = "$nosave"; + +1; + + +# LaTeX2HTML 2002-2-1 (1.71) +# labels from external_latex_labels array. + + +$key = q/img:v5_0/; +$external_latex_labels{$key} = q|31|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0108/; +$external_latex_labels{$key} = q|15|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilungOhneLast1/; +$external_latex_labels{$key} = q|19|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilung2/; +$external_latex_labels{$key} = q|23|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v5/; +$external_latex_labels{$key} = q|3.3.7|; +$noresave{$key} = "$nosave"; + +$key = q/img:dataLat/; +$external_latex_labels{$key} = q|25|; +$noresave{$key} = "$nosave"; + +$key = q/img:sequenzV2/; +$external_latex_labels{$key} = q|21|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ace/; +$external_latex_labels{$key} = q|3.3.1|; +$noresave{$key} = "$nosave"; + +$key = q/tab:prioRec/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/tab:portprio/; +$external_latex_labels{$key} = q|8|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rteventservice/; +$external_latex_labels{$key} = q|2.8.2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:grundlagen/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:Real-time/; +$external_latex_labels{$key} = q|2.3|; +$noresave{$key} = "$nosave"; + +$key = q/tab:ior/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:demo/; +$external_latex_labels{$key} = q|6|; +$noresave{$key} = "$nosave"; + +$key = q/img:v4/; +$external_latex_labels{$key} = q|26|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilungOhneLast2/; +$external_latex_labels{$key} = q|22|; +$noresave{$key} = "$nosave"; + +$key = q/img:rtcom/; +$external_latex_labels{$key} = q|12|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ior/; +$external_latex_labels{$key} = q|2.6.5|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0116/; +$external_latex_labels{$key} = q|16|; +$noresave{$key} = "$nosave"; + +$key = q/sec:cpx/; +$external_latex_labels{$key} = q|A.2|; +$noresave{$key} = "$nosave"; + +$key = q/tab:prioSup/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/sec:taosched/; +$external_latex_labels{$key} = q|3.3.2.1|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0213/; +$external_latex_labels{$key} = q|17|; +$noresave{$key} = "$nosave"; + +$key = q/img:optVerteilung1/; +$external_latex_labels{$key} = q|20|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v2/; +$external_latex_labels{$key} = q|3.3.4|; +$noresave{$key} = "$nosave"; + +$key = q/img:embedded/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:poa/; +$external_latex_labels{$key} = q|2.6.1.4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:footprint/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:services/; +$external_latex_labels{$key} = q|2.8|; +$noresave{$key} = "$nosave"; + +$key = q/sec:orb/; +$external_latex_labels{$key} = q|2.6.1|; +$noresave{$key} = "$nosave"; + +$key = q/img:corbaext/; +$external_latex_labels{$key} = q|2.7|; +$noresave{$key} = "$nosave"; + +$key = q/img:demo1GUIDesign/; +$external_latex_labels{$key} = q|38|; +$noresave{$key} = "$nosave"; + +$key = q/img:rtmess/; +$external_latex_labels{$key} = q|8|; +$noresave{$key} = "$nosave"; + +$key = q/sec:sysconfigSoft/; +$external_latex_labels{$key} = q|A.1|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rtinfo/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:opensource/; +$external_latex_labels{$key} = q|2.2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:csharpcorba/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/sec:linuxgperf/; +$external_latex_labels{$key} = q|A.1.3|; +$noresave{$key} = "$nosave"; + +$key = q/cap:reprio/; +$external_latex_labels{$key} = q|3.3.3.4|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rePrioRec/; +$external_latex_labels{$key} = q|7|; +$noresave{$key} = "$nosave"; + +$key = q/sec:distsys/; +$external_latex_labels{$key} = q|2.5|; +$noresave{$key} = "$nosave"; + +$key = q/sec:ice/; +$external_latex_labels{$key} = q|2.9|; +$noresave{$key} = "$nosave"; + +$key = q/cap:latencsrc/; +$external_latex_labels{$key} = q|B.1|; +$noresave{$key} = "$nosave"; + +$key = q/cap:lastsim/; +$external_latex_labels{$key} = q|3.2|; +$noresave{$key} = "$nosave"; + +$key = q/img:RTCORBAPrioPorts/; +$external_latex_labels{$key} = q|30|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtos/; +$external_latex_labels{$key} = q|2.3.1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v4/; +$external_latex_labels{$key} = q|3.3.5|; +$noresave{$key} = "$nosave"; + +$key = q/sec:policies/; +$external_latex_labels{$key} = q|2.6.2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:mapping/; +$external_latex_labels{$key} = q|2.6.4|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0136/; +$external_latex_labels{$key} = q|14|; +$noresave{$key} = "$nosave"; + +$key = q/sec:src/; +$external_latex_labels{$key} = q|C|; +$noresave{$key} = "$nosave"; + +$key = q/img:diffServData/; +$external_latex_labels{$key} = q|28|; +$noresave{$key} = "$nosave"; + +$key = q/img:sqV1/; +$external_latex_labels{$key} = q|11|; +$noresave{$key} = "$nosave"; + +$key = q/img:demo1uml/; +$external_latex_labels{$key} = q|37|; +$noresave{$key} = "$nosave"; + +$key = q/img:2Consumer/; +$external_latex_labels{$key} = q|24|; +$noresave{$key} = "$nosave"; + +$key = q/sec:impldemo1/; +$external_latex_labels{$key} = q|6.3|; +$noresave{$key} = "$nosave"; + +$key = q/img:iiopdemo/; +$external_latex_labels{$key} = q|5.4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:linuxtao/; +$external_latex_labels{$key} = q|A.1.4|; +$noresave{$key} = "$nosave"; + +$key = q/img:ace/; +$external_latex_labels{$key} = q|9|; +$noresave{$key} = "$nosave"; + +$key = q/sec:linuxace/; +$external_latex_labels{$key} = q|A.1.2|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5_1-100/; +$external_latex_labels{$key} = q|32|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtpreempt/; +$external_latex_labels{$key} = q|A.1.1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:demoapp/; +$external_latex_labels{$key} = q|5.4|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0149/; +$external_latex_labels{$key} = q|18|; +$noresave{$key} = "$nosave"; + +$key = q/rttao/; +$external_latex_labels{$key} = q|10|; +$noresave{$key} = "$nosave"; + +$key = q/sec:systemkonfigurationen/; +$external_latex_labels{$key} = q|A|; +$noresave{$key} = "$nosave"; + +$key = q/img:v3/; +$external_latex_labels{$key} = q|27|; +$noresave{$key} = "$nosave"; + +$key = q/tab:rePrioSup/; +$external_latex_labels{$key} = q|6|; +$noresave{$key} = "$nosave"; + +$key = q/sec:idl/; +$external_latex_labels{$key} = q|2.6.3|; +$noresave{$key} = "$nosave"; + +$key = q/img:op/; +$external_latex_labels{$key} = q|41|; +$noresave{$key} = "$nosave"; + +$key = q/sec:integration/; +$external_latex_labels{$key} = q|7|; +$noresave{$key} = "$nosave"; + +$key = q/sec:versuche/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/img:sysLast0100/; +$external_latex_labels{$key} = q|13|; +$noresave{$key} = "$nosave"; + +$key = q/sec:embedded/; +$external_latex_labels{$key} = q|2.4|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5cisco/; +$external_latex_labels{$key} = q|33|; +$noresave{$key} = "$nosave"; + +$key = q/img:distcc/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/img:v5foto/; +$external_latex_labels{$key} = q|34|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v1/; +$external_latex_labels{$key} = q|3.3.3|; +$noresave{$key} = "$nosave"; + +$key = q/sec:tao/; +$external_latex_labels{$key} = q|3.3.2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:v3/; +$external_latex_labels{$key} = q|3.3.6|; +$noresave{$key} = "$nosave"; + +$key = q/sec:corba/; +$external_latex_labels{$key} = q|2.6|; +$noresave{$key} = "$nosave"; + +$key = q/img:orb/; +$external_latex_labels{$key} = q|2.6.1|; +$noresave{$key} = "$nosave"; + +$key = q/img:distsys/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/img:minCORBA/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/sec:IIOP.NET/; +$external_latex_labels{$key} = q|5.1|; +$noresave{$key} = "$nosave"; + +$key = q/tab:sysLastMatrix/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/img:objreq/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtcorba/; +$external_latex_labels{$key} = q|2.7|; +$noresave{$key} = "$nosave"; + +$key = q/sec:generic/; +$external_latex_labels{$key} = q|7.1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:rtinfo/; +$external_latex_labels{$key} = q|3.3.2.1|; +$noresave{$key} = "$nosave"; + +$key = q/img:homagdais/; +$external_latex_labels{$key} = q|39|; +$noresave{$key} = "$nosave"; + +$key = q/sec:taopoa/; +$external_latex_labels{$key} = q|3.3.2.2|; +$noresave{$key} = "$nosave"; + +$key = q/sec:namingservice/; +$external_latex_labels{$key} = q|2.8.1|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/diplomathesis/node1.html b/diplomathesis/node1.html new file mode 100644 index 0000000..7e54979 --- /dev/null +++ b/diplomathesis/node1.html @@ -0,0 +1,122 @@ + + + + + +Zusammenfassung + + + + + + + + + + + + + + + + + + + + + +

+Zusammenfassung +

+ +

+Computerbasierte Steuerungen werden in der Automatisierungstechnik immer häufiger eingesetzt. Die Verfügbarkeit von Libraries und Betriebssystemen versprechen einen schnellen Entwicklungszyklus, sowie niedrigere Entwicklungskosten. In der Automatisierungstechnik werden mehrere Steuerungen, die zur Bearbeitung eines Prozesses notwendig sind, miteinander verbunden. Oft muß die Kommunikation zwischen den Steuerungen harte Echtzeitbedingungen erfüllen. +Im Idealfall sollte eine Kommunikation in Echtzeit mit PC Standardkomponenten möglich sein, da zusätzliche Hardware nur mit entsprechenden Treibern funktioniert. Diese müßten für alle erdenklichen Zielplattformen und Betriebssysteme implementiert werden. + +

+Momentan hat sich für eine plattformunabhängige Echtzeitkommunikation, welche den beschriebenen Kriterien in der Automatisierungstechnik genügt, kein Standard etabliert. +Es gibt nur einen Standard, welcher die geforderten Kriterien erfüllt: die OMG Spezifikation Real-time CORBA. +Das ACE/TAO Framework von Douglas C. Schmidt ist die umfassenste Implementation des Real-time CORBA Standards in C++ und steht für unzählige Plattformen zur Verfügung. + +

+In dieser Arbeit wurde evaluiert, ob das ACE/TAO Framework für den Einsatz in einer auf Real-time Linux basierenden Lasersteuerung geeignet ist. + +

+Zur Ermittlung der Performance von ACE/TAO wurden Ende zu Ende Messungen zwischen mehreren embedded Real-time Linux Systemen durchgeführt. Es wurde festgestellt, dass ein 1kByte großes Prozessabbild garantiert innerhalb 1 ms via Real-time CORBA zwischen zwei embedded Systemen übertragen werden kann. +Desweiteren wurden Messungen durchgeführt, bei denen mehrere embedded Systeme verschieden priorisierte Nachrichten versenden. Eine Priority Inversion konnte bei korrekter Programmierung nicht nachgewiesen werden. + +

+Zur Laufzeit wurde zu keinem Zeitpunkt ein Footprint größer 1 Megabyte im Arbeitsspeicher festgestellt. +Die Libraries für die gängigen ACE/TAO Funktionen benötigen circa 30 Megabyte Massenspeicher. + +

+Um einen Zugriff auf die Daten der Steuerungen von .NET/C# aus zu ermöglichen, wurden verschiedene Ansätze zur Integration von CORBA in das .NET Framework untersucht. +Als Machbarkeitsstudie wurde eine Applikation mit IIOP.NET zur Kopplung an .NET Remoting und GTK# für die grafische Bedienoberfläche entwickelt. Es wurde gezeigt, dass es möglich ist mittels IIOP.NET in C# ein CORBA Objekt zu hosten und auf via ACE/TAO Applikation gehostete CORBA Objekte zuzugreifen. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node10.html b/diplomathesis/node10.html new file mode 100644 index 0000000..b52145f --- /dev/null +++ b/diplomathesis/node10.html @@ -0,0 +1,174 @@ + + + + + +Kommunikation in der Automatisierungstechnik + + + + + + + + + + + + + + + + + + + + + +

+Kommunikation in der Automatisierungstechnik +

+ +

+Computerbasierte Steuerungen werden auf verschiedenen Plattformen, in verschiedenen Programmiersprachen realisiert. Wünschenswert wäre eine plattform- und programmiersprachenunabhängige Kommunikation zwischen allen computerbasierten Steuerungen in Echtzeit. Es werden die Schwachstellen der momentan bekannten Kommunikationsstandards in der Automatisierungstechnik aufgeführt und Alternativen aufgezeigt. Es wird erläutert, weshalb sich die weiteren Untersuchungen auf die Middleware CORBA konzentrieren. + +

+Momentan werden hauptsächlich diese Techniken verwendet: + +

+

+
Bussysteme
+
wie Powerlink [ETHE07], Profinet, DeviceNet [HEAD07], CAN [CiA07], SERCOS-III [SERC07], InterBus [INTE07], ...erfordern spezielle Hardware in der Steuerung. Die benötigten Treiber sind oft nur für wenige Plattformen verfügbar. +
+
Softwarekopplung
+
Es gibt die Standards DCOM [WIKI07a], OPC UA/XL [OPCF07] ..., welche nicht echtzeitfähig sind und eher auf die Bedürfnisse zur Überwachung von Steuerungen ausgelegt wurden, als zur Steuerung. +
+
+ +

+Es gibt weitere Standards, die in computerbasierte Steuerungen integriert werden könnten: + +

+

+
neues Protokoll
+
bedeutet enormen Aufwand, da es in sämtliche Systeme implementiert werden muß. +
+
Webservices
+
wie SOAP [W3C07] blähen die zu übertragenden Daten enorm auf. Eine schnelle Datenübertragung ist nicht realisierbar. +
+
Middleware
+
wird zur Kommunikation zwischen Plattformen und Programmiersprachen eingesetzt: + +
    +
  • RMI [Netw07b] und JINI [Netw07a] sind nur für die JAVA Plattform verfügbar und bieten keine Möglichkeit zur Echtzeitkommunikation +
  • +
  • Ice [Zero07a] plattform- und programmiersprachenunabhängig, allerdings nicht echtzeitfähig, dafür sehr schnell (siehe auch Kapitel 2.9) +
  • +
  • CORBA ist ein Standard für den auch eine Real-time Erweiterung definiert wurde. Da es für fast jedes System eine CORBA Implementierung gibt, ist mit dieser Technologie eine plattform- und programmiersprachenunabhängige Echtzeitkommunikation denkbar +
  • +
+
+
+ +

+Vorteile von CORBA beim Einsatz in der Automatisierungstechnik: + +

+ +

+ +

+Nun muß geprüft werden, ob eine entsprechende CORBA Implementation auf einem embedded Real-time Linux System lauffähig ist, oder ob der Speicherbedarf zu groß für die beschränkten Ressourcen ist. Auch das Real-time Verhalten muß gemessen und gegebenenfalls optimiert werden. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node11.html b/diplomathesis/node11.html new file mode 100644 index 0000000..5c987ec --- /dev/null +++ b/diplomathesis/node11.html @@ -0,0 +1,121 @@ + + + + + +openSource Entwicklungsmodell + + + + + + + + + + + + + + + + + + + + + +

+ +
+openSource Entwicklungsmodell +

+ +

+Da es sich bei der eingesetzten Software um openSource Produkte handelt, wird im Folgenden auf die Besonderheiten einer derartig entwickelten Software eingegangen. + +

+openSource bedeutet nicht nur das Offenlegen der Quelltexte zu jeder Softwarerelease, sondern gewährleistet Zugriff auf die Quelldateien, auch während des Entwicklungsprozesses. Durch die permanente Verfügbarkeit der Quellen wurde openSource zu einer Technik des Softwareengineerings. + +

+Ein openSource Projekt wird von einem Maintainer geleitet. Seine Aufgabe ist, zu entscheiden, ob und in welchem Umfang Quellcode von der Community in die Quellen des Projekts übernommen wird. Die Community besteht in der Regel aus Programmierern und an dem Fortschritt der Software interessierten Benutzern. Meist wird in Mailinglisten diskutiert, ob und wie welche Features implementiert werden. openSource Projekte arbeiten benutzerorientiert. Um früh Feedback von den Benutzern der Software zu erhalten, wird diese in einem frühen Entwicklungsstadium veröffentlicht. + +

+In dem Buch The Cathedral And The Bazaar [Raym01] wird die Entwicklung einer openSource Software mit einem orientalischen Basar verglichen. Den openSource Methoden gegenübergestellt wird die Entstehung einer Software, deren Quellen nur bei einem Release offen gelegt werden: Kathedrale. Eine deutsche Zusammenfassung des Buches ist [Raym97]. + +

+Der Großteil der momentan kommerziell vertriebenen Software wird als closedSource angeboten. Der Kunde kauft die für ein bestimmtes System erstellten Binärdateien der Software. Anpassungen an die Bedürfnisse des Kunden können nur vom Hersteller der Software durchgeführt werden. Somit ist der Kunde bei Änderungswünschen und Support vom Hersteller abhängig. + +

+Bei openSource Software besteht in der Regel die Möglichkeit, nicht die Software, sondern Support für die Software zu kaufen. +Eigene Features können entweder selber in die Software, oder durch die openSource Community gegen Bezahlung, implementiert werden. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node12.html b/diplomathesis/node12.html new file mode 100644 index 0000000..439b139 --- /dev/null +++ b/diplomathesis/node12.html @@ -0,0 +1,160 @@ + + + + + +Echtzeitsystem + + + + + + + + + + + + + + + + + + + + + +

+ +
+Echtzeitsystem +

+ +

+Zunächst werden zum weiteren Verständnis notwendige Begriffe definiert, anschließend wird auf den Unterschied zwischen harter und weicher Echtzeit eingegangen. Die Anforderungen an ein Echtzeitsystem werden geschildert. Am Beispiel von Funktionalitäten eines Autos wird die Dringlichkeit von Priorisierung vermittelt. In einem Unterkapitel werden die Unterschiede zwischen einem konventionellen und einem Echtzeit Betriebssystem erläutert. + +

+

+
Latenzzeit
+
ist die Dauer zwischen Aktion (zum Beispiel Tastendruck) und Reaktion (Darstellung des entsprechenden Zeichens auf dem Bildschirm). +
+
maximale Ausführungszeit
+
eines Programms, ist die Zeit, die das Programm benötigt um Datensätze zu verarbeiten (wird in der Regel als Formel abhängig von angegeben). +
+
Priorität
+
beschreibt die Dringlichkeit eine Aufgabe abzuarbeiten. Je höher die Priorität desto wichtiger ist die Bearbeitung. +
+
Deadline
+
definiert den Zeitpunkt zu dem das Programm garantiert ein Ergebnis berechnet haben muß: +. Ein Ergebnis nach diesem Zeitpunkt ist unter harten Echtzeitbedingungen unbrauchbar. +
+
+ +

+Ein Echtzeitsystem mit harten Echtzeitanforderungen garantiert, dass das Ergebnis einer Berechnung innerhalb eines vorgegebenen Zeitintervalls + geliefert wird. Die maximal erlaubte Bearbeitungsdauer + für die Berechnung und die Einheit des Zeitintervalls wird von den Anforderungen an die Anwendung definiert. + +

+Um harte Echtzeitbedingungen in einem System gewährleisten zu können, müssen: + +

+ +

+Ist von weichen Echtzeitanforderungen die Rede, so darf ein definierter, geringer Prozentsatz aller Anfragen die Deadline überschreiten. In industriellen Steuerungen ist diese Echtzeit unbrauchbar. + +

+In der Regel sind nicht alle Aufgaben einer Applikation zeitkritisch. Beispielsweise ist es in einem Auto unverzichtbar, dass Sicherheitsfunktionen wie Airbag, ABS, ESP rechtzeitig funktionieren. Unwichtiger ist, dass der elektrische Fensterheber in kritischen Situationen latenzfrei reagiert. Dies geschieht, indem die Sicherheitsfunktionen höher priorisiert werden, als die Komfortfunktionen. Eine Komfortfunktion darf niemals das Abarbeiten einer Sicherheitsfunktion behindern. Würde dies geschehen, wäre von einer Priority Inversion die Rede. + +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node13.html b/diplomathesis/node13.html new file mode 100644 index 0000000..3d7e541 --- /dev/null +++ b/diplomathesis/node13.html @@ -0,0 +1,127 @@ + + + + + +RTOS + + + + + + + + + + + + + + + + + + + + +

+ +
+RTOS - Real-time Operating System - Echtzeitbetriebssystem +

+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öher priorisierte Aufgabe, als die die gerade bearbeitet wird eintrifft, muß ein RTOS die neu eingetroffene Aufgabe bearbeiten. Um dies ohne Zeitverluste gewährleisten zu können, muß bei einem RTOS das Auffinden der Aufgabe mit der höchsten Priorität in der Warteliste sehr effektiv implementiert sein. + +

+Beim Umgang mit Semaphoren und Mutexen muß bei der Implementation eines RTOS zusätzlich darauf geachtet werden, dass es bei verschieden priorisierten Aufgaben zu einer unerwünschten Priority Inversion kommen kann. Eine niedrig priorisierte Aufgabe hält einen Mutex. Dieser wird kurz darauf von einer höher priorisierten Aufgabe angefordert. In diesem Fall muß vermieden werden, dass die höher priorisierte Aufgabe solange blockiert, bis die niedriger Priorisierte den Mutex freigibt. + +

+Ein RTOS muß die Abarbeitung von Interrupts cachen, damit diese nicht die Ausführung von Echtzeitaufgaben beeinflussen. + +

+Die Reservierung von Speicher muß in konstanter Zeit, unabhängig von der Menge des angeforderten Speichers erfolgen. Bietet das RTOS dieses Feature nicht, muß der Programmierer vor der Echtzeitbearbeitung den von der Echtzeitroutine benötigten Speicher reservieren. + +

+Der vanilla Linux Kernel [The 07] bietet momentan noch keine ausreichende Grundlage für harte Echtzeit unter Linux. Der RT_ PREEMPT PATCH ([Moln07] und [Ts'o07]) von Ingo Molnar et al., faßt die nötigen Änderungen für harte Echtzeit gegenü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ächsten Kernel Releases folgen. + +

+Neben Linux mit RT_ PREEMPT Patch gibt es weitere (zum Teil kommerzielle) RTOSes. Ein kleiner Auszug bekannter Systeme: RTLinux [FSML07], INTEGRITY [Gree07], Symbian OS [Limi07], VxWorks [RIVE07], Windows CE [Micr07], Microware OS 9 [Radi07].... + +

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

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node14.html b/diplomathesis/node14.html new file mode 100644 index 0000000..c93b1ab --- /dev/null +++ b/diplomathesis/node14.html @@ -0,0 +1,97 @@ + + + + + +embedded Systems + + + + + + + + + + + + + + + + + + + + + +

+ +
+embedded Systems +

+Ein embedded System wird für einen bestimmten Einsatzzweck in einem Gerät (Handy, CNC-Steuerung, Mikrowelle, Bordcomputer) entwickelt. Es wird in der Regel auf die standardisierte PC Peripherieschnittstellen (PS/2, Audio Out, USB, ...) verzichtet. Dafür besitzt ein solches System je nach Einsatzgebiet spezialisierte Schnittstellen, von parallelen I/O Ports, bis zu Feldbusinterfaces. + +

+In den meisten Fällen werden CPU, RAM, ROM, HDD (in Form eines Flashspeichers) und Schnittstellenwandlerbausteine (z.B. MAX 232 zur Generierung eines V24 COM-Port Signals) auf einer Platine verlötet (siehe Abb. 1). + +

+ +

+ + + +
Figure 1: +embedded System (Quelle: http://www.acmesystems.it)
+
+[width=0.5]./img/acmesystems.jpg + +
+
+
+ +

+Je nach Einsatzzweck wird das System in Assembler programmiert, oder die Applikation oberhalb eines Betriebssystems ausgeführt. + +

+Da embedded Systeme über einen längeren Zeitraum als Desktop PCs eingesetzt werden und die Betriebsumgebungen deutlich härter sind, müssen diese robuster und wartungsarmer gebaut werden. Dies hat zur Folge, dass embedded Systeme nicht so leistungsfähig sind wie ein ebenso aktueller PC. Trotzdem müssen embedded Systeme oft zeitkritische Berechnungen durchführen. Der Entwickler muß deshalb sparsam mit den Ressourcen umgehen. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node15.html b/diplomathesis/node15.html new file mode 100644 index 0000000..38cc75d --- /dev/null +++ b/diplomathesis/node15.html @@ -0,0 +1,154 @@ + + + + + +verteilte Systeme + + + + + + + + + + + + + + + + + + + + + +

+ +
+verteilte Systeme +

+ +

+Nach der Definition des Begriffs wird an Beispielen der Einsatz von verteilten Systemen beschrieben. + +

+Für den Begriff verteiltes System, englisch Distributed System gibt es viele Definitionen. + +
+
+ +
+ +

+...entspricht meiner Ansicht eines verteilten Systems. + +

+ +

+ + + +
Figure 2: +verteiltes System
+
+[width=0.6]./img/distsys.jpg + +
+
+
+ +

+Da sich die zu einem verteilten System zusammengefassten Rechner in der Regel keinen Speicherbereich teilen können und Informationen über Benutzereingaben, Anfragen, Ergebnisse und Zustände austauschen müssen ist eine Kommunikation über ein Netzwerk unumgänglich (siehe Abb. 2). + +

+Ein Fallbeispiel: Der Benutzer tippt seine Aufgabe an Comp1 ein (1). Dieser sendet über das Netzwerk die Aufgabenstellung an den Spezialisten für diesen Aufgabentyp, Comp3 (2). Comp3 berechnet die Lösung und sendet diese an Comp1 (3) zurück. Für den Benutzer ist nicht ersichtlich ob Comp1, Comp2 oder Comp3 die Lösung berechnet hat. + +

+distcc: Overhead bei Senden, Empfangen, Abhängigkeiten +[f][width=8.5cm]./img/distccmon.jpg +Die verteilte Aufgabenbearbeitung ermöglicht das Nutzen ungenutzter +Rechenkapazitäten, wie beispielsweise bei SETI@home[*] oder distcc[*] (siehe Abb. 3). + +

+In verteilten Systemen, in denen mehrere Computer den selben Dienst anbieten, +kann die Rechenleistung des verteilten Systems gesteigert werden, indem ein +weiterer Computer in das System eingebunden wird. Diese Leistungssteigerung +verhält sich allerdings keineswegs linear zur Rechnerzahl, da auch die Verwaltung +der Aufgabenverteilung, das Sichern des Systems vor einem Komplettstillstand, +falls ein Rechner ausfällt und eventuell vorhandene Abhängigkeiten von +Berechnungen, einen nicht zu vernachlässigenden Verwaltungsaufwand bedeuten. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node16.html b/diplomathesis/node16.html new file mode 100644 index 0000000..1dcb28c --- /dev/null +++ b/diplomathesis/node16.html @@ -0,0 +1,184 @@ + + + + + +CORBA + + + + + + + + + + + + + + + + + + + + + +

+ +
+CORBA +

+ +

+Es werden CORBA Implementationen vorgestellt, sowie die Komponenten und das Funktionsprinzip von CORBA erklärt. + +

+CORBA ist eine sehr detailierte Spezifikation der Object Management Group (OMG) [Obje07]. Diese Spezifikation wurde in verschiedenen Programmiersprachen von Softwareunternehmen und openSource Communities komplett oder nur teilweise implementiert. Eine CORBA Implementierung wird auch CORBA Distribution genannt. Die verschiedenen Distributionen sind, solange man sich auf die in der Spezifikation beschriebenen CORBA Features beschränkt, untereinander kompatibel. + +

+Einige CORBA Implementierungen: + +

+

+
JacORB
+
[Spie07] ist eine freie openSource Implementation auf Java Basis mit einigen Monitoring Tools +
+
Orbacus
+
[Tech07] von IONA auf Java basierende kommerzielle Implementation +
+
Visibroker
+
[Corp07a] von Borland, unterstützt: Java, C++ und die .NET Sprachen +
+
The ACE Orb (TAO)
+
[Schm07c] sehr komplette, freie, plattformunabhängige, openSource Implementation in C++ (Details siehe Kapitel 3.3.2) +
+
+ +

+ein einfaches CORBA System +[width=0.5]./img/minCORBA.jpg + +

+Ein CORBA System besteht aus mindestens einem CORBA Server und einem CORBA Client (siehe Abb. 4). + +

+Der CORBA Server stellt ein oder mehrere Objekte zur Verfügung. Der CORBA Client kann diese Objekte aus seiner Applikation heraus ansprechen. Die Programmlogik ist dabei die Selbe, als würden sich die vom Server zur Verfügung gestellten Objekte tatsächlich auf dem Client befinden. + +

+CORBA Object Request +[width=0.45]./img/objRequest.jpg + +

+Abbildung 5 zeigt den Ablauf einer Objektanfrage. Der Stub serialisiert die zu übertragenden Parameter. Der Object Request Broker (siehe Kapitel 2.6.1) routet die Anfrage zum Skeleton des entsprechenden Objekts, welcher die übermittelten Parameter deserialisiert und den eigentlichen Aufruf absetzt. + +

+Die Schnittstelle, zu dem vom Server angebotenen Objekt, wird in Interface Definition Language (IDL, siehe Kapitel 2.6.3) definiert. + +

+
+
+
+
+ +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node17.html b/diplomathesis/node17.html new file mode 100644 index 0000000..8106797 --- /dev/null +++ b/diplomathesis/node17.html @@ -0,0 +1,100 @@ + + + + + +ORB + + + + + + + + + + + + + + + + + + + + + +

+ +
+ORB - Object Request Broker +

+ +

+Der ORB routet Objektaufrufe zu dem zugehörigen Objekt und sorgt dafür, dass zu einem Aufruf gehörende out-, inout-Parametern und Exceptions an das aufrufende Objekt zurückgeroutet werden. + +

+ +

+ + + +
Figure 6: +ORB mit Schnittstellen zu Applikation und System
[width=]./img/orb.jpg
+
+ +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node18.html b/diplomathesis/node18.html new file mode 100644 index 0000000..26e80f0 --- /dev/null +++ b/diplomathesis/node18.html @@ -0,0 +1,85 @@ + + + + + +ORB Interface + + + + + + + + + + + + + + + + + + + + + +

+ORB Interface +

+Das ORB Interface bietet Zugriff auf initiale CORBA Funktionen, wie zum Beispiel: + + + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node19.html b/diplomathesis/node19.html new file mode 100644 index 0000000..d3952f7 --- /dev/null +++ b/diplomathesis/node19.html @@ -0,0 +1,71 @@ + + + + + +IFR - Interface Repository + + + + + + + + + + + + + + + + + + + + + +

+IFR - Interface Repository +

+ORBs pflegen ein Interface Repository (IFR) in dem alle deaktivierten und aktivierten Objekte aufgelistet sind. Anhand eines Schlüssels (IOR - siehe Kapitel 2.6.5), welcher eine Anfrage abbildet, wird im IFR das zugehörige Objekt gefunden. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node2.html b/diplomathesis/node2.html new file mode 100644 index 0000000..07b2d04 --- /dev/null +++ b/diplomathesis/node2.html @@ -0,0 +1,132 @@ + + + + + +Abstract + + + + + + + + + + + + + + + + + + + + + +

+Abstract +

+ +

+PC based controls are getting more and more popular. +Operating Systems and a huge number of special libraries guarantee a fast development process. +Real-time communication between drives often is important in automation. +Most suitable is a Real-time communication based on standard pc hardware. +In this case there is no need to develop a special driver for each platform. + +

+Currently, there is no defined standard for a platform- and operatingsystem independet Real-time communication, in automation. +The only specification, which fulfills these needs, is OMGs Real-time CORBA. +ACE/TAO is an open source, platform-independent C++ implementation of this standard. +This thesis describes the process of research done, to check if ACE/TAO meets the requirements to be used in a industrial welding laser control, based on Real-time Linux. + +

+To measure the latency, for transmitting data between two embedded Linux systems, a test environment was build. +A square wave signal was put on a digital input of one system. +Each edge caused sending current digital port state + testdata via ethernet and Real-time CORBA to a second system. +On the second system the digital output ports where set to the state of the digital inputs on system one. +It was discovered, that 1kB data can be transmitted by ACE/TAO Real-time CORBA in 1 ms, under hard real-time conditions. +Measurements with more than 2 embedded systems and a Real-time ethernet switch were made to check, if priorisation works correctly. +As long as all components (ACE/TAO, Real-time switch, Real-time Linux) were configured in proper style, a Priority Inversion may not be evidenced. + +

+Memory Footprint in RAM was with less than 1 MB astonishing small, footprint in mass-storage with about 30 MB rather suboptimal. +The performance of the 600 MHz CPU on the embedded system satisfied all tests. + +

+A feasibility study discovers C#/.NET CORBA integration. +Most methods, available at the market, for establishing a CORBA connection out of C# were compared. +An example application to control a Real-time C++ process, out of a .NET/C#, GTK# graphical user interface, was created with mono, GTK#, IIOP.NET and ACE/TAO. +It demonstrates that it is possible to host a CORBA Object and to get access to a ACE/TAO hostet CORBA Object, out of C#. + + + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node20.html b/diplomathesis/node20.html new file mode 100644 index 0000000..2d7f557 --- /dev/null +++ b/diplomathesis/node20.html @@ -0,0 +1,71 @@ + + + + + +DII - Dynamic Invocation Interface + + + + + + + + + + + + + + + + + + + + + +

+DII - Dynamic Invocation Interface +

+Das Dynamic Invocation Interface (DII) bietet die Möglichkeit ein Objekt zu beschaffen, welches zum Zeitpunkt der Compilierung noch nicht definiert war. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node21.html b/diplomathesis/node21.html new file mode 100644 index 0000000..d45835d --- /dev/null +++ b/diplomathesis/node21.html @@ -0,0 +1,79 @@ + + + + + +POA + + + + + + + + + + + + + + + + + + + + +

+ +
+POA - Portable Object Adapter +

+Ein Portable Object Adapter (POA) ist serverseitig für die Erstellung von CORBA Objekten und deren Zuweisung zu vom Programmierer erstellten Objekten zuständig. +Objekte müssen hierzu mit Ihrem IOR (siehe Kapitel 2.6.5) bei einem POA registriert werden. + +

+Es besteht die Möglichkeit, zur Strukturierung der Objekte, unterhalb eines rootPOAs weitere POAs anzulegen. + +

+Zur Ressourcenschonung besteht die Möglichkeit anhand von Policies (siehe Kapitel 2.6.2) momentan von keinem Client benutzte Objekte zu deaktivieren und bei Bedarf wieder zu aktivieren. Dieser Vorgang lädt beziehungsweise entlädt ein Objekt in oder aus einem Servant. Ein Servant kann auch mehrere Objekte beherbergen und repräsentiert die Prozessor- und Speicheranbindung. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node22.html b/diplomathesis/node22.html new file mode 100644 index 0000000..13b2827 --- /dev/null +++ b/diplomathesis/node22.html @@ -0,0 +1,87 @@ + + + + + +Policies + + + + + + + + + + + + + + + + + + + + + +

+ +
+Policies +

+Policies werden einem POA zugewiesen, um den Umgang mit den Systemressourcen zu definieren. + +

+Es kann zum Beispiel definiert werden,... + +

+ +

+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node23.html b/diplomathesis/node23.html new file mode 100644 index 0000000..77d1eec --- /dev/null +++ b/diplomathesis/node23.html @@ -0,0 +1,80 @@ + + + + + +IDL + + + + + + + + + + + + + + + + + + + + + +

+ +
+IDL - Interface Definition Language +

+In der CORBA Spezifikation ist unter andrem die Interface Definition Language (IDL) spezifiziert. Diese dient der Definition von Schnittstellen, über welche mit den Objekten kommuniziert werden kann. Will man eine ganze Instanz eines Objektes übertragen, so muss eine Funktion definiert werden, welche das gewünschte Objekt zurückliefert. + +

+IDL unterstützt Vererbung, Namespaces, Typdefinitionen, Definitionen von Strukturen, Enumerationen, Unions und Exceptions, sowie die Spezifikation von Zugriffsrechten. +Übergabeparameter von Funktionen sind immer gerichtet (in, out oder inout). + +

+Ein IDL Compiler, welcher Bestandteil jeder CORBA Distribution ist, erzeugt aus dem IDL Code Programmcode, in einer vom ORB der Distribution unterstützten Programmiersprache. So entsteht mindestens ein ClientStub und ein ObjectSkeleton pro Schnittstelle. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node24.html b/diplomathesis/node24.html new file mode 100644 index 0000000..9969758 --- /dev/null +++ b/diplomathesis/node24.html @@ -0,0 +1,74 @@ + + + + + +DataType Mapping + + + + + + + + + + + + + + + + + + + + + +

+ +
+DataType Mapping +

+Der IDL Compiler (siehe Kapitel 2.6.3) ist für das Umsetzen der IDL Datentypen in Datentypen der Zielsprache zuständig. +In vielen Fällen (zum Beispiel bei int, float, ...) kann direkt in einen elementaren Datentyp der Zielprogrammiersprache gewandelt werden. Bei Datentypen, die in der Zielsprache nicht definiert sind erstellt der IDL Compiler Klassen, die den entsprechenden Datentyp repräsentieren. Beispielsweise für unsigned int in JAVA, oder selbst definierte Datentypen. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node25.html b/diplomathesis/node25.html new file mode 100644 index 0000000..af74344 --- /dev/null +++ b/diplomathesis/node25.html @@ -0,0 +1,121 @@ + + + + + +IOR + + + + + + + + + + + + + + + + + + + + +

+ +
+IOR - Interoperable Object Reference +

+Ähnlich einem ObjectPointer in C++ stellt die Interoperable Object Reference (IOR) den Aufenthaltsort eines Objektes dar. Eine IOR ist nicht auf den Speicherbereich des eigenen Programms beschränkt, sondern funktioniert weltweit, über das Internet. + +

+Es gibt verschiedene Möglichkeiten des IOR Aufbaus. In Tabelle 1 ist eine Möglichkeit dargestellt. + +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1: +Aufbau einer IOR
 Repository IDEndpointInfoObjectKey
BeispielIDL:nameSpace:1.0IIOP://myHost.de:56798073sad;fg
 IDL:nameSpace:/interFace:1.0  
 IDL:nameSpace:/interFace/function:1.0  
ErklärungPosition der Elemente in der IDLPosition des Servers[*]ORB spezifische
   ID
   
+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node26.html b/diplomathesis/node26.html new file mode 100644 index 0000000..bc177a6 --- /dev/null +++ b/diplomathesis/node26.html @@ -0,0 +1,136 @@ + + + + + +Real-time CORBA + + + + + + + + + + + + + + + + + + + + + +

+ +
+Real-time CORBA +

+ +

+Es wird auf die Voraussetzungen für Real-time CORBA [Obj05b] (RTCORBA) eingegangen, sowie die Erweiterungen zum CORBA Standard [Obj04] erläutert. + +

+Die OMG [Obje07] beschreibt in der Real-time CORBA Specification, einer optionalen Erweiterung zur CORBA Spezifikation, die Implementationsrichtlinien eines Real-time ORBs mit zeitlicher Ende zu Ende Vorhersagbarkeit. + +

+Um eine Ende zu Ende Vorhersagbarkeit zu erreichen, muß eine Ende zu Ende Vorhersagbarkeit in allen Komponenten des Systems möglich sein: + +

    +
  1. Scheduler des Betriebssystems +
  2. +
  3. Betriebssystemaufrufe +
  4. +
  5. ORB +
  6. +
  7. Netzwerk, oder andere eingesetzte Kommunikationswege +
  8. +
  9. Applikation +
  10. +
+ +

+Ist dies nicht der Fall, so kann keine Ende zu Ende Vorhersagbarkeit garantiert werden. Es ist bei einer Evaluation der Echtzeitfähigkeiten eines verteilten Systems zu beachten, dass alle Komponenten echtzeitfähig sind. Es genügt nicht, die Middleware alleine zu betrachten. + +

+ +

+ + + +
Figure 7: +Real-time CORBA Erweiterungen (Quelle: [Obj05b])
+
+[width=0.6]./img/rtcorbaext.jpg + +
+
+
+ +

+In Abbildung 2.7 sind die spezifizierten Erweiterungen und deren Position im CORBA Model dargestellt, welche im Folgenden genauer beschrieben werden. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node27.html b/diplomathesis/node27.html new file mode 100644 index 0000000..fb90946 --- /dev/null +++ b/diplomathesis/node27.html @@ -0,0 +1,71 @@ + + + + + +RTCORBA Priority + + + + + + + + + + + + + + + + + + + + + +

+RTCORBA Priority +

+Damit RTCORBA plattformunabängig Prioritäten richtig interpretiert, ist einem RTCORBA Objekt eine RTCORBA::Priority zugeordnet. Es kann nicht mit Betriebssystemprioritäten gearbeitet werden, da verschiedene Plattformen mit verschiedenen Prioritätenverteilungen arbeiten. Priority Mapping übersetzt die RTCORBA Priorität in die entsprechende Priorität auf dem Zielbetriebssystem. Über das RTCurrent Interface eines RTCORBA Objekts kann dessen Priorität zur Laufzeit verändert werden. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node28.html b/diplomathesis/node28.html new file mode 100644 index 0000000..5f56d33 --- /dev/null +++ b/diplomathesis/node28.html @@ -0,0 +1,71 @@ + + + + + +Scheduling Service + + + + + + + + + + + + + + + + + + + + + +

+Scheduling Service +

+Der Scheduling Service ist für das prioritätengesteuerte Umschalten zwischen Threads zuständig. Zum Beispiel, wenn eine höher priorisierte Anfrage während der Abarbeitung einer niedriger priorisierten Anfrage eintrifft. Hierzu kann je nach Implementierung zwischen verschiedenen Scheduling Algorithmen gewählt werden, oder eigene Algorithmen dynamisch eingebunden werden. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node29.html b/diplomathesis/node29.html new file mode 100644 index 0000000..90eef10 --- /dev/null +++ b/diplomathesis/node29.html @@ -0,0 +1,71 @@ + + + + + +RTORB - Real-time Object Request Broker + + + + + + + + + + + + + + + + + + + + + +

+RTORB - Real-time Object Request Broker +

+Ein Real-time Object Request Broker (RTORB) ist eine Erweiterung des Standard CORBA ORBs und für die Instanzen der Real-time CORBA Objekte verantwortlich. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node3.html b/diplomathesis/node3.html new file mode 100644 index 0000000..5a101e7 --- /dev/null +++ b/diplomathesis/node3.html @@ -0,0 +1,159 @@ + + + + + +Contents + + + + + + + + + + + + + + + + + + + + +
+ +

+Contents +

+ + + + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node30.html b/diplomathesis/node30.html new file mode 100644 index 0000000..98562c5 --- /dev/null +++ b/diplomathesis/node30.html @@ -0,0 +1,72 @@ + + + + + +Threadpool + + + + + + + + + + + + + + + + + + + + + +

+Threadpool +

+Threadpools [Pya01] stellen sicher, dass für eine bestimmte Objektzahl genügend voralokalisierte Ressourcen zur Verfügung stehen. Ein Threadpool ist mit einem Real-time Portable Object Adapter (RTPOA) verbunden. So kann sichergestellt werden, dass ein RTPOA nur begrenzte Ressourcen zur Verfügung hat. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node31.html b/diplomathesis/node31.html new file mode 100644 index 0000000..87b0cda --- /dev/null +++ b/diplomathesis/node31.html @@ -0,0 +1,73 @@ + + + + + +Priorisierung der Netzwerkverbindung + + + + + + + + + + + + + + + + + + + + +

+Priorisierung der Netzwerkverbindung +

+Zur Datenübertragung stehen verschiedene Protokolle zur Verfügung (z.B. IIOP, ESIOP, ...). Es kann auch selbst ein Netzwerkprotokoll definiert und eingebunden werden. + +

+Die Kommunikation kann über mehrere Verbindungen stattfinden, welche verschieden priorisiert sind (Priority Banded Connections) oder es kann die Objektpriorität auf das TOS Feld im IP Header gemapped werden. Bekommt ein RTORB eine nicht priorisierte Anfrage, z.B. von einem nicht Real-time fähigen ORB, so kann er diese entsprechend behandeln. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node32.html b/diplomathesis/node32.html new file mode 100644 index 0000000..6a32b4e --- /dev/null +++ b/diplomathesis/node32.html @@ -0,0 +1,91 @@ + + + + + +CORBA Services + + + + + + + + + + + + + + + + + + + + + +

+ +
+CORBA Services +

+ +

+Es gibt eine Vielzahl von der OMG spezifizierter CORBA Services [OMG07]. +CORBA Services sind CORBA Applikationen, die die CORBA Programmierung erleichtern, da sie oft benötigte Funktionalitäten zur Verfügung stellen. + +

+Es werden hier nur die Services beschrieben, welche in der Diplomarbeit benutzt werden. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node33.html b/diplomathesis/node33.html new file mode 100644 index 0000000..f98af9d --- /dev/null +++ b/diplomathesis/node33.html @@ -0,0 +1,77 @@ + + + + + +NamingService + + + + + + + + + + + + + + + + + + + + + +

+ +
+NamingService +

+Der CORBA NamingService [Obj03b] erleichtert das Auffinden von Objekten im Netzwerk. Der Server registriert ein Objekt mit Name und IOR (siehe Kapitel 2.6.5) beim NamingService. Ein Client kann anhand des Namens die IOR beim NamingService abrufen und dann mit Hilfe der IOR auf das Objekt zugreifen. + +

+Der NamingService wird per Multicast im Netz gesucht. Alternativ kann beim Start der CORBA Applikation, Host und Port des laufenden NamingServices als Parameter mitgegeben werden. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node34.html b/diplomathesis/node34.html new file mode 100644 index 0000000..373eae8 --- /dev/null +++ b/diplomathesis/node34.html @@ -0,0 +1,128 @@ + + + + + +RT EventService + + + + + + + + + + + + + + + + + + + + +

+ +
+RT EventService +

+Die CORBA Implementation TAO (siehe Kapitel 3.3.2) implementiert zusätzlich zu dem von der OMG spezifizierten EventService [Obj03a], einen Real-time EventService. Der von der OMG spezifizierte EventService empfängt Meldungen von sogenannten Suppliern. Eine Meldung besteht aus einem Header (SOURCE_ ID und TYPE) sowie einem Datenteil. + +

+Ein Consumer meldet sich bei einem EventService an. Hierbei gibt er an, wie der EventService ihm gegenüber auf neu eingetroffene Meldungen reagieren soll: + +

+

+
Pull Modell:
+
der Consumer schaut zyklisch beim Supplier nach, ob neue Meldungen vorhanden sind +
+
Push Modell:
+
der Supplier benachrichtet den Consumer über neue Meldungen... + +
    +
  • ...sobald eine neue Meldung eintrifft. +
  • +
  • ...sobald eine Meldung von bestimmten TYPE und, oder mit bestimmter SOURCE_ID eintrifft. +
  • +
  • ...in einem definierten Intervall (zum Beispiel alle 5 Sekunden) werden alle aufgelaufenen Meldungen (von bestimmtem TYPE und, oder mit bestimmter SOURCE_ID) weitergeleitet. +
  • +
+
+
+ +

+Der TAO Real-time EventService besitzt einen Scheduler um priorisierte Meldungen korrekt weiter zu verteilen. Da es in einer Echtzeitumgebung keinen Sinn macht Meldungen anzufordern, wurde das Pull Modell nicht implementiert. [Schm98] Seite 65 ff erläutert die Architektur des RT Event Services und die Unterschiede zur OMG EventService Spezifikation [Obj03a]. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node35.html b/diplomathesis/node35.html new file mode 100644 index 0000000..1ce6fc9 --- /dev/null +++ b/diplomathesis/node35.html @@ -0,0 +1,83 @@ + + + + + +Ice + + + + + + + + + + + + + + + + + + + + +

+ +
+Ice - Internet Communication Engine +

+ +

+Die Internet Communication Engine (Ice) [Zero07a] wird als hochperfomante Alternative zu CORBA angepriesen [Zero07b]. + +

+Zwar ist Ice [Hoch05] nicht Real-time fähig, dafür ebenso wie ACE/TAO plattform- und programmiersprachenunabhängig. Es wird eine Ice-Applikation zur Übertragung eines Prozessabbildes erstellt, um einen Vergleichswert für die Performance von ACE/TAO RTCORBA zu haben. + +

+Die Architektur von Ice ist sehr an die CORBA Architektur angelegt, allerdings deutlich einfacher gehalten. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node36.html b/diplomathesis/node36.html new file mode 100644 index 0000000..4009e52 --- /dev/null +++ b/diplomathesis/node36.html @@ -0,0 +1,240 @@ + + + + + +Performancebewertung + + + + + + + + + + + + + + + + + + + + + +

+ +
+Performancebewertung +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
One of the problems of taking things apart 
and seeing how they work 
supposing you're trying to find out how a cat works 
you take that cat apart to see how it works, 
what you've got in your hands is a non-working cat. 
The cat wasn't a sort of clunky mechanism 
that was susceptible to our available tools of analysis.Douglas Adams,
 Hitchhiker's Guide to the Galaxy
+ +

+
+
+
+ +

+...will man die Performance von Real-time Applikationen messen, ohne deren Echtzeitverhalten zu beeinflussen, ist man auch auf die richtige Art der Analyse angewiesen. Eine Messung per Software würde das Echtzeitverhalten der Applikationen beeinflussen. Deshalb entschied ich mich, die Messungen in Hardware durchzuführen. + +

+In diesem Kapitel werden Applikationen zur Übertragung von Prozessabbildern und Logdateien vorgestellt. Der aktuelle Zustand des Speicherbereichs, welcher die digitalen Ein- und Ausgänge eines Systems abbildet, wird Prozessabbild genannt. Dabei wird die Latenz bei der Übertragung des Prozessabbildes gemessen. Es wird erläutert wie die Latenz gemessen wurde. Außerdem wird auf den Aufbau des verwendeten ACE/TAO Frameworks eingegangen. + +

+In Anhang A ist die Hard- und Softwareumgebung beschrieben, in der die in diesem Kapitel beschriebenen Versuche durchgeführt wurden. + +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node37.html b/diplomathesis/node37.html new file mode 100644 index 0000000..711992c --- /dev/null +++ b/diplomathesis/node37.html @@ -0,0 +1,153 @@ + + + + + +Ende zu Ende Latenz messen + + + + + + + + + + + + + + + + + + + + + +

+Ende zu Ende Latenz messen +

+ +

+Es wurde eine Testumgebung (siehe Abb. 8) geschaffen, in der die Latenz bei der Übertragung von Prozessabbildern gemessen werden kann. + +

+Die entwickelten Applikationen ermöglichen es, mit einem Oszilloskop die Latenzzeit zu bestimmen. Hierzu wurde eine Rechteckspannung an einem digita"len Eingang des embedded Systems, im Folgenden CPX (siehe Anhang A.2) genannt, angelegt. Jede Änderung an einem digitalen Eingangsport wird über das verteilte System auf den digitalen Ausgang einer anderen CPX übertragen. + +

+Ein Speicheroszilloskop[*] zeichnet die generierte Rechteckspannung und das über das verteilte System übertragene Signal in einer CSV[*] Datei auf. + +

+ +

+./cap/ausschnitt.csv + +

+Im oben abgedruckten Ausschnitt aus einer aufgezeichneten CSV-Datei ist die Verzögerung des übertragenen Signals (3. Wert jeder Zeile) gegenüber dem Signal des Frequenzgenerators (2. Wert) am Polaritätswechsel zu erkennen. Der 1. Wert ist ein Zeitstempel. Zum Zeitpunkt in Zeile 4 wechselt das vom Frequenzgenerator generierte Signal (2. Wert) die Polarität. In Zeile 19 zum Zeitpunkt wechselt das übertragene Signal (3. Wert) die Polarität. Daraus kann die Latenz der Übertragung berechnet werden: +
+

+ + + + + +
+(1)
+

+Da eine einzige Latenzzeit nichts über die Qualität des Echtzeitsystems aussagt, wurde ein Programm erstellt, welches die komplette CSV-Datei auswertet. Es werden alle Latenzen (ansteigende und abfallende Flanke) berechnet. Ein Histogramm über die Latenzzeiten wird grafisch mit gnuplot [Will07] ausgegeben. Der Mittelwert, sowie Modalwert mit Spannweite in best und worst case Richtung werden bestimmt. Das Programm ist in der Lage ein weiteres Signal zu analysieren. Grafisch werden dessen Latenzschwankungen mit einer anderen Farbe im selben Diagramm dargestellt. Siehe auch Anhang B.1. + +

+Eine Programmierumgebung ist über niedrig priorisierte Ethernetports mit den beiden CPXen verbunden. Sie dient zum Compilieren und Übertragen der Quellen, sowie zum Erzeugen von Netzlast (siehe Kapitel 3.2). + +

+ +

+ + + +
Figure 8: +Versuchsaufbau für Latenzmessungen
+
+[width=]./img/versuch1.jpg + +
+
+
+ +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node38.html b/diplomathesis/node38.html new file mode 100644 index 0000000..3275df8 --- /dev/null +++ b/diplomathesis/node38.html @@ -0,0 +1,137 @@ + + + + + +Lastsimulationen + + + + + + + + + + + + + + + + + + + + + +

+ +
+Lastsimulationen +

+Um die Echtzeiteigenschaften des Systems zu überprüfen, werden die embedded PCs während den Messungen belastet: + +

+

+
Harddisk:
+
xdd -op read -targets 1 /dev/hda -reqsize 8000 -numregs 128 -verbose simuliert auf dem Rechner, auf dem das Kommando ausgeführt wird, lesende Zugriffe auf /dev/hda. Details siehe [I/O05]. +
+
Netzwerk:
+
Das Kommando ping -f -i 0 -l 100000 -s 1 -q IP wird von einem Rechner, welcher direkt mit einem niedrig priorisierten Ethernetport einer CPX verbunden ist, als Benutzer root ausgeführt. +
+
-f -i 0:
+
keine Pause zwischen den Anfragen +
+
-l:
+
Anzahl Pakete die gesendet werden ohne eine Antwort zu erhalten +
+
-s:
+
Paketgröße in Bytes +
+
-q:
+
quiet keine Ausgaben +
+
+Es wird eine sehr hohe Netzauslastung erzeugt. Dieser Befehl wird im Folgenden als flood ping bezeichnet. +
+
Prozessor:
+
./cpuburnP5 [Rede07] lastet die CPU des Rechners, auf dem das Kommando ausgeführt wird, voll aus. +
+
+ +

+Haben diese Lastsimulationen eine Auswirkung auf das Echtzeitverhalten, so deutet dies auf Schwachstellen im gepatchten Linuxkernel hin. + +

+Um die Echtzeitqualitäten des Schedulers eines verteilten Systems zu testen, müssen parallel zu den hochpriorisierten Prozessabbildübertragungen, nieder priorisierte, komplexe Berechnungen durchgeführt werden. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node39.html b/diplomathesis/node39.html new file mode 100644 index 0000000..e532c22 --- /dev/null +++ b/diplomathesis/node39.html @@ -0,0 +1,164 @@ + + + + + +RTCORBA Applikationen + + + + + + + + + + + + + + + + + + + + + +

+RTCORBA Applikationen +

+ +

+Zur Zeit ist ACE/TAO [Schm07c] die einzige CORBA Distribution, welche die OMG RTCORBA Spezifikation [Obj05b] größtenteils erfüllt und bereits produktiv eingesetzt wird. In Kapitel 3.3.1 und 3.3.2 wird das ACE/TAO Framework vorgestellt. An wichtigen Stellen wird die Implementation genauer beschrieben. Die Kapitel 3.3.3 bis 3.3.7 beschreiben die durchgeführten Versuche und Messungen, zur Ermittlung der Performance einer Real-time CORBA Datenkommunikation mit ACE/TAO. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node4.html b/diplomathesis/node4.html new file mode 100644 index 0000000..2489245 --- /dev/null +++ b/diplomathesis/node4.html @@ -0,0 +1,106 @@ + + + + + +Einführung + + + + + + + + + + + + + + + + + + + + + +

+Einführung +

+ +

+Computerbasierte Steuerungen werden in der Automatisierungstechnik immer häufiger eingesetzt. Die Verfügbarkeit von Libraries und Betriebssystemen versprechen einen schnellen Entwicklungszyklus, sowie niedrigere Entwicklungskosten. In der Automatisierungstechnik werden mehrere Steuerungen, die zur Bearbeitung eines Prozesses notwendig sind, miteinander verbunden. Oft muß die Kommunikation zwischen den Steuerungen harte Echtzeitbedingungen erfüllen. + +

+Da innerhalb der TRUMPF Gruppe [TRUM07a] verschiedene Steuerungssysteme eingesetzt werden, enstand die Idee, für eine Kommunikation zwischen Steuerungen, eine plattformunabhängige Real-time CORBA [Obj05b] Implementation zu evaluieren. + +

+Das ACE/TAO Framework [Schm07c] von Douglas C. Schmidt [Schm07b] ist die umfassenste Implementation des Real-time CORBA Standards in C++ und steht für unzählige Plattformen zur Verfügung. + +

+In dieser Diplomarbeit soll untersucht werden, ob die openSource Real-time CORBA Implementation ACE/TAO die zeitlichen Anforderungen für den Einsatz in Steuerungen erfüllt. +Es sollen die Schritte zur Einrichtung einer echtzeitfähigen CORBA Umgebung beschrieben, kleine Applikationen zur Demonstration der Funktionalitäten entwickelt und Performancemessungen durchgeführt werden. +Als Basissystem dient das bei der TRUMPF Laser GmbH + Co. KG [TRUM07c] eingesetzte openSource Betriebssystem Linux [WIKI07b], welches auf die Anforderungen zum Einsatz in einer Steuerung für Festkörperlaser [TRUM07b] angepasst wurde. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node40.html b/diplomathesis/node40.html new file mode 100644 index 0000000..5f81b48 --- /dev/null +++ b/diplomathesis/node40.html @@ -0,0 +1,93 @@ + + + + + +ACE + + + + + + + + + + + + + + + + + + + + + +

+ +
+ACE - The ADAPTIVE Communication Environment +

+ +

+ACE [Schm07a] ist ein plattformunabhängiges, frei verfügbares openSource Framework zur objektorientierten System- und Netzwerkprogrammierung. + +

+ +

+ + + +
Figure 9: +Struktur des ACE Frameworks (Quelle: http://www.cs.wustl.edu/ schmidt/)
+
+[width=]./img/ace.jpg + +
+
+ +

+Auf Abbildung 9 ist zu erkennen, dass die Architektur des ACE Framework aus aufeinander gesetzten Schichten besteht. Ein OS Adaption Layer abstrahiert die systemspezifischen Schnittstellen (zum Beispiel IPC oder den Zugriff auf das Dateisystem), der von ACE unterstützten Betriebssysteme. Darauf aufgesetzt befindet sich beispielsweise das Reactor/Proactor Framework, welches für das Eventhandling verantwortlich ist. Das Acceptor und Connector Framework für ein- bzw. ausgehende Verbindungsaufbauten entkoppelt den Verbindungsaufbau von der Kommunikation. Ein CORBA Handler bietet eine Anbindung für CORBA Implementationen, wie zum Beispiel TAO (siehe Kapitel 3.3.2). + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node41.html b/diplomathesis/node41.html new file mode 100644 index 0000000..ce8dfaa --- /dev/null +++ b/diplomathesis/node41.html @@ -0,0 +1,130 @@ + + + + + +TAO + + + + + + + + + + + + + + + + + + + + + +

+ +
+TAO - The ACE ORB +

+ +

+TAO ist eine auf das Adaptive Communication Environment (ACE) aufsetzende (siehe Kapitel 3.3.1, Abbildung 9), frei verfügbare, plattformunabhängige, openSource, C++ CORBA Distribution. + +

+Dr. Douglas C. Schmidt, Entwicklungsleiter von ACE/TAO erklärt auf seiner Homepage [Schm07b], die wichtigsten Gründe die Ihn zur Entwicklung von TAO bewegten: + +
+
+ +
+ +

+Im Nachfolgenden wird am Beispiel eines Servicerequests an einen Server (rechter Teil Abbildung 10) der Informationsfluss innerhalb von TAO beschrieben. + +

+Architektur der TAO RT Komponenten (Quelle: [Schm07b]) +[r][width=0.4]./img/tao.jpg +

    +
  1. I/O Subsystem erhält über das RT Netzwerk einen Request +
  2. +
  3. Scheduler ermittelt Priorität des Requests +
  4. +
  5. Je nach Priorität wird der Request auf eine der priorisierten Wartelisten gesetzt +
  6. +
  7. Der ORB Core nimmt den Request aus der Warteliste und reicht ihn mit entsprechender Priorität an den +
  8. +
  9. Object Adapter weiter, welcher in konstanter Zeit das zugehörige Objekt findet +
  10. +
  11. dieses Objekt bearbeitet mit entsprechender Priorität die Anfrage +
  12. +
+ +

+
+
+
+
+
+
+ +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node42.html b/diplomathesis/node42.html new file mode 100644 index 0000000..cdc4d9e --- /dev/null +++ b/diplomathesis/node42.html @@ -0,0 +1,96 @@ + + + + + +Scheduling + + + + + + + + + + + + + + + + + + + + + +

+ +
+Scheduling +

+ +

+Die Qualität und Art der Implementation des Schedulings von Tasks, definiert die Real-time Eigenschaften eines Multitaskingsystems. + +

+In TAO wird für das Scheduling von Requests eine gepufferte Version des RMS (Rate Monotonic Scheduling, siehe [Tane01] Chap. 7.4.3 page 472) eingesetzt. Hierzu werden Aufgaben in rates groups organisiert. + +

+Auf der I/O Ebene kann für jede rates group eine eigene Verbindung aufgebaut werden. Somit kann auf der I/O Ebene, ohne Betrachtung des Inhalts der einkommenden Daten bestimmt werden, mit welcher Priorität diese verarbeitet werden. + +

+Die so in einer rates group getakteten (zum Beispiel 20 Hz) Tasks werden im ORB via Fixed Priority Scheduling (siehe [Tane01] Chap. 2.5.3 page 143, 144) einem mit entsprechend hoher Priorität arbeitendem Threadpool [Pya01] zugewiesen. Threadpools haben den Vorteil, dass sie eine fixe Anzahl von Threads inklusive Ressourcen zur Bearbeitung der zugewiesenen Aufgaben besitzen. Würden mehr Threads benötigt, als der Threadpool zur Verfügung stellt, werden die Aufgaben später abgearbeitet. Somit wird ein ständiges Freigeben und neu Lokalisieren von Ressourcen verhindert. Anhand der Größe des Threadpools kann die Performance optimiert werden. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node43.html b/diplomathesis/node43.html new file mode 100644 index 0000000..d7d35b1 --- /dev/null +++ b/diplomathesis/node43.html @@ -0,0 +1,253 @@ + + + + + +RT_ Info + + + + + + + + + + + + + + + + + + + + +
+ +
+RT_ Info Struktur +
+Um das Scheduling zu optimieren müssen TAO Applikationen alle zur Benutzung vorgesehenen Resourcen bekannt geben. Diese Angaben beeinflussen die Kompilierung des Programms. In der RT_ Info Struktur (siehe Tabelle 2) werden die echtzeitrelevanten Informationen einer Task gespeichert. + +

+Aus diesen Informationen berechnet der Real-time Scheduler, welche Operationen in einem Thread zusammengefasst werden und mit welcher Betriebssystempriorität dieser Thread arbeiten muß, damit die Echtzeitanforderungen erfüllt werden können. + +

+Der Programmierer kann über das RTCORBA::Current Interface einem Objekt eine Priorität zuweisen. Diese Zuweisung beeinflusst nicht nur die RT_ Info Struktur des entsprechenden Objekts, sondern auch die RT_ Info Strukturen der Objekte, von denen dieses Objekt abhängig ist (dependencies_ Feld). Details siehe [Gil01] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2: +RT_ Info Struktur
FeldnameEinheitBeschreibung
worstcase_ execution_ time_ Time obere Schranke für
  harte Echtzeitanforderungen
typical_ execution_ time_ Time Schranke für
  weiche Echtzeitanforderungen
cached_ execution_ time_ Time falls wird zur Optimierung
  nur einmal innerhalb der
  angegebenen Zeit die
  worstcase_ execution_ time_
  verwendet.
period_ Time Zeit zwischen periodischen
  Aufrufen (z.B. bei Iterationen)
criticality_ Enum: VERY_ LOW_ ...wird vom Scheduler ausgewertet
 VERY_ HIGH_ CRITICALITY 
importance_ Enum: VERY_ LOW_ ...wird vom Scheduler nur
 VERY_ HIGH_ IMPORTANCEausgewertet, falls zwei
  Aufgaben gleich wichtig sind
quantum_ Time nicht benutzt / für gerechtes
  Scheduling von niedrigst
  priorisierten Aufgaben
threads_ Anzahl intern von der Operation
  benutzter Threads
dependencies_ Handles auf anderevon denen diese Operation direkt
 RT_ Info Strukturenabhängt. Aus dieser Information
  werden intern Abhängigkeits-
  graphen erstellt. Jeder Graph
  wird in einem Thread
  ausgeführt
priority_ Betriebssystemprioritätwird von TAO aus den anderen
  Informationen berechnet und
  gesetzt
subpriority_ Unterprioritätzur Sortierung von RT_ Infos mit
  gleicher Priorität (wird ebenfalls
  von TAO berechnet und gesetzt)
  
+ +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node44.html b/diplomathesis/node44.html new file mode 100644 index 0000000..95c6aa3 --- /dev/null +++ b/diplomathesis/node44.html @@ -0,0 +1,82 @@ + + + + + +RTPOA + + + + + + + + + + + + + + + + + + + + +

+ +
+RTPOA +

+Der TAO RTPOA kann wahlweise nach der perfect Hashing oder active Demultiplexing Methode arbeiten. Beide Methoden finden das zum IOR (Kapitel 2.6.5) zugehörige Objekt in konstanter Zeit. + +

+

+
perfect Hashing
+
Eine perfect Hash Table bestimmt anhand des Hashwertes des IOR den zugehörigen Skeleton. Eine zweite Hash Table dient zur Bestimmung der zugehörigen Funktion. Hierzu wird das GNU Tool gperf verwendet. Perfect Hashing kann nur verwendet werden, wenn zum Zeitpunkt der Kompilierung bekannt ist, mit welchen Objektschlüsseln und Funktionsnamen gearbeitet wird. +
+
active Demultiplexing
+
Sendet der Client die IOR im Request Header an den Server, so kann damit in einem Schritt der entsprechende Servant und die verknüpfte Operation bestimmt werden. +
+
+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node45.html b/diplomathesis/node45.html new file mode 100644 index 0000000..48a9519 --- /dev/null +++ b/diplomathesis/node45.html @@ -0,0 +1,106 @@ + + + + + +V1 Prozessabbild übertragen + + + + + + + + + + + + + + + + + + + + + +

+ +
+V1 Prozessabbild zwischen zwei embedded Systemen übertragen +

+ +

+Es wird der Status aller digitalen Eingänge von CPX2 auf den digitalen Ausgängen von CPX1 dargestellt. Hierbei soll die Latenz zwischen Zustandsänderungen an den Eingängen von CPX2 und Zustandsänderung der Ausgänge an CPX1 möglichst gering und konstant sein. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node46.html b/diplomathesis/node46.html new file mode 100644 index 0000000..8652a1c --- /dev/null +++ b/diplomathesis/node46.html @@ -0,0 +1,100 @@ + + + + + +Softwaredesign + + + + + + + + + + + + + + + + + + + + + +

+Softwaredesign +

+ +

+Abbildung 8: CPX 2 agiert als RTCORBA Server. Als Servant wird ein Objekt zur Verfügung gestellt, welches via Memory Mapping einen übergebenen Wert direkt auf den digitalen Ausgang schreibt. + +

+Änderungen an einem digitalen Eingang der CPX 1 werden mit einem RTCORBA Funktionsaufruf auf den digitalen Ausgang von CPX 2 geschrieben. + +

+Das Sequenzdiagramm (Abb. 11) zeigt die Kommunikation zwischen Receiver und Supplier. Das Holen der Objektreferenz vom NamingService, sowie CORBA interne Objekte wurden nicht dargestellt. Das Diagramm beinhaltet den Programmstart von Receiver und Supplier, sowie die Übertragung einer Zustandsänderung. + +

+ +

+ + + +
Figure 11: +Sequenzdiagramm: V1 Prozessabbild übertragen +
+Figure 12: +Datenfluss : V1 Prozessabbild via TAO übertragen
+
+[width=]./img/sequenzV1.jpg + +
+
+[width=0.85]./img/programmfluss.jpg + +
+
+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node47.html b/diplomathesis/node47.html new file mode 100644 index 0000000..f2fdebf --- /dev/null +++ b/diplomathesis/node47.html @@ -0,0 +1,73 @@ + + + + + +Datenfluss + + + + + + + + + + + + + + + + + + + + + +

+Datenfluss +

+ +

+In Abbildung 12 ist aufgezeigt, welche Komponenten die Daten passieren, um eine Portänderung via ACE/TAO von einer CPX auf die Andere zu übertragen. Receiver und Supplier sind Komponenten, welche selber entwickelt wurden. Die restlichen Komponenten werden vom System zur Verfügung gestellt, oder automatisch generiert. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node48.html b/diplomathesis/node48.html new file mode 100644 index 0000000..e07a5c9 --- /dev/null +++ b/diplomathesis/node48.html @@ -0,0 +1,125 @@ + + + + + +Konfiguration + + + + + + + + + + + + + + + + + + + + + +

+Konfiguration +

+ +

+Um Real-time in einem System sicher zu stellen, muß sowohl das Betriebssystem, als auch die Applikation alle Real-time Kriterien (siehe Kapitel 2.3) erfüllen. Wichtig ist, dass die RTCORBA Daten in jeder Komponente (Abb. 12) bevorzugt und nicht unterbrechbar bearbeitet werden. Hierzu muß sowohl das Betriebssystem, wie auch das ACE/TAO Framework entsprechend konfiguriert werden. + +

+

+
Linux
+
Die RT_ PREEMPT Erweiterung [Moln07] cached IRQs und führt diese innerhalb, je IRQ, eines Prozesses aus. Somit ist jeder Interrupthandler ein Prozess. Unter Linux besteht die Möglichkeit jedem Prozess eine Priorität zuzuweisen. Die RT_ PREEMPT Erweiterung dient unter anderem der Priorisierung von Interrupts. Es kann sichergestellt werden, dass eine Echtzeitanwendung nicht von einem Interrupt unterbrochen wird und für Echtzeitanwendungen benötigte Interrupts bevorzugt abgearbeitet werden. + +

+

+
ACE/TAO:
+
durch das Zuweisen von Policies können Prioritäten von Threads und Objekten definiert werden. Es besteht die Möglichkeit die CORBA Prioritäten auf Betriebssystem- oder Netzwerkprioritäten abzubilden, um einen Thread mit entsprechender Priorität zu starten, oder die Netzwerkkommunikation zu priorisieren. In einer Konfigurationsdatei (svc.conf) können zur Laufzeit die Art des Priority Mappings und des Schedulings verändert werden. +
+
+ +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node49.html b/diplomathesis/node49.html new file mode 100644 index 0000000..c906fc3 --- /dev/null +++ b/diplomathesis/node49.html @@ -0,0 +1,196 @@ + + + + + +RT_ PREEMPT Priorisierung + + + + + + + + + + + + + + + + + + + + + +
+RT_ PREEMPT Priorisierung +
+ +

+Mit dem Tool rtnice[*] wurden die (negativen) Real-time Prioritäten wie folgt zugewiesen: + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3: +Priorisierung CPX1 - Supplier - RTCORBA Client
ProzessPrioritätKommentar
SupplierRT (-99)RTCORBA Client
softirq-net-rx-2 
softirq-net-tx-40 
IRQ 6-90Digitale Ein/Ausgänge
IRQ 14-2ide0
IRQ 17-90eth0 (für RT Kommunikation)
IRQ 18-2ethX (restliche Ethernetports)
  
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 4: +Priorisierung CPX2 - Receiver - RTCORBA Server
ProzessPrioritätKommentar
ReceiverRT (-99)RTCORBA Server
softirq-net-rx-40 
softirq-net-tx-2Senden ist rel. unwichtig
IRQ 6-90Digitale Ein/Ausgänge
IRQ 14-2ide0
IRQ 17-90eth0 (für RT Kommunikation)
IRQ 18-2ethX (restliche Ethernetports)
  
+ +

+

+
softirqs:
+
führen Interruptcode aus, welcher nicht zeitkritisch ist. Dies hat den Vorteil, dass die CPU nicht länger als nötig von einer Interruptserviceroutine benutzt wird. Eine detailierte Beschreibung ist in [Love05] ab Seite 142 zu finden. +
+
+ +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node5.html b/diplomathesis/node5.html new file mode 100644 index 0000000..aac03b6 --- /dev/null +++ b/diplomathesis/node5.html @@ -0,0 +1,96 @@ + + + + + +Aufgabenstellung + + + + + + + + + + + + + + + + + + + + + +

+Aufgabenstellung +

+ +

+Die folgenden Punkte sollen im Rahmen dieser Diplomarbeit bearbeitet werden: + +

+ +

+ +

+Alle im Rahmen der Diplomarbeit durchgeführten Erweiterungen von openSource Projekte werden in diese Projekte zurückgeführt. Ergebnisse der Untersuchungen werden voraussichtlich unter OSADL.ORG[*] veröffentlicht. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node50.html b/diplomathesis/node50.html new file mode 100644 index 0000000..457ad60 --- /dev/null +++ b/diplomathesis/node50.html @@ -0,0 +1,83 @@ + + + + + +ACE/TAO Konfiguration + + + + + + + + + + + + + + + + + + + + +
+ACE/TAO Konfiguration +
+ +

+

+
Receiver:
+
RTCORBA::priority_ model_ policy(RTCORBA::CLIENT_ PROPAGATED, +
+RTCORBA::maxPriority)
alle Anfragen werden mit höchster Priorität abgearbeitet +
+
Supplier:
+
RTCORBA::private_ connection_ policy() Verbindung wird nicht mit anderen Client-Server Verbindungen geteilt. +
+
svc.conf:
+
keine +
+
+ +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node51.html b/diplomathesis/node51.html new file mode 100644 index 0000000..ac45aec --- /dev/null +++ b/diplomathesis/node51.html @@ -0,0 +1,372 @@ + + + + + +Ergebnisse + + + + + + + + + + + + + + + + + + + + +

+Ergebnisse +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5: +Latenzzeiten bei variierender Systembelastung
SupplierCPU00001111
HD00110011
ReceiverNET01010101
CPUHDNET         
000 595630590763600710625630
001 945940995645740655825915
010 77020107358208201175860925
011 113514951115DR112015001240DR
100 595675645725600630605685
101 9757581015DR66098511601500
110 745920880103510108308551005
111 12351240795DR10701110DRDR
           
+ +

+Tabelle 5 stellt die gemessenen Latenzzeiten in (jeweils ansteigende + absteigende Flanke bei 400 Hz) bei variierender Systembelastung dar. DR bedeutet: +, eine korrekte Übertragung des Signals ist nicht mehr möglich. Die blau hervorgehobenen Werte zeigen, dass die CPU Auslastung die Echtzeitübertragung nicht beeinflußt. Die grünen Werte zeigen, dass der Supplier auch unter Belastung korrekt arbeitet. Die roten Werte signalisieren, dass der Receiver unter HD und, oder NET Last noch nicht korrekt arbeitet. + +

+Die nun beschriebenen Oszilloskop Screenshots sind Beispiele für die in Tabelle 5 farblich hervorgehobenen Erkenntnisse: + +

+ +

+ +

+
+ +
Figure 13: +Receiver u. Supplier o. zusätzl. Systemlast
+ [width=7.5cm]./img/v1/0100.jpg +
+
+
+
+
+ +
Figure 14: +Receiver o. zusätzl. Systemlast; Supplier mit CPU Last
+ [width=7.5cm]./img/v1/0136.jpg +
+
+
+
+
+ +
Figure 15: +Receiver o. zusätzl. Systemlast; Supplier m. CPU, Netz u. HD Last
+ [width=]./img/v1/0108.jpg +
+
+
+
+
+ +
Figure 16: +Receiver m. Netzlast; Supplier o. zusätzl. Last
+ [width=]./img/v1/0116.jpg +
+
+
+
+
+ +
Figure 17: +Receiver u. Supplier m. CPU, Netz u. HD Last
+ [width=]./img/v1/0213.jpg +
+
+
+
+
+ +
Figure 18: +Receiver m. CPU u. HD Last; Supplier m. CPU, Netz u. HD Last
+ [width=]./img/v1/0149.jpg +
+
+
+
+ +

+Abbildung 13: Ohne zusätzlich produzierte Systemlast beträgt die Latenzzeit kontinuierlich 300 s. Da alle an der Kommunikation beteiligten Prozesse sehr hoch priorisiert sind, dürfte in einem Echtzeitsystem eine Auslastung der Resourcen durch niedriger priorisierte Tasks die Latenzzeit nicht bedeutend verändern. + +

+Abbildung 14: Eine Auslastung der Supplier CPU beeinflusst die Latenzwerte nicht. + +

+Abbildung 15: Volle CPU Last, ein flood Ping und dauerhaftes Lesen von der Festplatte auf dem Supplier beeinträchtigt das Real-time Verhalten nicht. + +

+Abbildung 16: Ein flood ping auf den Receiver beeinträchtigt dessen Antwortverhalten. Vermutung: Priority Inversion bei der Abarbeitung von Netzwerkpaketen. + +

+Abbildung 17: Wird auf beiden Systemen Netz- CPU- und HD-Last erzeugt wird das Signal nicht mehr korrekt übertragen. Eine fehlerfreie Übertragung des Signals ist nicht mehr möglich sobald +. + +

+Abbildung 18: Ohne flood ping auf den Receiver kann das Signal korrekt übertragen werden. + +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node52.html b/diplomathesis/node52.html new file mode 100644 index 0000000..10e814d --- /dev/null +++ b/diplomathesis/node52.html @@ -0,0 +1,73 @@ + + + + + +Latenzschwankungen bei flood ping auf CPX2 (Receiver) + + + + + + + + + + + + + + + + + + + + + +
+Latenzschwankungen bei flood ping auf CPX2 (Receiver) +
+ +

+Der Linux Kernel liest bei einem Interrupt der Netzwerkkartentreiber (IRQ 17/18) die Ethernetdaten aus der Netzwerkkarte in den Arbeitsspeicher ein (siehe ./linux/drivers/net/eepro100.c). Die Auswertung dieser Ethernetdaten wird in einem softirq (siehe ./linux/net/core/dev.c: net-rx-action()) abgearbeitet. Ein Prozess bearbeitet die Ethernetdaten aller Ethernetdevices, deshalb ist es nicht möglich durch IRQ-Prozesspriorisierung eine bevorzugte Abarbeitung der Daten der für die Echtzeitkommunikation genutzten Ethernetschnittstelle zu gewähren. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node53.html b/diplomathesis/node53.html new file mode 100644 index 0000000..3b17f72 --- /dev/null +++ b/diplomathesis/node53.html @@ -0,0 +1,86 @@ + + + + + +Lösungsansätze + + + + + + + + + + + + + + + + + + + + + +
+Lösungsansätze +
+ +

+Die Lösungsansätze sind nach Implementierungsaufwand (gering ... hoch) sortiert: + +

+ +

    +
  1. Prioritätenvergabe der IRQ Prozesse überarbeiten +
  2. +
  3. IRQ 18 während echtzeitkritischen Programmabläufen deaktivieren +
  4. +
  5. Abarbeitung des softirq-Codes innerhalb der Interruptserviceroutine des Netzwerkkartentreibers, softirqs niedrig priorisieren +
  6. +
  7. Eigene softirqs für jedes Ethernetdevice +
  8. +
+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node54.html b/diplomathesis/node54.html new file mode 100644 index 0000000..8f45194 --- /dev/null +++ b/diplomathesis/node54.html @@ -0,0 +1,220 @@ + + + + + +Lösung + + + + + + + + + + + + + + + + + + + + + +
+ +
+Lösung +
+ +

+Durch die Neuzuordnung der IRQ-Prioritäten wurden die Latenzschwankungen nahezu eliminiert: + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 6: +Repriorisierung CPX1 - Supplier - RTCORBA Client
ProzessPrioritätKommentar
SupplierRT (-99)RTCORBA Client
softirq-net-rx-35 
softirq-net-tx-40 
IRQ 6-50Digitale Ein/Ausgänge
IRQ 14-2ide0
IRQ 17-80eth0 (für RT Kommunikation)
IRQ 18-2ethX (restliche Ethernetports)
  
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 7: +Repriorisierung CPX2 - Receiver - RTCORBA Server
ProzessPrioritätKommentar
ReceiverRT (-99)RTCORBA Server
softirq-net-rx-45 
softirq-net-tx-20Senden ist rel. unwichtig
IRQ 6-50Digitale Ein/Ausgänge
IRQ 14-2ide0
IRQ 17-80eth0 (für RT Kommunikation)
IRQ 18-2ethX (restliche Ethernetports)
  
+ +

+Beim Supplier wird die Priorität des softirq-net-rx Prozesses erhöht, somit wird sichergestellt, dass die TCP-acknowledge Pakete vom Receiver rechtzeitig empfangen werden können. Dies hat zur Folge, dass die Datenübertragung nicht wegen eines fehlenden acknowledge Pakets eingefroren wird. + +

+Der Receiver bekommt durch die Erhöhung der Priorität von softirq-net-tx die Chance zeitgerecht die TCP-acknowledge Pakete zu versenden. + +

+ +

+ +

+
+ +
Figure 19: +Supplier u. Receiver o. Last
+ [width=]./img/v1/v1optOhneLast.jpg +
+
+
+ +
Figure 20: +Supplier u. Receiver m. xdd, flood ping u. cpuburnP5 belastet
+ [width=]./img/v1/v1opt.jpg +
+
+
+
+
+ +

+Abbildung 19 und 20 zeigen, dass die Latenzzeiten nicht mehr gravierend mit der Systemauslastung korreliert sind. Durch die Repriorisierung der Interruptprozesse wurde die Echtzeitperformance gravierend verbessert. Alle weiteren Versuche werden mit dieser Priorisierung durchgeführt. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node55.html b/diplomathesis/node55.html new file mode 100644 index 0000000..3e1586e --- /dev/null +++ b/diplomathesis/node55.html @@ -0,0 +1,79 @@ + + + + + +Anmerkungen zu den weiteren Lösungsmöglichkeiten + + + + + + + + + + + + + + + + + + + + +
+Anmerkungen zu den weiteren Lösungsmöglichkeiten +
+ +

+Deaktivieren von IRQ 18 würde zur Folge haben, dass während der Benutzung der Real-time Ethernetschnittstelle nicht mehr von einer anderen Schnittstelle auf das Gerät zugegriffen werden kann. + +

+Die letzten beiden Lösungsansätze würden eine Veränderung des Linux Kernel Codes bedeuten, was sofern die Änderungen nicht in den Mainstream Kernel übernommen werden, oder in den RT_ PREEMPT Patch eingepflegt werden, die Wartbarkeit des Systems verschlechtert. + +

+Benedikt Spranger von Linutronix [Glei06] wurde über die Problematik informiert und wird die Implementation einer Lösung übernehmen. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node56.html b/diplomathesis/node56.html new file mode 100644 index 0000000..4f5d760 --- /dev/null +++ b/diplomathesis/node56.html @@ -0,0 +1,90 @@ + + + + + +V2 Prozessabbild via RT EventService übertragen + + + + + + + + + + + + + + + + + + + + + +

+ +
+V2 Prozessabbild via RT EventService übertragen +

+ +

+Für das Sammeln von Logging Informationen bietet sich der Einsatz des EventServices an. Dieser Versuch implementiert die selbe Funktionalität wie V1 (siehe Kapitel 3.3.3), allerdings über den RT EventService (siehe Kapitel 2.8.2). + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node57.html b/diplomathesis/node57.html new file mode 100644 index 0000000..5b271b4 --- /dev/null +++ b/diplomathesis/node57.html @@ -0,0 +1,79 @@ + + + + + +Softwaredesign + + + + + + + + + + + + + + + + + + + + + +

+Softwaredesign +

+ +

+Auf CPX 2 wird ein NamingService (siehe Kapitel 2.8.1) und ein Real-time EventService gestartet. Die RTCORBA Applikation CPXEventSupplier sendet bei einer Änderung an einem digitalen Eingang eine Nachricht mit dem aktuellen Prozessabbild an den RT EventService. + +

+Der CPXEventConsumer wird auf CPX 1 gestartet und registriert sich beim RT EventService für die Nachrichten, welche von CPX 2 an den RT EventService gesendet werden. + +

+Sobald der RT EventService von CPX 2 eine Nachricht mit dem aktuellen Prozessabbild erhält, leitet er diese an den CPXEventConsumer auf CPX 1 weiter. Der CPXEventConsumer stellt das Prozessabbild auf den digitalen Ausgängen dar. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node58.html b/diplomathesis/node58.html new file mode 100644 index 0000000..bf84a31 --- /dev/null +++ b/diplomathesis/node58.html @@ -0,0 +1,90 @@ + + + + + +Programmablauf + + + + + + + + + + + + + + + + + + + + + +

+Programmablauf +

+ +

+ +

+ + + +
Figure 21: +Sequenzdiagramm V2
+
+[width=]./img/sequenzV2.jpg + +
+
+ +

+Abbildung 21: Prozess C (CPXEventProducer) generiert bei Eingang eines Digital Input/Output (DIO) Signals eine Nachricht mit dem aktuellen Prozessabbild. Diese sendet er per RTCORBA an Prozess B, den RT EventService. + +

+Prozess A (CPXEventConsumer) registriert sich beim EventService für die Nachrichten von Prozess C. Die beim EventService eintreffenden Nachrichten werden an Prozess A weitergeleitet. Dieser schreibt das übermittelte Prozessabbild auf die digitalen Ausgänge. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node59.html b/diplomathesis/node59.html new file mode 100644 index 0000000..db1892c --- /dev/null +++ b/diplomathesis/node59.html @@ -0,0 +1,80 @@ + + + + + +Konfiguration + + + + + + + + + + + + + + + + + + + + + +

+Konfiguration +

+ +

+

+
Linux:
+
Der RT EventService, CPXEventConsumer und CPXEventSupplier ist als RT Prozess priorisiert. Die Priorisierungen der restlichen Prozesse sind den Tabellen in Kapitel 3.3.3.4 zu entnehmen. +
+
ACE/TAO:
+
Die Nachrichten werden mit höchster Priorität versendet und bearbeitet. +
+
+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node6.html b/diplomathesis/node6.html new file mode 100644 index 0000000..70b50cd --- /dev/null +++ b/diplomathesis/node6.html @@ -0,0 +1,86 @@ + + + + + +Zielsetzung + + + + + + + + + + + + + + + + + + + + + +

+Zielsetzung +

+ +

+Die Ziele der Diplomarbeit bestehen aus der + +

+ +

+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node60.html b/diplomathesis/node60.html new file mode 100644 index 0000000..ef8e8ef --- /dev/null +++ b/diplomathesis/node60.html @@ -0,0 +1,104 @@ + + + + + +Ergebnisse + + + + + + + + + + + + + + + + + + + + +

+Ergebnisse +

+ +

+ +

+ +

+
+
+ +
Figure 22: +CPX1 u. 2 o. Last
+ [width=]./img/v2/ohneLast.jpg +
+
+
+
+
+ +
Figure 23: +CPX1 u. 2 m. xdd, flood ping u. cpuburnP5 belastet
+ [width=]./img/v2/mitLast.jpg +
+
+
+
+
+ +

+Die Latenz von etwa in Abbildung 22 und 23 entspricht den Erwartungen. Da die Daten durch den RT EventService (eine weitere RTCORBA Applikation) fließen. + +

+Mit dem in V4 beschriebenen Versuchsaufbau mit einem Real-time Switch (Abb. 26) wurde dieser Versuch mit 2 CPXEventConsumern durchgeführt. Es wurde eine Differenzzeit von + zwischen den beiden CPXEventConsumern ermittelt (siehe Abb. 24). Im Idealfall würden beide CPXEventConsumer die Portänderungen synchron darstellen. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node61.html b/diplomathesis/node61.html new file mode 100644 index 0000000..034d889 --- /dev/null +++ b/diplomathesis/node61.html @@ -0,0 +1,84 @@ + + + + + +V3 Verhalten bei größeren Datenmengen + + + + + + + + + + + + + + + + + + + + + +

+ +
+V3 Verhalten bei größeren Datenmengen +

+ +

+V1 (siehe Kapitel 3.3.3) wurde verändert, so dass mit jedem Prozessabbild eine Logdatei von beliebiger Größe mit übertragen wird. Es wird gemessen, wie die Latenz von der Datenmenge abhängig ist. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node62.html b/diplomathesis/node62.html new file mode 100644 index 0000000..d0aa256 --- /dev/null +++ b/diplomathesis/node62.html @@ -0,0 +1,98 @@ + + + + + +Ergebnis + + + + + + + + + + + + + + + + + + + + +

+Ergebnis +

+ +

+ +

+ +

+
+
+ +
Figure 24: +RT EventService mit 2 Consumern
+ [width=]./img/v2-2Consumer.jpg +
+
+
+
+
+ +
Figure 25: +Abhängigkeit Datenmenge - Latenz
+ [width=]./img/v4/plot.jpg +
+
+
+
+
+ +

+Abbildung 25 zeigt, dass bei wachsender Datenmenge die Latenzzeiten von immediate und worst case immer weiter auseinanderlaufen. Da in der Praxis die Informationen, welche in Echtzeit benötigt werden, in der Regel kleiner 1 kiloByte sind, empfiehlt es sich die größeren Datenmengen von den Echtzeitinformationen zu entkoppeln und getrennt, niedriger priorisiert, zu übertragen. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node63.html b/diplomathesis/node63.html new file mode 100644 index 0000000..5d91190 --- /dev/null +++ b/diplomathesis/node63.html @@ -0,0 +1,112 @@ + + + + + +V4 Scheduling + + + + + + + + + + + + + + + + + + + + + +

+ +
+V4 Scheduling +

+ +

+ +

+ + + +
Figure 26: +3 CPXen verbunden mit QoS-Switch
+
+[width=0.8]./img/versuch4.jpg + +
+
+
+ +

+Damit mehrere CPXen miteinander kommunizieren können wurde die 1:1 Ethernet Verbindung durch einen Quality of Service (QoS) Switch (Hirschmann Railswitch[*] )ersetzt (siehe Abb. 26). + +

+Auf einer CPX hostet ein Receiver in zwei Threadpools je ein Objekt. Ein hoch Priorisiertes zum Setzen des digitalen Ausgangports und ein niedrig Priorisiertes, welches eine komplexe Berechnung durchführen kann. + +

+Es gibt zwei verschiedene Supplier. Einer stößt bei einer Portänderung am digitalen Eingang die nieder priorisierte, komplexe Berechnung an. Der andere Supplier (auf einer weiteren CPX) überträgt mit höchster Priorität jede Veränderung am digitalen Eingang an den digitalen Ausgang des Receivers. + +

+Es wird erwartet, dass die komplexe Berechnung das Setzen des Ports nicht beeinflußt. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node64.html b/diplomathesis/node64.html new file mode 100644 index 0000000..820db60 --- /dev/null +++ b/diplomathesis/node64.html @@ -0,0 +1,82 @@ + + + + + +Konfiguration + + + + + + + + + + + + + + + + + + + + + +

+Konfiguration +

+
+
Threadpools
+
Jedes Objekt wurde innerhalb eines Threadpools gehostet, der mit entsprechender Priorität angelegt wurde +
+
svc.conf
+
Durch die Zeile +
+ +
+verwendet der ORB einen FIFO Scheduler, welcher Prozesse mit niedrigerer Priorität bei Eintreffen eines höher priorisierten Prozesses unterbricht. +
+
+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node65.html b/diplomathesis/node65.html new file mode 100644 index 0000000..99fa59d --- /dev/null +++ b/diplomathesis/node65.html @@ -0,0 +1,98 @@ + + + + + +Ergebnis + + + + + + + + + + + + + + + + + + + + +

+Ergebnis +

+ +

+
+ +
+ +

+...zeigt, dass TAO das Scheduling der Threads dem Betriebssystem überläßt. Die Threads wurden korrekt priorisiert. Dies ist zu erkennen, da der nieder priorisierte Thread den größten Teil der CPU Zeit erhalten hat. + +

+ +

+ + + +
Figure 27: +Latenzverteilung V4
+
+[width=0.5]./img/v3/new.jpg + +
+
+
+ +

+Die hohen Latenzwerte in Abbildung 27 entstehen vermutlich, da der hoch priorisierte Prozess auf eine vom niedrig priorisierten Thread gelockte Ressource zugreifen muß. In diesem Fall müßte das Locking im Linux Kernel mit einem PI-Mutex[*] implementiert werden. +
+
+
+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node66.html b/diplomathesis/node66.html new file mode 100644 index 0000000..f813b1a --- /dev/null +++ b/diplomathesis/node66.html @@ -0,0 +1,87 @@ + + + + + +V5 mehrere Teilnehmer, Priorisierung + + + + + + + + + + + + + + + + + + + + +

+ +
+V5 Mehrere Teilnehmern, Priorisierung, Vergleich von Interfacekonfigurationen +

+ +

+Es wird überprüft, ob das Echtzeitverhalten mit dem Schnittstellendesign korreliert ist und ob der Echtzeitswitch korrekt mit den priorisierten Datenpaketen umgeht. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node67.html b/diplomathesis/node67.html new file mode 100644 index 0000000..015c486 --- /dev/null +++ b/diplomathesis/node67.html @@ -0,0 +1,123 @@ + + + + + +Softwaredesign + + + + + + + + + + + + + + + + + + + + + +

+Softwaredesign +

+ +

+Der Server auf CPX 2 stellt einen übermittelten Wert auf einem digitalen Ausgangsport dar und empfängt parallel beliebig große Strings (zum Beispiel Logdateien). + +

+Auf den anderen CPXen werden Clients gestartet. Ein Client kann in vier verschiedenen Modis gestartet werden. Jeder Modi benutzt ein anderes Interface oder eine Kombination mehrerer Interfaces zur Kommunikation mit dem Server: + +

+

+
PortAndMessage1
+
Zwei Funktionen in einem Interface, eine zum Übertragen der Logdatei, eine für die Portinformation. Zuerst werden mit höchster Priorität die Ports gesetzt, danach mit Niedrigster die Logdatei übertragen. +
+
PortAndMessage2
+
Logdatei und Portinformationen werden in einem hoch priorisierten Funktionsaufruf gemeinsam übertragen. +
+
MessageOnly
+
In einer Endlosschleife werden Logdateien übertragen (niedrig priorisiert). +
+
MessageAndPortSeperate
+
Zwei Interfaces mit je einer Funktion. Ein niedrig priorisiertes zur Übertragung der Logdateien und ein hoch priorisiertes zur Übertragung der Portinformationen. +
+
+ +

+Der Client auf CPX1 überträgt bei Zustandsänderungen eines Eingangsports den Wert des digitalen Eingangsports und einen String beliebiger Größe (PortAndMessage1, PortAndMessage2 MessageAndPortSeperate Mode). Von CPX3 aus versenden teilweise mehrere Clients parallel Strings verschiedener Größe (MessageOnly Mode). Die Anzahl laufender Supplier auf CPX3 entspricht der Anzahl Logdateiensender in Abbildung 31, 32 und 33. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node68.html b/diplomathesis/node68.html new file mode 100644 index 0000000..6e02aff --- /dev/null +++ b/diplomathesis/node68.html @@ -0,0 +1,171 @@ + + + + + +Konfiguration + + + + + + + + + + + + + + + + + + + + + +

+Konfiguration +

+ +

+

+
RT_ PREEMPT Priorisierung
+
Client und Server sind als RT Prozess priorisiert. Die Priorisierungen der restlichen Prozesse sind den Tabellen in Kapitel 3.3.3.4 zu entnehmen. +
+
Policies
+
Es wurde serverseitig für jeden Servant ein POA angelegt, bei dem folgende Policies gesetzt wurden: + +
    +
  • Die RTCORBA Prioritäten wurden auf diffServ [Nic98] Prioritäten gemapped: +
    + +
    +QoS-Switches können so konfiguriert werden, dass höher priorisierte Pakete bevorzugt weitergereicht werden. +
  • +
  • Ein Threadpool stellt die Verfügbarkeit der Ressourcen sicher: +
    + +
    +
  • +
  • Die Prioritäten können vom Client aus zur Laufzeit definiert werden: +
    + +
    +
  • +
+
+
svc.conf
+
Es wird FIFO Scheduling und lineares Prioritäten Mapping verwendet: +
+ +
+
+
+ +

+ +

+ + + +
Figure 28: +wireshark dump: Übertragung einer niedrig priorisierten Logdatei +
+Figure 29: +wireshark dump: Übertragung eines Prozessabbilds mit höchster RTCORBA Priorität +
+Figure 30: +wireshark dump: entsprechend der RTCORBA Priorität wird auch die diffServ Priorität gesetzt
+
+[width=0.8]./img/v5/dump-data.png + +
+
+
+
+
+[width=0.8]./img/v5/dump-rtcorbaprio.png + +
+
+
+
+
+[width=0.8]./img/v5/dump-tosPrio.png + +
+
+ +

+Mittels dem Netzwerkanalysetool wireshark und einem Hub wurde überprüft, ob die Priorisierungen korrekt in die Netzwerkprotokolle eingetragen wurden (siehe Abb. 28 bis 30). + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node69.html b/diplomathesis/node69.html new file mode 100644 index 0000000..31d8694 --- /dev/null +++ b/diplomathesis/node69.html @@ -0,0 +1,203 @@ + + + + + +Ergebnisse + + + + + + + + + + + + + + + + + + + + +

+Ergebnisse +

+ +

+Je mehr Traffic mittels Übertragung von Strings auf dem Netz erzeugt wird, desto größer wird die Latenz beim Setzen des Wertes. Es besteht die Vermutung, dass der Switch die Priorisierung im diffServ Feld ignoriert. Da der Großteil der Logdateien nicht von der CPX versendet wird, welche die Prozessabbilde überträgt, wurde eine Portpriorisierung am Hirschmann Switch eingestellt: + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 8: +Portpriorisierung, Hirschmann Switch
PortPrioritätDevice
17CPX 1
27CPX 2
30CPX 3
40PC
  
+ +

+Die Latenz bei der Übertragung des Prozessabbildes änderte sich bei steigender Datenmenge nur geringfügig. Eine Anfrage bei Hirschmann bestätigte die Vermutung: Die Hardware unterstütze zwar diffServ, darum wäre es im Datenblatt angegeben, doch sei dies in der aktuellen Software Version noch nicht implementiert. + +

+Somit kamen die folgenden Messergebnisse ohne die Einbeziehung des diffServ Feldes zu Stande. Die Ports am Switch waren wie in Tabelle 8 beschrieben priorisiert. + +

+ +

+ +

+
+
+ +
Figure 31: +V5 immediate case
+ [width=]./img/v5/plot3d-hirschmann.jpg +
+
+
+ +
Figure 32: +V5 worst case
+ [width=0.8]./img/v5/plot1-100.jpg +
+
+
+
+ +

+Abbildung 31: Werden nur Funktionsaufrufe getätigt, aber keine Daten versendet, verhalten sich die verschiedenen Interfacekonfigurationen ähnlich. Die Übertragung des zu setzenden Wertes via PortAndMessage2 Interface dauert länger, da der übertragene Wert für den Ausgangsport erst gesetzt wird, nachdem der komplette String übertragen wurde. + +

+Abbildung 32: Bei dieser Messung war der String, welcher parallel zum zu setzenden Wert übertragen wurde, 0 Zeichen lang. Die Strings, welche von CPX 3 aus versendet wurden, sind aus einer 100kByte großen Textdatei erzeugt worden. Bei dieser Konfiguration ist die worst case Latenz, bei der Übertragung des hoch priorisierten Wertes unabhängig vom weiteren Traffic auf dem Netzwerk und der Wahl des Interfaces. + +

+ +

+ + + +
Figure 33: +V5 immediate case mit Cisco Switch
+
+[width=0.5]./img/v5/plot3d-cisco.jpg + +
+
+
+ +

+Da der Hirschmann Switch scheinbar mit der aktuellen Softwareversion noch nicht zuverläßig genug arbeitet, wurde der Versuch erneut mit einem Cisco Catalyst 2955 [Cisc06] Switch durchgeführt. Nach entsprechender Konfiguration beachtet der Cisco Switch die diffServ Angaben. Deshalb war eine Prirorisierung der Ports nicht notwendig. + +

+Abbildung 33 zeigt, dass sich der Cisco Switch auch bei größeren Datenmengen deutlich perfomanter verhält, als der zuvor verwendete Hirschmann Switch. Dass die Latenz bei zunehmender Anzahl von Logdateisender und zunehmender Länge der Strings (Dateigröße) beim Cisco Switch geringfügig (logarithmischer Maßstab!) höher ist, als beim Hirschmann Switch, dürfte daran liegen, dass bei jedem Paket das diffServ Feld eingelesen und bewertet werden muß. Dies benötigt mehr Rechenleistung, als die fixe Priorisierung der physikalischen Ports beim Hirschmann Switch. + +

+ +

+ + + +
Figure 34: +Foto: Versuchsaufbau V5 mit Cisco Switch
+
+[width=]./img/arbeitsplatz.jpg + +
+
+
+ +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node7.html b/diplomathesis/node7.html new file mode 100644 index 0000000..e8856ff --- /dev/null +++ b/diplomathesis/node7.html @@ -0,0 +1,81 @@ + + + + + +persönliche Motivation + + + + + + + + + + + + + + + + + + + + + +

+persönliche Motivation +

+ +

+Ich beschäftige mich seit 2000 mit dem Betriebssystem Linux als Desktop. +Als Abschlussarbeit des 2-jährigen Berufskollegs für Informations- und Kommunikationstechnik entwickelte ich 2003 zusammen mit einem Mitschüler eine Anlage auf embedded Linux Basis, welche eine Steuerung und Überwachung von digitalen Ein- und Ausgabeports per Handy (sms und wap) ermöglichte. +Während des Studiums befasste ich mich unter anderem in einer Projektarbeit mit verteilten Systemen. +Für mich war klar, dass das Thema meiner Diplomarbeit mindestens mit einem der beiden Bereiche zu tun haben soll. + +

+Ich freute mich deshalb sehr, als ich von TRUMPF Laser die Möglichkeit bekam, diese Diplomarbeit zu bearbeiten. + +

+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node70.html b/diplomathesis/node70.html new file mode 100644 index 0000000..588ee6d --- /dev/null +++ b/diplomathesis/node70.html @@ -0,0 +1,81 @@ + + + + + +V6 Prozessabbild übertragen mit Ice + + + + + + + + + + + + + + + + + + + + + +

+V6 Prozessabbild übertragen mit Ice +

+ +

+Ice [Zero07a] ist eine an das CORBA Konzept angelehnte Middleware, siehe Kapitel 2.9. Der Funktionsaufbau, sowie die Funktionalität dieses Versuchs entspricht dem ACE/TAO Versuch in Kapitel 3.3.3 (V1). Es wird nicht auf die Implementierung des Versuchs eingegangen, da dieser Versuch durchgeführt wurde, um einen Vergleich zu der Performance des ACE/TAO Frameworks zu haben. + +

+Da Ice keine Möglichkeit bietet, Verbindungen, Objekte oder Aufgaben zu priorisieren, eignet es sich nicht für den geplanten Einsatzzweck. + +

+Die Latenz zwischen Auslesen des Prozessabbildes auf CPX1, Übertragung des Abbildes via Ice an CPX2 und Darstellung des Prozessabbildes auf den digitalen Ausgängen beträgt . ACE/TAO benötigt für die selbe Aufgabe . Durch die in Ice fehlenden zero-copy Features ist anzunehmen, dass sich die Performance von ACE/TAO bei größeren Datenmengen zumindest nicht weiter von Ice entfernen wird. Siehe hierzu [Zero07c]. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node71.html b/diplomathesis/node71.html new file mode 100644 index 0000000..370214e --- /dev/null +++ b/diplomathesis/node71.html @@ -0,0 +1,78 @@ + + + + + +Fazit + + + + + + + + + + + + + + + + + + + + +

+Fazit +

+ +

+Die Real-time Eigenschaften von ACE/TAO sind stark von der Implementation der Anwendung und der Konfiguration zur Laufzeit abhängig. [Obje05], [Hus03] und [ScHu06] erleichtern den Einstieg. Benutzt man das Framework korrekt, so erzielt es zuverlässig eine gute Echtzeitperformance. + +

+Probleme bei der Ende zu Ende Echtzeitperformance sind momentan noch teilweise auf die Netzwerkanbindung des RT_ PREEMPT Patches zurückzuführen. Es hat sich gezeigt, dass die Wahl und Konfiguration der Netzwerkkomponenten maßgeblich über die Ende zu Ende Performance entscheidet. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node72.html b/diplomathesis/node72.html new file mode 100644 index 0000000..550aa56 --- /dev/null +++ b/diplomathesis/node72.html @@ -0,0 +1,159 @@ + + + + + +Kommunikation zwischen .NET/C# und CORBA + + + + + + + + + + + + + + + + + + + + + +

+ +
+Kommunikation zwischen .NET/C# und CORBA +

+ +

+Das HMI[*] der TRUMPF Lasersteuerung wurde mit dem portable .NET Framework dotgnu [Boll07] in C# entwickelt [Weis06]. Da die dotgnu .NET Implementation deutlich perfomanter ist, als Mono [Proj07], ist dotgnu für embedded Systeme besser geeignet. Die Echtzeitprozesse der Lasersteuerung sind in C implementiert. Die Kommunikation zwischen HMI und Echtzeitprozessen läuft momentan entweder über eine mySQL [MySQ07] Datenbank, oder es wird über Sockets kommuniziert. + +

+Eine elegantere Lösung wäre eine Kommunikation via CORBA [Obj04] zwischen HMI und Echtzeitsteuerung. Gleichzeitig würde somit eine Fernsteuerung des Lasers über Ethernet ermöglicht. + +

+Im Microsoft .NET Framework [Corp07b] ist keine CORBA Anbindung integriert. Um von C# aus mit CORBA Objekten zu kommunizieren gibt es zwei Ansätze: Ein in C# programmierter ORB und die Erweiterung der .NET Remoting Schnittstelle [Jona07] um das Internet Inter Orb Protokol (IIOP). + +

+Diese Lösungen sind momentan auf dem Markt verfügbar: + +

+

+
C#TIDorb:
+
C# ORB des Morfeo-Projekts [Desa07], gegründet vom spanischen Ministerium für Industrie, Tourismus und Verkehr. Entwicklung abgeschlossen, aber noch nicht freigegeben. +
+
J-Integra Espresso
+
kommerzielles Produkt für Microsoft .NET und Mono. Verbindet .NET Remoting mit J2EE und CORBA. Developer Licence $399 USD. [Intr07] +
+
IIOP.NET:
+
openSource Projekt für Microsoft .NET und Mono verfügbar. Verbindet .NET Remoting mit J2EE und CORBA [ELCA07]. +
+
RemotingCORBA:
+
openSource Projekt, zur Erweiterung der .NET Remoting Schnittstelle um das IIOP Protokol. Für Microsoft .NET und Mono verfügbar, allerdings seit 2003 nicht mehr gewartet [John07]. +
+
+ +

+Die frei verfügbaren Tools wurden genauer untersucht, auch hinsichtlich Ihrer Lauffähigkeit im dotgnu portable .NET Framework. + +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node73.html b/diplomathesis/node73.html new file mode 100644 index 0000000..7e155d7 --- /dev/null +++ b/diplomathesis/node73.html @@ -0,0 +1,140 @@ + + + + + +IIOP.NET + + + + + + + + + + + + + + + + + + + + + +

+ +
+IIOP.NET +

+ +

+IIOP.NET [ELCA07] ist ein openSource (LGPL) Projekt der Elca Informatique SE in Kooperation mit der ETH Zürich. Es ermöglicht eine nahtlose Interoperation zwischen verschiedenen verteilten Objekten (.NET, CORBA und J2EE). Ein IDLToCLSCompiler übersetzt ein IDL-Interface in eine C# Library. Wird die eigene Applikation gegen diese Library gelinkt, so stehen sämtliche Interfacemethoden als entsprechende Funktionsaufrufe zur Verfügung. + +

+IIOP.NET funktioniert mit dem Microsoft .NET Framework und Mono. Dotgnu wird zur Zeit nicht unterstützt. Aus diesem Grund habe ich versucht IIOP.NET von Mono nach dotgnu zu portieren. Hierzu wurden die Makefiles an den dotgnu Compiler angepasst und der IDLToCLSCompiler übersetzt. Bei der Anwendung des IDLToCLSCompilers wird bei der ersten Klasse, welche in dotgnu noch nicht implementiert ist, eine NotImplementedException geworfen und die weitere Ausführung abgebrochen: + +

+
+ +
+ +

+Auf [Gopa06] kann der aktuelle Status der vom dotgnu Projekt implementierten .NET Klassen eingesehen werden. Hinzu kommen die Klassen und Methoden aus dem ml-pnet Paket (aus Mono übernommener Code). + +

+Der Befehl + +

+
+ +
+ +

+gibt alle API Aufrufe zur Laufzeit aus. Es konnte somit festgestellt werden, dass noch weitere Klassen und Methoden in der dotgnu .NET Implementierung fehlen. Beispielsweise: + +

+ +

+Eine Implementierung im zeitlichen Rahmen dieser Diplomarbeit ist nicht möglich. + +

+Trotzdem wird im Kapitel 6 eine Applikation mit IIOP.NET, Mono und ACE/TAO erstellt, da der IIOP.NET Ansatz sehr gut ist, gewartet wird und die fehlenden Klassen und Methoden in dotgnu implementiert werden können. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node74.html b/diplomathesis/node74.html new file mode 100644 index 0000000..d178a80 --- /dev/null +++ b/diplomathesis/node74.html @@ -0,0 +1,71 @@ + + + + + +RemotingCORBA + + + + + + + + + + + + + + + + + + + + + +

+RemotingCORBA +

+Auch für den Einsatz von RemotingCORBA fehlen unter dotgnu noch einige Klassen und Methoden. Mit Mono kann auf gehostete Objekte zugegriffen werden, jedoch ist ein Hosten von Objekten aus Mono nicht möglich. Außerdem wird das Projekt seit 2003 nicht mehr gewartet. Der Einsatz von RemotingCORBA kann somit nicht empfohlen werden. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node75.html b/diplomathesis/node75.html new file mode 100644 index 0000000..ffac4de --- /dev/null +++ b/diplomathesis/node75.html @@ -0,0 +1,71 @@ + + + + + +J-Integra Espresso + + + + + + + + + + + + + + + + + + + + + +

+J-Integra Espresso +

+Da dieses Produkt als closedSource vertrieben wird, kann nicht geprüft werden, ob diese IIOP Anbindung problemloser unter dotgnu zu betreiben wäre. Zur Anbindung des HMI kommt IIOP.NET eher in Frage, da IIOP.NET die selbe Funktionalität liefert, auf dotgnu portierbar ist und frei, als openSource, verfügbar ist. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node76.html b/diplomathesis/node76.html new file mode 100644 index 0000000..d6c9fa4 --- /dev/null +++ b/diplomathesis/node76.html @@ -0,0 +1,130 @@ + + + + + +Überprüfung der Machbarkeit + + + + + + + + + + + + + + + + + + + + +

+ +
+Überprüfung der Machbarkeit +

+ +

+ +

+ + + +
Figure 35: +Schema: Machbarkeitsstudie C# - CORBA Kommunikation
+
+[width=0.8]./img/iiopdemo.jpg + +
+
+
+ +

+Ob eine Kommunikation zwischen .NET Remoting und CORBA momentan vernünftig implementiert und genutzt werden kann, soll mit der Entwicklung einer Demoapplikation untersucht werden. + +

+Abbildung 5.4: Der Benutzer soll mit Hilfe einer C#, GTK# Oberfläche die Darstellung eines der drei Programme (blink, flash, move) auf dem digitalen Ausgang einer CPX anstoßen. Diese C# Applikation übermittelt einer C++ Applikation, welches Programm dargestellt werden soll. Die C++ Applikation generiert das gewählte Programm in Form von Prozessabbildern, welche zu einem bestimmten Zeitpunkt via RTCORBA [Obj05b] an eine, für die Ausgabe des Prozessabbildes verantwortliche, Applikation übermittelt werden. Wurden alle genrierten Prozessabbilde versendet, wird auf der grafischen Oberfläche als Bestätigung der gewählte Modus angezeigt. + +

+Die beschriebene Applikation konnte erfolgreich implementiert werden. Als .NET Plattform wurde Mono [Proj07] eingesetzt, da es die .NET Spezifikation vollständiger implementiert als dotgnu. Als Brücke zwischen .NET Remoting und CORBA [Obj04] wurde IIOP.NET benutzt. Als CORBA Distribution wurde ACE/TAO [Schm07c] eingesetzt. Zur Visualisierung werden die GTK# Libraries verwendet. + +

+Obwohl das IIOP.NET Projekt momentan kaum dokumentiert ist, sollte es anhand der in Kapitel 6.3 beschriebenen Implementierung dieser Applikation möglich sein, auch schnell eigene Projekte zu erstellen. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node77.html b/diplomathesis/node77.html new file mode 100644 index 0000000..9f48e11 --- /dev/null +++ b/diplomathesis/node77.html @@ -0,0 +1,88 @@ + + + + + +Integration + + + + + + + + + + + + + + + + + + + + + +

+ +
+Integrationsmöglichkeiten von RTCORBA in die bestehende Lasersteuerung +

+Dieses Kapitel beschreibt, wie und wo RTCORBA [Obj05b] in die aktuelle TruControl 1000 Software, zur Steuerung von TRUMPF Festkörperlasern [TRUM07b], integriert werden könnte. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node78.html b/diplomathesis/node78.html new file mode 100644 index 0000000..2c243a4 --- /dev/null +++ b/diplomathesis/node78.html @@ -0,0 +1,78 @@ + + + + + +generische RTCORBA Schnittstelle + + + + + + + + + + + + + + + + + + + + + +

+ +
+generische RTCORBA Schnittstelle +

+ +

+Die Lasersteuerung ist komplett in C implementiert. Es ist eine Schnittstelle implementiert, über welche der Laser angesteuert werden kann und Zustände abgefragt werden können. + +

+Würde man diese Schnittstellen in IDL (siehe Kapitel 2.6.3) nachbilden, könnte man in der IDL-Schnittstellenimplementation die Befehle an die Laserschnittstelle durchreichen. Somit könnte der Laser per RTCORBA über Real-time Ethernet angesteuert werden. + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node79.html b/diplomathesis/node79.html new file mode 100644 index 0000000..b1afcbc --- /dev/null +++ b/diplomathesis/node79.html @@ -0,0 +1,128 @@ + + + + + +DAIS + + + + + + + + + + + + + + + + + + + + + +

+DAIS - Data Acquisition From Industrial System +

+ +

+Die DAIS Spezifikation [Obj05a] beschreibt einen DAIS Server, DAIS Data Access, sowie Alarms & Events. Der DAIS Server hostet Messwerte, welche per DAIS Data Access über ein Netzwerk abgerufen werden können. Für das Abrufen der Messwerte erzeugt sich ein Data Accessor beim Server ein neues Session Interface und definiert, welche Werte er in welchem Intervall erhalten möchte. Über Alarms & Events können Grenzwerte für Messwerte definiert werden. Beim Überschreiten eines Grenzwertes versendet der Server einen Alarm beziehungsweise Event an den entsprechenden Data Acccessor. + +

+ +

+ + + +
Figure 39: +Konzept: Homag DAIS Server
+
+[width=0.6]./img/homagdais.jpg + +
+
+
+ +

+Homag [Homa07] hat DAIS Server und Data Access in C++ und ACE/TAO [Schm07c] implementiert. Der Homag DAIS Server hat auf Steuerungsseite ein Plugin Interface, an welches entweder ein spezielles Plugin (Abb. 39, Konfiguration I) oder ein Master Plugin und dahinter mehrere spezielle Plugins (Abb. 39, Konfiguration II) angedockt werden können. + +

+Um die Werte eines Lasers per DAIS zu überwachen, könnte ein Plugin für den Homag DAIS Server geschrieben werden. Innerhalb des Plugins könnte über die in Kapitel 7.1 vorgestellte Schnittstelle auf den Laser zugegriffen werden. + +

+Der Homag DAIS Server wurde im Rahmen der Diplomarbeit bei TRUMPF aufgesetzt. Ein kurzer Test mit einem Simulationsplugin fand statt. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node8.html b/diplomathesis/node8.html new file mode 100644 index 0000000..b360627 --- /dev/null +++ b/diplomathesis/node8.html @@ -0,0 +1,135 @@ + + + + + +Gliederung + + + + + + + + + + + + + + + + + + + + +

+Gliederung +

+ +

+In Kapitel 2 werden die für das Verständnis der Arbeit notwendigen Fachbegriffe erläutert. + +

+Kapitel 3 bildet den Kern der Arbeit. +Die Architektur des ACE/TAO Frameworks wird beschrieben und dessen Performance untersucht. +Neben einer 1:1 Verbindung werden auch n:1 Verbindungen mit und ohne Real-time EventService untersucht. +Mittels verschieden priorisierten Daten, wird untersucht ob eine Priority Inversion auftritt. +Es werden verschiedene Interfacedefinitionen für den parallelen Austausch von nieder priorisierten Logdateien und hoch priorisierten Prozessabbildern erstellt und verglichen. +Es wird untersucht, wie sich das ACE/TAO Framework bei größeren Datenmengen, welche in Echtzeit übertragen werden sollen, verhält. +Ein Fazit gibt Auskunft über die Stärken und Schwächen des Frameworks. + +

+Memory Footprints (Arbeitsspeicher und Massenspeicher) des ACE/TAO Frameworks werden in Kapitel 4 bewertet und optimiert. + +

+In Kapitel 5 werden Möglichkeiten zur Verbindung von .NET Remoting [Jona07] mit CORBA vorgestellt. +Die Machbarkeit der Anbindung wird mit einer Demoapplikation demonstriert. + +

+Die Implementierung der Machbarkeitsstudie zur Kommunikation zwischen .NET Remoting und CORBA wird in Kapitel 6 beschrieben. + +

+Kapitel 7 zeigt auf, wie die Real-time CORBA Technologie in die Lasersteuerung integriert werden könnte. + +

+Die Arbeit schließt mit einem Fazit mit Ausblick, Dankesworten und einer Liste der besuchten Fachveranstaltungen. + +

+Im Anhang ist ein Abbildungs-, Tabellen-, Abkürzungs- und Literaturverzeichnis abgedruckt. + +

+Anhang A beschreibt die Softwarekonfiguration, sowie das verwendete embedded System. + +

+Desweiteren verweisen Anhänge auf die verwendeten Tools und den Inhalt der CD-ROM. + +

+ +

+ +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node80.html b/diplomathesis/node80.html new file mode 100644 index 0000000..f5c4ae5 --- /dev/null +++ b/diplomathesis/node80.html @@ -0,0 +1,80 @@ + + + + + +Anbindung des .NET HMI + + + + + + + + + + + + + + + + + + + + +

+Anbindung des .NET HMI +

+ +

+Zur Zeit ist das HMI des Lasers über eine Datenbank angebunden. Um eine Anbindung per CORBA [Obj04] zu realisieren müßten in dotgnu [Boll07] die momentan noch fehlenden Klassen und Funktionen implementiert werden, welche von IIOP.NET [ELCA07] benötigt werden (siehe Kapitel 5.1). + +

+Momentan wird für den Zugriff von dem HMI auf die Lasersteuerung ein generischer Wrapper verwendet, der die entsprechenden Daten aus der Datenbank liest, beziehungsweise in die Datenbank schreibt. Dieser Wrapper könnte durch einen IIOP.NET, CORBA Wrapper ausgetauscht werden, welcher die in Kapitel 7.1 erwähnte CORBA Schnittstelle ansteuert. + +

+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node81.html b/diplomathesis/node81.html new file mode 100644 index 0000000..8ece234 --- /dev/null +++ b/diplomathesis/node81.html @@ -0,0 +1,135 @@ + + + + + +Fazit + + + + + + + + + + + + + + + + + + + + + +

+Fazit +

+ +

+Der Kern der Arbeit lag in der Untersuchung des Echtzeitverhaltens der Real-time CORBA Implementation TAO unter Linux mit einem RT_ PREEMPT gepatchten Kernel. Hierzu wurde eine geeignete Messumgebung entwickelt und Messungen unter verschiedenen Bedingungen durchgeführt. Es wurden verschiedene echtzeitfähige Switches in die Versuchsumgebung integriert und derren Performance verglichen. Alle durchgeführten Versuche erfüllten bei korrekter Konfiguration aller Komponenten (ACE/TAO, Betriebssystem, Switch) die Erwartungen. Es ist möglich ein 1 kByte großes Prozessabbild garantiert innerhalb 1 ms per Real-time CORBA über Ethernet zu übertragen. Auch in ACE/TAO verschieden priorisierte Aufgaben werden in allen Komponenten entsprechend ihrer Priorität korrekt abgearbeitet. + +

+Zweiter Schwerpunkt wurde auf das Finden einer geeigneten CORBA Erweiterung für in C# / .NET entwickelte Applikationen gelegt. Es wurden verschiedene Ansätze untersucht und mit dem am Besten geeigneten (IIOP.NET) eine Applikation, zur Demonstration der Machbarkeit, entwickelt. Der C# Anteil der verteilten Applikation wurde für die Mono Runtime entwickelt, da in dem bei TRUMPF verwendeten portable .NET Framework dotgnu noch einige von IIOP.NET benötigte Klassen nicht implementiert sind. + +

+Die größte Herausforderung lag in der Konfiguration der an der Real-time Kommunikation beteiligten Komponenten. Harte Echtzeit kann nur garantiert werden, wenn jede Komponente so konifguriert ist, dass die Prioritäten der Aufgaben korrekt bewertert werden. + +

+Es war im Rahmen der Diplomarbeit nicht möglich, den personellen Aufwand abzuschätzen, welcher im Falle eines Einsatzes von ACE/TAO in der TRUMPF Gruppe entstehen würde, da dies sehr stark vom, momentan noch nicht genau bekannten, Einsatzzweck des Frameworks abhängig sein wird. Es kann jedoch gesagt werden, dass nach einer langen Lernphase sehr schnell zuverlässige, verteilte Anwendungen entwickelt werden können. + +

+In weiteren Untersuchungen sollte die Perfomance von TAO Real-time CORBA über Plattformgrenzen hinweg überprüft werden. Für die Kommunikation von mehreren Steuerungen sollte eine Semantik für die Kommunikation via Real-time CORBA entwickelt werden. Als Ansatz könnte, das (noch) nicht hart echtzeitfähige und nur auf den Transport von Messwerten ausgelegte DAIS dienen. Durch die Entwicklung von Bridges sollte die Kompatibilität zu bestehenden Standards, wie zum Beispiel OPC oder CAN bewahrt werden. Eine OPC Bridge sollte von DAIS aus relativ einfach realisierbar sein, da die Semantik der Sprachen identisch ist. Für eine Ankopplung von Real-time CORBA an CAN gibt es ebenfalls Ansätze [Lan]. + +

+Diese Diplomarbeit zeigt, dass die Performance und Stabilität von TAO RTCORBA mit Feldbussystemenen vergleichbar ist. ACE/TAO ermöglicht eine schnelle und effiziente Programmierung von objektorientierten Echtzeitapplikationen. Die Real-time Ethernet Kommunikation funktioniert mit Standard TCP/IP Stacks und fast beliebiger Hardware. Einzig bei der Wahl des Switches muß dessen QoS (diffServ) Fähigkeit geprüft werden. + +

+Verschiedene Dienstleiter bieten Support für ACE/TAO. Es besteht die Möglichkeit der direkten Kontaktaufnahme mit den Entwicklern via Mailinglist (comp.softsys.ace). + +

+Es liegt nun an den Herstellern von Steuerungssystemen, sich beim Einsatz von Real-time CORBA auf gemeinsame Schnittstellendefinitionen zu stützen, um eine Kommunikation zu vereinfachen. Aber selbst wenn dies nicht möglich ist und CORBA nur als interne Schnittstelle eingesetzt wird, wird die Integration von neuen Protokollen in die eigene Steuerung stark vereinfacht. So untersuchte auch HP die Integration einer CORBA Schnittstelle in langlebende Geräte (Drucker, Scanner, ...). Denn es sei praktisch unmöglich die ständig wechselnde Protokolle zur Ansteuerung der Geräte, in die Firmware zu integrieren [ShMo04]. + +

+


+ +Subsections + + + + + + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node82.html b/diplomathesis/node82.html new file mode 100644 index 0000000..c643874 --- /dev/null +++ b/diplomathesis/node82.html @@ -0,0 +1,93 @@ + + + + + +Dank + + + + + + + + + + + + + + + + + + + + + +

+Dank +

+ +

+Zuerst möchte ich mich bei Matthias Bühler und Professor Martin Zeller für die Betreuung dieser Diplomarbeit bedanken. + +

+Vielen Dank an die Abteilung EES von TRUMPF Laser Schramberg, für die Finanzierung der Diplomarbeit und Exkursionen, sowie die Unterstützung durch Rainer Thieringer (Ausrichtung der Diplomarbeit, allgemeine Tipps), Peter Bantle (Echtzeit), Heiko Weiss und Erik Pfeifle (.NET). + +

+Bedanken möchte ich mich auch bei Homag, insbesondere bei Friedhelm Wolf für die TAO Einführung, sowie bei Thomas Rothfuss für die Vorstellung von DAIS und dessen Integration in die TRUMPF Entwicklungsumgebung. + +

+Für die Cisco Einführung bedanke ich mich bei Nicole Vreden. + +

+Ein besonderer Dank an Thomas Gleixners Firma linutronix: Benedikt Spranger für die Unterstützung rund um den RT_ PREEMPT Patch und Jan Altenberg für die gnuplot Einführung. + +

+Für den kostenlosen Eintritt zum Open Source Meets Business Kongress, bedanke ich mich bei dem Heise Zeitschriften Verlag. + +

+And last but not least, many thanks to Douglas C. Schmidt and the ACE/TAO Community for ACE/TAO and support. Special thanks for the soreduce support to Johny Willemsen from Remedy IT Netherlands. + +

+ +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node83.html b/diplomathesis/node83.html new file mode 100644 index 0000000..e9d065b --- /dev/null +++ b/diplomathesis/node83.html @@ -0,0 +1,93 @@ + + + + + +Exkursionen + + + + + + + + + + + + + + + + + + + + +

+Exkursionen +

+ +

+Folgende Fachveranstaltungen wurden von mir im Rahmen der Diplomarbeit besucht: + +

+

+
04.12. 2006
+
Besichtigung TRUMPF Laser Dietzingen +
+
28.11. - 29.11. 2006
+
SPS/IPC/Drives Nürnberg +
+
23.01. - 26.01. 2007
+
heise Kongress Open Source Meets Business Nürnberg +
+
14.02. 2007
+
embedded world Nürnberg +
+
+ +

+ +

+ + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node84.html b/diplomathesis/node84.html new file mode 100644 index 0000000..0a335a2 --- /dev/null +++ b/diplomathesis/node84.html @@ -0,0 +1,135 @@ + + + + + +List of Figures + + + + + + + + + + + + + + + + + + + + +
+ +

+List of Figures +

    +
  1. embedded System (Quelle: http://www.acmesystems.it) +
  2. verteiltes System +
  3. ORB mit Schnittstellen zu Applikation und System +
  4. Real-time CORBA Erweiterungen (Quelle: [Obj05b]) +
  5. Versuchsaufbau für Latenzmessungen +
  6. Struktur des ACE Frameworks (Quelle: http://www.cs.wustl.edu/ schmidt/) +
  7. Sequenzdiagramm: V1 Prozessabbild übertragen +
  8. Datenfluss : V1 Prozessabbild via TAO übertragen +
  9. Receiver u. Supplier o. zusätzl. Systemlast +
  10. Receiver o. zusätzl. Systemlast; Supplier mit CPU Last +
  11. Receiver o. zusätzl. Systemlast; Supplier m. CPU, Netz u. HD Last +
  12. Receiver m. Netzlast; Supplier o. zusätzl. Last +
  13. Receiver u. Supplier m. CPU, Netz u. HD Last +
  14. Receiver m. CPU u. HD Last; Supplier m. CPU, Netz u. HD Last +
  15. Supplier u. Receiver o. Last +
  16. Supplier u. Receiver m. xdd, flood ping u. cpuburnP5 belastet +
  17. Sequenzdiagramm V2 +
  18. CPX1 u. 2 o. Last +
  19. CPX1 u. 2 m. xdd, flood ping u. cpuburnP5 belastet +
  20. RT EventService mit 2 Consumern +
  21. Abhängigkeit Datenmenge - Latenz +
  22. 3 CPXen verbunden mit QoS-Switch +
  23. Latenzverteilung V4 +
  24. wireshark dump: Übertragung einer niedrig priorisierten Logdatei +
  25. wireshark dump: Übertragung eines Prozessabbilds mit höchster RTCORBA Priorität +
  26. wireshark dump: entsprechend der RTCORBA Priorität wird auch die diffServ Priorität gesetzt +
  27. V5 immediate case +
  28. V5 worst case +
  29. V5 immediate case mit Cisco Switch +
  30. Foto: Versuchsaufbau V5 mit Cisco Switch +
  31. Schema: Machbarkeitsstudie C# - CORBA Kommunikation +
  32. Konzept: Homag DAIS Server
+

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node85.html b/diplomathesis/node85.html new file mode 100644 index 0000000..4468b65 --- /dev/null +++ b/diplomathesis/node85.html @@ -0,0 +1,180 @@ + + + + + +List of Tables + + + + + + + + + + + + + + + + + + + + +
+ +

+List of Tables +

    +
  1. Aufbau einer IOR +
  2. RT_ Info Struktur +
  3. Priorisierung CPX1 - Supplier - RTCORBA Client +
  4. Priorisierung CPX2 - Receiver - RTCORBA Server +
  5. Latenzzeiten bei variierender Systembelastung +
  6. Repriorisierung CPX1 - Supplier - RTCORBA Client +
  7. Repriorisierung CPX2 - Receiver - RTCORBA Server +
  8. Portpriorisierung, Hirschmann Switch
+

+Abb.Abbildung +ACEAdaptive Communication Environment +ASXAdaptive Service Executive +bzw.beziehungsweise +CIAOComponent Integrated ACE ORB +CORBACommon Object Request Broker Architecture +CPUCentral Processing Unit +CPXCentral Processor eXtandable +CSVComma Seperated Values +DAISData Acquisition From Industrial System +DAnCEDeployment And Configuration Engine +DCOMDistributed Component Object Object Model +DIIDynamic Invocation Interface +DOCDistributed Object Computing +dpidots per inch +DSIDynamic Skeleton Interface +enumenumeration +ERPEnterpriseResourcePlanning +FIFOFirst In First Out +FSFFree Software Foundation +GIOPGeneral InterORB Protocol +GNUGNU Is Not Unix +HDHardDisk +HDDHardDisk Drive +ICEInternetCommunications Engine +IDLInterface Definition Language +IFRInterface Repository +IIOPInternet InterORB Protocol +IPInternet Protocol +IPCInter Process Communication +IORInteroperable Object Reference +kBkiloByte (1024 Bytes) +m.mit +MBMegaByte (1024 kB) +MOMMessage Oriented Middleware +o.ohne +OLEObject Linking and Embedding +OMGObject Management Group +OPCOLE for Process Control +OPCOpenness, Productivity, Collaboration +ORBObject Request Broker +OSOperation System +OSADLOpen Source Automation Development Labs +OSIOpen System Interconnection +PCPersonal Computer +POAPortable Object Adapter +QoSQuality of Service +RAMRandom Access Memory +RMIRemote Methode Invocation +RMSRate Monotonic Scheduling +ROMRead Only Memory +RPCRemote Procedure Call +RTRealTime +RTOSRealTime OperatingSystem +SETISearch for extraterrestrial intelligence +SOAPSimple Object Access Protocol +TAOThe ACE ORB +TCPTransmission Control Protocol +u.und +USBUniversal Serial Bus +z.B.zum Beispiel +zusätzl.zusätzlich + +

+

+ +
+ + +
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node86.html b/diplomathesis/node86.html new file mode 100644 index 0000000..88d45f6 --- /dev/null +++ b/diplomathesis/node86.html @@ -0,0 +1,654 @@ + + + + + +Bibliography + + + + + + + + + + + + + + + + + + + + + +

+Bibliography +

Bal,91 +
+BAL, HENRI E.; SILICON PRESS (Hrsg.): +
Programming Distributed Systems. +
Prentice Hall International, 1991 + +

Blac90 +
+BLACK, UYLESS; PRENTICE HALL (Hrsg.): +
OSI A Model for Computer Communications Standards. +
Prentice Hall, 1 November 1990 + +

Bogn07 +
+BOGNER, S.: +
Mixing ACE/TAO and .NET Clients and Servers. +
Internet: http://www.codeproject.com/csharp/IIOPNetandTAO.asp/, 9 + Februar 2007 + +

Boll07 +
+BOLLOW, N.: +
DotGNU Project. +
Internet: http://www.dotgnu.org/, 8 Februar 2007 + +

CiA07 +
+CIA: +
Controller Area Network (CAN) - CAN in Automation (CiA). +
Internet: http://www.can-cia.org/, 5 Februar 2007 + +

Cisc06 +
+CISCO SYSTEMS, I. +
Cisco Catalyst 2955 Series Switches. +
Internet: + http://www.cisco.com/application/pdf/en/us/guest/products/ps5062/c1650/ccmigration_ 09186a008017ae6f.pdf. +
28 November 2006 + +

Corp07a +
+CORPORATION, B. S.: +
Borland VisiBroker - CORBA ORB-Based Platform for Distributed + Applications. +
Internet: http://www.borland.com/us/products/visibroker/index.html, 5 + Februar 2007 + +

Corp07b +
+CORPORATION, M.: +
.NET Framework Developer Center. +
Internet: http://msdn2.microsoft.com/en-us/netframework/default.aspx, + 8 Februar 2007 + +

Desa07 +
+DESARROLLO S.A. UNIPERSONAL, T. I.: +
Morfeo-Project - Home page. +
Internet: http://www.morfeo-project.org/, 8 Februar 2007 + +

Deve06 +
+DEVELOPER, A.: +
websvn: View of /trunk/ACE/ChangeLog - Revision 75319. +
Internet: + https://svn.dre.vanderbilt.edu/viewvc/Middleware/ +
trunk/ACE/ChangeLog?view=markup&pathrev=75319, 10 November 2006 + +

ELCA07 +
+ELCA: +
IIOP.NET - Overview. +
Internet: http://iiop-net.sourceforge.net/, 8 Februar 2007 + +

ETHE07 +
+ETHERNET POWERLINK STANDARDIZATION GROUP, c. T. A.: +
ETHERNET Powerlink :: EPSG. +
Internet: http://www.ethernet-powerlink.org/, 5 Februar 2007 + +

FSML07 +
+FSMLABS, I.: +
Home - fsmlabs.com. +
Internet: http://www.fsmlabs.com/, 5 Februar 2007 + +

Gil01 +
+GILL, C. D.; LEVINE, D. L.; SCHMIDT, D. C.: +
The Design and Performance of a Real-Time CORBA Scheduling + Service. +
DOC, Forschungsbericht, 2001 + +

Glei06 +
+GLEIXNER, T.: +
linutronix - home. +
Internet: http://linutronix.de/, 13 Dezember 2006 + +

Gopa06 +
+GOPAL, V.: +
Portable.Net Status Page. +
Internet: http://dotgnu.org/pnetlib-status/, 9 M^b arz 2006 + +

Gree07 +
+GREEN HILLS SOFTWARE, I.: +
INTEGRITY Real-Time Operating System. +
Internet: http://www.ghs.com/products/rtos/integrity.html, 5 Februar + 2007 + +

HEAD07 +
+HEADQUATERS, O.: +
ODVA : Home. +
Internet: http://www.odva.org/, 5 Februar 2007 + +

Hoch05 +
+HOCHGESCHWENDER, N.: +
Die ZeroC/Ice Middleware. +
Robocupteam FH Weingarten, Forschungsbericht, 2005 + +

Homa07 +
+HOMAG AG: +
Homag AG - Homag Holzverarbeitungssysteme AG. +
Internet: http://www.homag.de/, 5 Februar 2007 + +

Hus03 +
+HUSTON, S. D.; JOHNSON, J. C.; SYYID, U.; + EDUCATION, P. (Hrsg.): +
The ACE Programmer's Guide. +
Addison-Wesley, 2003 + +

INTE07 +
+INTERBUS: +
INTERBUS Club online. +
Internet: http://www.interbusclub.com/de/, 5 Februar 2007 + +

Intr07 +
+INTRINSYC SOFTWARE INTERNATIONAL, I.: +
J-Integra Espresso: J2EE / CORBA / .NET Interoperability. +
Internet: http://j-integra.intrinsyc.com/products/espresso/, 8 + Februar 2007 + +

I/O05 +
+I/O Performance, Inc.: +
Xdd User's Guide. +
Version 6.5.100106. +
16 Dezember 2005 + +

John07 +
+JOHNSON, K.: +
Remoting.Corba Integration of IIOP into .NET. +
Internet: http://remoting-corba.sourceforge.net/, 8 Februar 2007 + +

Jona07 +
+PIET OBERMEYER UND JONATHAN HAWKINS, m. D.: +
Microsoft .NET Remoting: Ein technischer Überblick. +
Internet: + http://www.microsoft.com/germany/msdn/library/net/NETRemoting.mspx, 5 Februar + 2007 + +

Kont07 +
+KONTRON AG: +
Industrial Automation - Kontron. +
Internet: http://de.kontron.com/index.php?id=38, 10 Februar 2007 + +

Kuh00 +
+KUHNS, F.; LEVINE, D.; SCHMIDT, D. C.; + O'RYAN, C.: +
Supporting High-performance I/O in QoS-enabled ORB Middleware. +
DOC, Forschungsbericht, 2000 + +

Lan +
+LANKES, S.; JABS, A.; BEMMERL, T.: +
Design and Performance of a CAN-based Connection-oriented + Protocol for Real-time CORBA. +
In: Journal of Systems and Software, +
77, Issue 1 + +

Limi07 +
+LIMITED, S. S.: +
Symbian OS - the mobile operating system. +
Internet: http://www.symbian.com/, 5 Februar 2007 + +

Linu06 +
+GENTOO LINUX COMMUNITY: +
Gentoo Handbuch Rev. 7.2. Konfiguration des Bootloaders. +
Internet: + http://www.gentoo.de/doc/de/handbook/handbook-x86.xml?part=1&chap=10#doc_ chap2, 7 September 2006 + +

Love05 +
+LOVE, ROBERT; NOVELL PRESS (Hrsg.): +
Linux-Kernel-Handbuch (Leitfaden zu Design und Implementierung + zu Kernel 2.6). +
Addison-Wesley, 10 Juli 2005 + +

Micr07 +
+MICROSOFT: +
Windows Embedded CE Overview and Benefits. +
Internet: + http://www.microsoft.com/windows/embedded/eval/wince/default.mspx, 5 Februar + 2007 + +

Moln07 +
+MOLNAR, I.: +
Index of /mingo/realtime-preempt. +
Internet: http://www.redhat.com/ mingo/realtime-preempt/, 5 Februar + 2007 + +

MySQ07 +
+MYSQL: +
MySQL AB - The world's most popular open source database. +
Internet: http://www.mysql.com/, 8 Februar 2007 + +

Nata07 +
+NATARAJAN, BALA: +
Footprint Metrics Detailed Results. +
Internet: http://www.dre.vanderbilt.edu/stats/simple_ + footprint.shtml, 7 Februar 2007 + +

Netw07a +
+NETWORK, S. D.: +
Jini Network Technology. +
Internet: http://java.sun.com/developer/products/jini/, 5 Februar + 2007 + +

Netw07b +
+NETWORK, S. D.: +
Remote Method Invocation. +
Internet: + http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp, 5 Februar + 2007 + +

Nic98 +
+NICHOLS, K.; BLAKE, S.; BAKER, F.; BLACK, + D.: +
RFC 2474: Definition of the Differentiated Services Field (DS + Field) in the IPv4 and IPv6 Headers. +
Cisco Systems and Torrent Networking Technologies and EMC + Corporation, Forschungsbericht, 1998 + +

Obj03a +
+ObjectManagmentGroup: +
Event Service Specification. +
Version 1.2. +
2 Oktober 2003 + +

Obj03b +
+ObjectManagmentGroup: +
Naming Service Specification. +
Version 1.3. +
3 Oktober 2003 + +

Obj04 +
+ObjectManagmentGroup: +
Common Object Request Broker Architecture: Core + Specification - CORBA. +
Version 3.0.3. +
12 M^b arz 2004 + +

Obj05a +
+ObjectManagmentGroup: +
Data Acquisition From Industrial System. +
Version 1.1. +
1 Juni 2005 + +

Obj05b +
+ObjectManagmentGroup: +
Real-time CORBA Specification. +
Version 1.2. +
4 Januar 2005 + +

Obje05 +
+OBJECT COMPUTING, I.; OBJECT COMPUTING, I. (Hrsg.): +
TAO Developer's Guide Version 1.4a. +
Object Computing, Inc., 2005 + +

Obje07 +
+OBJECTMANAGMENTGROUP: +
Object Managment Group. +
Internet: http://www.omg.org/, 5 Februar 2007 + +

OMG07 +
+OMG: +
CORBAservices Specification. +
Internet: + http://www.omg.org/technology/documents/corbaservices_spec_catalog.htm, 5 + Februar 2007 + +

OPCF07 +
+OPCFOUNDATION: +
The OPC Foundation - Dedicated to Interoperability in + Automation. +
Internet: http://www.opcfoundation.org/, 5 Februar 2007 + +

OSAD07a +
+OSADL EG: +
Open Source Automation Development Labs. +
Internet: http://www.osadl.org/, 5 Februar 2007 + +

OSAD07b +
+OSADL EG: +
Realtime Kernel Live CD. +
Internet: http://osadl.org/projects-live-cd.0.html, 5 Februar 2007 + +

Pool07 +
+POOL, M.: +
distcc: a fast, free distributed C/C++ compiler. +
Internet: http://distcc.samba.org/, 5 Februar 2007 + +

Proj07 +
+MONO PROJECT: +
Main Page - Mono. +
Internet: http://www.mono-project.com/, 8 Februar 2007 + +

Pya01 +
+PYARALI, I.; SPIVAK, M.; CYTRON, R.: +
Evaluating Thread Pool Strategies for Real-time CORBA. +
DOC, Forschungsbericht, 2001 + +

Radi07 +
+RADISYS: +
MICROWARE OS-9. +
Internet: http://www.radisys.com/products/Microware-OS-9.cfm, 5 + Februar 2007 + +

Raym97 +
+RAYMOND, ERIC (ÜBERSETZT VON MÜLLER, LUKAS): +
Die Kathedrale und der Basar. +
In: Linux Magazin, +
 (1997), 1 August + +

Raym01 +
+RAYMOND, ERIC S.; O'REILLY (Hrsg.): +
The Cathedral And The Bazar. +
dtv, 21 Februar 2001 + +

Rede07 +
+REDELMEIER, R.: +
cpuburn Homepage. +
Internet: http://pages.sbcglobal.net/redelm/, 6 Februar 2007 + +

RIVE07 +
+RIVER, W.: +
VxWorks Center. +
Internet: http://www.windriver.com/vxworks/, 5 Februar 2007 + +

Schm98 +
+SCHMIDT, D. C.: +
An Overview of OMG CORBA Event Services. +
Washington University, St. Louis, Forschungsbericht, 1998 + +

Schm06 +
+SCHMIDT, DOUGLAS C.: +
Building and Installing TAO. +
Internet: + http://www.cs.wustl.edu/ schmidt/ACE_wrappers/TAO/TAO-INSTALL.html, 1 + September 2006 + +

Schm07a +
+SCHMIDT, DOUGLAS C.: +
The ADAPTIVE Communication Environment. +
Internet: http://www.cs.wustl.edu/ schmidt/ACE.html, 6 Februar 2007 + +

Schm07b +
+SCHMIDT, DOUGLAS C.: +
Douglas C. Schmidt's Welcome Page. +
Internet: http://www.cs.wustl.edu/ schmidt/, 5 Februar 2007 + +

Schm07c +
+SCHMIDT, DOUGLAS C.: +
Real-time CORBA with TAO (The ACE ORB). +
Internet: http://www.cs.wustl.edu/ schmidt/TAO.html, 5 Februar 2007 + +

ScHu06 +
+SCHMIDT, D. C.; HUSTON, S. D.; C++ IN-DEPTH + SERIES STROUSTRUP, B. (Hrsg.): +
C++ Network Programming Volume 2, Systematic Reuse with ACE and + Frameworks. +
Addison-Wesley, 2006 + +

SERC07 +
+SERCOS: +
SERCOS-III. +
Internet: http://www.sercos.de/sercos3.htm, 5 Februar 2007 + +

SETI06 +
+SETI@home. +
Internet: http://setiathome.berkeley.edu/, 6 September 2006 + +

Shaf07 +
+SHAFRANOVICH, Y.: +
RFC 4180: Common Format and MIME Type for Comma-Separated + Values (CSV) Files. +
SolidMatrix Technologies, Inc., Forschungsbericht, 2007 + +

ShMo04 +
+SHENOY, R.; MOORE, K.: +
Sustaining the Integration of Long-Lived Systems with .NET. +
+
 (2004) + +

Spie07 +
+SPIEGEL, A.: +
JacORB. +
Internet: http://www.jacorb.org/, 5 Februar 2007 + +

Stev94 +
+STEVENS, W. RICHARD; ADDISON WESLEY (Hrsg.): +
TCP/IP Illustrated Volume 1 - The Protocols. +
Addison Wesley, 1 Februar 1994 + +

Stro00 +
+STROUSTRUP, BJARNE; PEARSON EDUCATION (Hrsg.): +
The C++ Programming Language Special Edition. +
Addison Wesley, 15 M^b arz 2000 + +

Tane01 +
+TANENBAUM, ANDREW S.; PRENTICE HALL INTERNATIONAL + (Hrsg.): +
Modern Operating Systems Second Edition. +
Alan Apt, 6 Dezember 2001 + +

Tech07 +
+TECHNOLOGIES, I.: +
Orbacus: source available CORBA. +
Internet: http://www.iona.com/products/orbacus.htm, 5 Februar 2007 + +

Tekt07 +
+TEKTRONIX, I. +
Digital Phosphor Oscilloscopes TDS 3000B Series. +
Internet: http://www.tek.com/site/ps/41-12482/pdfs/41W_12482.pdf. +
6 Februar 2007 + +

The 07 +
+THE KERNEL.ORG ORGANIZATION, I.: +
The Linux Kernel Archives. +
Internet: http://kernel.org, 5 Februar 2007 + +

TRUM07a +
+TRUMPF GMBH + CO. KG: +
TRUMPF Machine Tools - Laser Technology - Electronics - Medical + Technology - Power Tools. +
Internet: http://www.TRUMPF.com/, 5 Februar 2007 + +

TRUM07b +
+TRUMPF LASER GMBH + CO. KG: +
TRUMPF Festkörperlaser Programmübersicht 2006/07. +
Internet: + http://www.trumpf-laser.com/207.img-cust/Programmuebersicht.pdf/, 5 Februar + 2007 + +

TRUM07c +
+TRUMPF LASER GMBH + CO. KG: +
TRUMPF Laser Division. +
Internet: http://www.TRUMPF-laser.com/, 5 Februar 2007 + +

TrWi06 +
+TRAUT, M.; WILLEMSEN, J.: +
comp.soft-sys.ace - Error using mwc.pl after soreduce. +
Internet: http://groups.google.de/group/comp.soft-sys.ace/browse_ + thread/thread/f66687e7c429f7c5/?hl=de#, 13 Oktober 2006 + +

Ts'o07 +
+TS'O, D.: +
Real-Time Linux Wiki. +
Internet: http://rt.wiki.kernel.org/, 5 Februar 2007 + +

W3C07 +
+W3C: +
SOAP Specifications. +
Internet: http://www.w3.org/TR/soap/, 5 Februar 2007 + +

Weis06 +
+WEISS, H.: +
Cross Platform Development - Why DotGNU? +
Internet: + http://dotgnu.org/pipermail/developers/2006-March/000182.html, 9 M^b arz + 2006 + +

WIKI07a +
+WIKIPEDIA: +
Distributed Component Object Model. +
Internet: + http://de.wikipedia.org/wiki/Distributed_Component_Object_Model, 5 Februar + 2007 + +

WIKI07b +
+WIKIPEDIA: +
Linux. +
Internet: http://de.wikipedia.org/wiki/Linux, 5 Februar 2007 + +

Will07 +
+WILLIAMS, C.: +
gnuplot homepage. +
Internet: http://www.gnuplot.info/, 6 Februar 2007 + +

Zero07a +
+ZEROC: +
The Internet Communications Engine (Ice). +
Internet: http://www.zeroc.com/ice.html, 5 Februar 2007 + +

Zero07b +
+ZEROC: +
ZeroC - Ice vs. CORBA (Ice). +
Internet: http://www.zeroc.com/iceVsCorba.html, 6 Februar 2007 + +

Zero07c +
+ZEROC: +
ZeroC - Throughput Performance Tests. +
Internet: http://www.zeroc.com/performance/throughput.html, 7 Februar + 2007 +
+ + +

+


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node87.html b/diplomathesis/node87.html new file mode 100644 index 0000000..a9b7033 --- /dev/null +++ b/diplomathesis/node87.html @@ -0,0 +1,78 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + + + + +

+About this document ... +

+

+This document was generated using the +LaTeX2HTML translator Version 2002-2-1 (1.71) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -images diplomathesis.tex +

+The translation was initiated by Manuel Traut on 2007-02-25 +


+
+Manuel Traut +2007-02-25 +
+ + diff --git a/diplomathesis/node9.html b/diplomathesis/node9.html new file mode 100644 index 0000000..4e221f0 --- /dev/null +++ b/diplomathesis/node9.html @@ -0,0 +1,177 @@ + + + + + +Grundlagen + + + + + + + + + + + + + + + + + + + + + +

+ +
+Grundlagen +

+ +

+Dieses Kapitel beschreibt die Technologien, auf welche die weiteren +Ausführungen aufbauen. Folgende Themengebiete werden als bekannt +vorausgesetzt: + +

+ +

+ +

+In diesem Kapitel wird der Stand der Technik im Bereich Kommunikation in der Automatisierungstechnik aufgezeigt, sowie neue Ansätze zur Kommunikation in der Automatisierungstechnik erläutert, das openSource Entwicklungsmodell vorgestellt und die Eigenschaften von Echtzeit-, embedded und verteilten Systemen beschrieben. Das Kapitel schließt mit einer Einführung in (Real-time) CORBA [Obj04], [Obj05b]. + +

+


+ +Subsections + + + +

+
+Manuel Traut +2007-02-25 +
+ + -- cgit v1.2.3