summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ogness <john.ogness@linutronix.de>2017-12-19 10:35:40 +0100
committerJohn Ogness <john.ogness@linutronix.de>2017-12-19 10:35:40 +0100
commitaa6b32c21b9218d744e16fc228b61bcac9b3dcb9 (patch)
treee56fcc065180db9ca231adc53571341e147f31da
parent4e54e9c92f8081f4bcd4a77249579e398ed358c1 (diff)
rt basics: add english version
Signed-off-by: John Ogness <john.ogness@linutronix.de>
-rw-r--r--realtime/rt-basics/Makefile1
-rw-r--r--realtime/rt-basics/pres_rt-basics_en.tex203
2 files changed, 204 insertions, 0 deletions
diff --git a/realtime/rt-basics/Makefile b/realtime/rt-basics/Makefile
index 8c08038..c92d852 100644
--- a/realtime/rt-basics/Makefile
+++ b/realtime/rt-basics/Makefile
@@ -1,2 +1,3 @@
obj-$(CONFIG_REALTIME_BASICS) += pres_rt-basics_de.pdf
+obj-$(CONFIG_REALTIME_BASICS) += pres_rt-basics_en.pdf
obj-handout-$(CONFIG_REALTIME_BASICS) += handout_rt-basics_de.pdf
diff --git a/realtime/rt-basics/pres_rt-basics_en.tex b/realtime/rt-basics/pres_rt-basics_en.tex
new file mode 100644
index 0000000..719dafc
--- /dev/null
+++ b/realtime/rt-basics/pres_rt-basics_en.tex
@@ -0,0 +1,203 @@
+\input{configpres}
+
+\title{Realtime Linux}
+\maketitle
+
+\subtitle{Echtzeit}
+
+\begin{frame}
+\frametitle{What is realtime?}
+\begin{itemize}
+\item correctness also means executing at the correct time
+\item failing to meet timing restrictions leads to an error
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Realtime ''concrete''}
+\begin{overprint}
+\onslide<1>
+\begin{alertblock}{Remember...}
+Failing to meet timing restrictions leads to an error!
+\end{alertblock}
+\onslide<2>
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/nuclear.png}
+\end{figure}
+\end{overprint}
+\end{frame}
+
+\begin{frame}
+\frametitle{Fields of Application}
+\begin{itemize}
+\item Controlling / Automation
+\item Multimedia
+\item Air and Space Technology
+\item Financial Services
+\item ...
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Requirements}
+\begin{itemize}
+\item Deterministic Time Behavior
+\item Interruptible
+\item Priority Inheritance / Priority Ceiling
+\end{itemize}
+\end{frame}
+
+\subsubsection{Priority Inversion}
+\begin{frame}
+\frametitle{Priority Inversion}
+\begin{figure}[h]
+\centering
+\includegraphics[width=0.8\textwidth]{images/prio_inv.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{Linux and Realtime}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/gpos_vs_rt.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{Approaches}
+\begin{itemize}
+\item Dual Kernel
+\item In Kernel / Single Kernel
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Dual Kernel}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/dual_kernel.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{Single Kernel}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/single_kernel.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{RTAI}
+\begin{itemize}
+\item Prof. Paolo Mantegazza, University of Mailand
+\item Dual kernel approach
+\item Realtime in kernelspace
+\item Realtime tasks in userspace possible with limitations
+\item Main design goal: smallest posible latency times
+\item Supported platforms: x86, x86\_64, several ARM platforms
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{RTAI}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/rtai.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{Xenomai}
+\begin{itemize}
+\item Founded in 2001
+\item Realtime in userpace
+\item Skins emulate API's for varios RTOS systems
+\item Dual kernel approach
+\item Supported platforms: x86, x86\_64, PowerPC, ARM, ia64
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Xenomai}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/xenomai.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{Xenomai / IPIPE}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/ipipe.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{Marry in haste, repent at leisure...}
+\begin{overprint}
+\onslide<1>
+\begin{figure}[h]
+\centering
+\includegraphics[width=0.8\textwidth]{images/mar01.png}
+\end{figure}
+\onslide<2>
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/mar02.png}
+\end{figure}
+\onslide<3>
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/mar03.png}
+\end{figure}
+\end{overprint}
+\end{frame}
+
+\begin{frame}
+\frametitle{Preempt RT}
+\begin{itemize}
+\item Thomas Gleixner, Ingo Molnar
+\item In Kernel Approach
+\item Large development community
+\item Many features already integrated in ''Mainline'' Linux
+\item POSIX Realtime
+\item Highly accepted, agreement in 2006 for complete Linux integration
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Preempt RT and Mainline}
+\textit{''Controlling a laser with Linux is crazy, but everyone in this room is
+crazy in his own way. So if you want to use Linux to control an industrial
+welding laser, I have no problem with your using Preempt RT''} - Linus Torvalds
+auf dem Kernel Summit 2006
+\end{frame}
+
+\begin{frame}
+\frametitle{How does Preempt RT make Linux realtime capable?}
+\begin{overprint}
+\onslide<1>
+\begin{alertblock}{Remember...}
+Interruptibility is a main requirement of a realtime system.
+\end{alertblock}
+\onslide<2>
+\begin{itemize}
+\item Locking primitives: Spinlocks are replaced with RT mutexes that can sleep. Raw spinlocks are introduced to provide the classic spinlock functionality.
+\item Interrupt handlers run by default each as its own kernel thread.
+\end{itemize}
+\end{overprint}
+\end{frame}
+
+\begin{frame}
+\frametitle{Preempt RT}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/preempt_rt.png}
+\end{figure}
+\end{frame}
+
+\input{tailpres}