diff options
| author | guest <guest@da047780-0f9f-48de-953f-cd541ee48bbd> | 2007-10-31 15:13:11 +0000 |
|---|---|---|
| committer | guest <guest@da047780-0f9f-48de-953f-cd541ee48bbd> | 2007-10-31 15:13:11 +0000 |
| commit | 150e7a0af5f0f4e7eb0368c47059f56cfe50e708 (patch) | |
| tree | b90d84625d760306e7dafd01d89553c4c6536a4d | |
| parent | ff487335fb0b1428d226b5f2475f84f8ef1063d9 (diff) | |
praes pre1
git-svn-id: svn+ssh://mecka.net/home/svn/rtcorba-paper@16 da047780-0f9f-48de-953f-cd541ee48bbd
| -rwxr-xr-x | Makefile | 7 | ||||
| -rwxr-xr-x | img/sequenzV2.jpg | bin | 49409 -> 83473 bytes | |||
| -rwxr-xr-x | img/v1Last.jpg | bin | 19429 -> 14346 bytes | |||
| -rwxr-xr-x | img/v2Last.jpg | bin | 19775 -> 14007 bytes | |||
| -rwxr-xr-x | img/v3Last.jpg | bin | 27762 -> 19075 bytes | |||
| -rwxr-xr-x | img/v4plot.jpg | bin | 15813 -> 37808 bytes | |||
| -rw-r--r-- | paper.pdf | bin | 338024 -> 649452 bytes | |||
| -rw-r--r-- | praes.out | 10 | ||||
| -rw-r--r-- | praes.tex | 373 |
9 files changed, 388 insertions, 2 deletions
@@ -1,4 +1,4 @@ -all: paper.pdf +all: paper.pdf praes.pdf paper.pdf: paper.tex latex paper.tex @@ -6,5 +6,10 @@ paper.pdf: paper.tex dvips -o paper.ps paper.dvi ps2pdf paper.ps paper.pdf +praes.pdf: praes.tex + pdflatex praes.tex + pdflatex praes.tex + pdflatex praes.tex + clean: rm -f *.dvi *.aux *.log *.ps *.pdf diff --git a/img/sequenzV2.jpg b/img/sequenzV2.jpg Binary files differindex 4d1bc2b..2b6e0a0 100755 --- a/img/sequenzV2.jpg +++ b/img/sequenzV2.jpg diff --git a/img/v1Last.jpg b/img/v1Last.jpg Binary files differindex 3a36c63..82ad725 100755 --- a/img/v1Last.jpg +++ b/img/v1Last.jpg diff --git a/img/v2Last.jpg b/img/v2Last.jpg Binary files differindex 23757f7..ed0ec4e 100755 --- a/img/v2Last.jpg +++ b/img/v2Last.jpg diff --git a/img/v3Last.jpg b/img/v3Last.jpg Binary files differindex b92a95b..3f6298c 100755 --- a/img/v3Last.jpg +++ b/img/v3Last.jpg diff --git a/img/v4plot.jpg b/img/v4plot.jpg Binary files differBinary files differindex ddbabda..7db4fed 100755 --- a/img/v4plot.jpg +++ b/img/v4plot.jpg @@ -0,0 +1,10 @@ +\BOOKMARK [2][]{Outline0.1}{Introduction}{} +\BOOKMARK [3][]{Outline0.1.1.3}{Industrial automation}{Outline0.1} +\BOOKMARK [3][]{Outline0.1.2.9}{CORBA}{Outline0.1} +\BOOKMARK [3][]{Outline0.1.3.14}{ACE/TAO framework}{Outline0.1} +\BOOKMARK [2][]{Outline0.2}{Performance measurements}{} +\BOOKMARK [3][]{Outline0.2.1.18}{Remote Procedure Calls}{Outline0.2} +\BOOKMARK [3][]{Outline0.2.2.25}{Event-channel}{Outline0.2} +\BOOKMARK [2][]{Outline0.3}{Status: ACE/TAO on RT\137PREEMPT}{} +\BOOKMARK [3][]{Outline0.3.1.28}{Needed operating system functionalities}{Outline0.3} +\BOOKMARK [2][]{Outline0.4}{Conclusion}{} @@ -2,6 +2,7 @@ %\usepackage{ngerman} \usepackage{times} +\usepackage{graphicx} \usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps} \usepackage{amsmath,amssymb} \usepackage[latin1]{inputenc} @@ -62,6 +63,376 @@ \tableofcontents \end{frame} -\include{paper} +\section{Introduction} +\subsection{Industrial automation} + +\begin{frame} +\frametitle{State-of-the-art} +\begin{block}{Communication} +\begin{itemize} +\item broad variety of industrial fieldbusses +\begin{itemize} +\item CAN +\item Interbus +\item Profibus +\item \dots +\end{itemize} +\item ethernet gains popularity +\begin{itemize} +\item EtherCAT +\item profiNET +\item DeviceNet +\item \dots +\end{itemize} +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{State-of-the-art} +\begin{block}{Controls} +\begin{itemize} +\item PLCs +\begin{itemize} +\item Siemens Simatic, \dots +\item Rockwell PLC-5, \dots +\item \dots +\end{itemize} +\item PC-based controls with real-time operating systems are gaining popularity +\begin{itemize} +\item from the IT world known interfaces (USB, Ethernet, \dots) +\item specialized software for machine control +\end{itemize} +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{PC-based controls and ethernet communications} +allow to use IT middleware solutions in automation +\begin{block}{Advantages of middleware} +\begin{itemize} +\item flexible reusability of software modules +\item ease of maintenance +\item fast development cycles +\item abstraction (operating system, programming language) +\item often repeated complex tasks can be done in middleware +\begin{itemize} +\item connection handling +\item object alocation +\item quality of services +\end{itemize} +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{Contemplated configuration} +\begin{block}{Linux 2.6 with RT\_PREEMPT} +\begin{itemize} +\item successive vanilla integration +\item real-time in userspace +\item available for most recently used architectures +\begin{itemize} +\item x86 and x86\_64 +\item arm +\item mips +\item powerpc +\end{itemize} +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{Contemplated configuration} +\begin{block}{TAO, real-time CORBA distribution} +\begin{itemize} +\item c++ implementation +\item based on ACE (operating system independent) +\item RTCORBA specification implemented +\item open source software +\item commercial support +\item widely used +\end{itemize} +\end{block} +\end{frame} + +\subsection{CORBA} + +\begin{frame} +\frametitle{Common Object Request Broker Architecture} +\begin{block}{abstracts} +\begin{itemize} +\item operating systems +\item programming language +\item transport protocol +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{Functional principle} +\begin{center} +\includegraphics[height=0.8\textheight]{img/orb.jpg} +\end{center} +\end{frame} + +\begin{frame} +\frametitle{Functional principle} +\begin{block}{CORBA Services} +\begin{itemize} +\item Naming Service +\begin{itemize} +\item Task A: bind object ior with name to Naming Service +\item Task B: resolve object ior by name from Naming Service +\end{itemize} +\item Messaging Service +\begin{itemize} +\item Task A: send messages to Messaging Service (Publisher) +\item Task B: subscribe for messages, e.g. filtered by topic, from the Messaging Service +\end{itemize} +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{Real-time CORBA extensions} +\begin{center} +\includegraphics[height=0.7\textheight]{img/rtcorbaext.jpg} +\end{center} +\begin{raggedright} +%\scriptsize OMG Real-time CORBA speccification +\end{raggedright} +\end{frame} + +\subsection{ACE/TAO framework} + +\begin{frame} +\frametitle{Software architecture} +\begin{center} +\includegraphics[height=0.7\textheight]{./img/ace.jpg} +\end{center} +\begin{raggedright} +\scriptsize http://cs.wustl.edu/schmidt/ACE +\end{raggedright} +\end{frame} + +\section{Performance measurements} + +\begin{frame} +\begin{quote} +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. +\end{quote} +\begin{raggedright} +\scriptsize Douglas Adams, Hitchhiker's Guide tot the Galaxy +\end{raggedright} +\end{frame} + +\begin{frame} +\frametitle{Measurement environment} +\begin{center} +\includegraphics[height=0.8\textheight]{img/versuch4.jpg} +\end{center} +\end{frame} + +\subsection{Remote Procedure Calls} + +\begin{frame} +\frametitle{Sequence diagram} +\begin{center} +\includegraphics[width=\textwidth]{img/sequenzV1.jpg} +\end{center} +\end{frame} + +\begin{frame} +\frametitle{Latency histogram} +\begin{center} +\includegraphics[height=0.7\textheight]{img/v1Last.jpg} +\end{center} +\begin{raggedright} +\scriptsize RT\_PREEMPT, with system load +\end{raggedright} +\end{frame} + +\begin{frame} +\frametitle{Latency histogram} +\begin{center} +\includegraphics[height=0.7\textheight]{img/vanilla-ohne-last.jpg} +\end{center} +\begin{raggedright} +\scriptsize vanilla, without system load +\end{raggedright} +\end{frame} + +\begin{frame} +\frametitle{Latency histogram} +\begin{center} +\includegraphics[height=0.7\textheight]{img/vanilla-mit-last.jpg} +\end{center} +\begin{raggedright} +\scriptsize vanilla, with system load +\end{raggedright} +\end{frame} + +\begin{frame} +\frametitle{Latency histogram} +\begin{center} +\includegraphics[height=0.7\textheight]{img/v3Last.jpg} +\end{center} +\begin{raggedright} +\scriptsize RT\_PREEMPT, two prioizations, with system load +\end{raggedright} +\end{frame} + +\begin{frame} +\frametitle{Latency histogram} +\begin{center} +\includegraphics[height=0.7\textheight]{img/v4plot.jpg} +\end{center} +\begin{raggedright} +\scriptsize RT\_PREEMPT, dependency between data package size and latency +\end{raggedright} +\end{frame} + +\subsection{Event-channel} + +\begin{frame} +\frametitle{Sequence diagram} +\begin{center} +\includegraphics[width=\textwidth]{img/sequenzV2.jpg} +\end{center} +\end{frame} + +\begin{frame} +\frametitle{Latency histogram} +\begin{center} +\includegraphics[height=0.7\textheight]{img/v2Last.jpg} +\end{center} +\begin{raggedright} +\scriptsize RT\_PREEMPT, TAO RT Event-Channel, with system load +\end{raggedright} +\end{frame} + +\section{Status: ACE/TAO on RT\_PREEMPT} + +\subsection{Needed operating system functionalities} + +\begin{frame} +\frametitle{End to end real-time guarantee} +\begin{block}{Real-time scheduling} +\begin{itemize} +\item determenistic scheduling latency +\item RTCORBA expects priorization based scheduling +\item interrupts shouldn't destroy deterministic scheduling +\end{itemize} +\end{block} +\pause +\begin{block}{Real-time I/O} +\begin{itemize} +\item hardware device priorization is required +\begin{itemize} +\item IO hardware, used for machine control (measurements) +\item Network device, used for RTCORBA communication +\end{itemize} +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{End to end real-time guarantee} +\begin{block}{real-time networking} +\begin{itemize} +\item measurements were made with IIOP using diffserv priorization in the IP header +\item diffserv has to be supported by all attendees +\begin{itemize} +\item operating systems network stack +\item nic driver +\item switches +\end{itemize} +\item in most cases real-time is lost, if the packages has to pass routers +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{Used RT\_PREEMPT features} +\begin{block}{Scheduling} +\begin{itemize} +\item PI-Mutexes +\item priorization based scheduler (same as in vanilla) +\item interrupt handling in kernel threads +\end{itemize} +\end{block} +\pause +\begin{block}{Real-time IO} +\begin{itemize} +\item priorization of interrupts (kernel threads) +\item problems with interrupt sharing +\end{itemize} +\end{block} +\end{frame} + +\begin{frame} +\frametitle{Used RT\_PREEMPT features} +\begin{block}{Real-time networking} +\begin{itemize} +\item priorization of network interrupts +\item problems with different priorized nics: +\begin{itemize} +\item all ethernet traffic is handled in two common softirqs +\end{itemize} +\item kernel community has already discussed solutions +\end{itemize} +\end{block} +\end{frame} + +\section{Conclusion} + +\begin{frame} +\begin{block}{Promising solution} +\begin{itemize} +\item acceptable measurement results +\item improvements can be made in the networking layer +\end{itemize} +\end{block} +\begin{block}{not only automation industry} +also other application areas, eg. +\begin{itemize} +\item telecommunication +\item stock market +\item \dots +\end{itemize} +need deterministic networking. +\end{block} +\end{frame} + +\begin{frame} +\frametitle{ACE/TAO and RT\_PREEMPT enabled Linux} +\begin{itemize} +\item is already a useful and solid environment +\item further improvements in foreseeable future +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Thank you for your attention} +\begin{block}{Contact} +\vskip3pt +Linutronix GmbH\\ +Manuel Traut\\ +\vskip3pt +Auf dem Berg 3\\ +88690 Uhldingen\\ +Germany\\ +\vskip3pt +eMail manuel.traut@linutronix.de\\ +fon +49 7556 919 891 +\end{block} +\end{frame} + \end{document} |
