summaryrefslogtreecommitdiff
path: root/praes.tex
diff options
context:
space:
mode:
Diffstat (limited to 'praes.tex')
-rw-r--r--praes.tex373
1 files changed, 372 insertions, 1 deletions
diff --git a/praes.tex b/praes.tex
index 51ba689..e019f65 100644
--- a/praes.tex
+++ b/praes.tex
@@ -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}