summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorguest <guest@da047780-0f9f-48de-953f-cd541ee48bbd>2007-10-31 15:13:11 +0000
committerguest <guest@da047780-0f9f-48de-953f-cd541ee48bbd>2007-10-31 15:13:11 +0000
commit150e7a0af5f0f4e7eb0368c47059f56cfe50e708 (patch)
treeb90d84625d760306e7dafd01d89553c4c6536a4d
parentff487335fb0b1428d226b5f2475f84f8ef1063d9 (diff)
praes pre1
git-svn-id: svn+ssh://mecka.net/home/svn/rtcorba-paper@16 da047780-0f9f-48de-953f-cd541ee48bbd
-rwxr-xr-xMakefile7
-rwxr-xr-ximg/sequenzV2.jpgbin49409 -> 83473 bytes
-rwxr-xr-ximg/v1Last.jpgbin19429 -> 14346 bytes
-rwxr-xr-ximg/v2Last.jpgbin19775 -> 14007 bytes
-rwxr-xr-ximg/v3Last.jpgbin27762 -> 19075 bytes
-rwxr-xr-ximg/v4plot.jpgbin15813 -> 37808 bytes
-rw-r--r--paper.pdfbin338024 -> 649452 bytes
-rw-r--r--praes.out10
-rw-r--r--praes.tex373
9 files changed, 388 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 3ce5722..5886bb5 100755
--- a/Makefile
+++ b/Makefile
@@ -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
index 4d1bc2b..2b6e0a0 100755
--- a/img/sequenzV2.jpg
+++ b/img/sequenzV2.jpg
Binary files differ
diff --git a/img/v1Last.jpg b/img/v1Last.jpg
index 3a36c63..82ad725 100755
--- a/img/v1Last.jpg
+++ b/img/v1Last.jpg
Binary files differ
diff --git a/img/v2Last.jpg b/img/v2Last.jpg
index 23757f7..ed0ec4e 100755
--- a/img/v2Last.jpg
+++ b/img/v2Last.jpg
Binary files differ
diff --git a/img/v3Last.jpg b/img/v3Last.jpg
index b92a95b..3f6298c 100755
--- a/img/v3Last.jpg
+++ b/img/v3Last.jpg
Binary files differ
diff --git a/img/v4plot.jpg b/img/v4plot.jpg
index ddbabda..7db4fed 100755
--- a/img/v4plot.jpg
+++ b/img/v4plot.jpg
Binary files differ
diff --git a/paper.pdf b/paper.pdf
index 1b5edd4..e5d520e 100644
--- a/paper.pdf
+++ b/paper.pdf
Binary files differ
diff --git a/praes.out b/praes.out
index e69de29..8a5fb48 100644
--- a/praes.out
+++ b/praes.out
@@ -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}{}
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}