diff options
| author | John Ogness <john.ogness@linutronix.de> | 2017-12-19 10:35:40 +0100 |
|---|---|---|
| committer | John Ogness <john.ogness@linutronix.de> | 2017-12-19 10:35:40 +0100 |
| commit | aa6b32c21b9218d744e16fc228b61bcac9b3dcb9 (patch) | |
| tree | e56fcc065180db9ca231adc53571341e147f31da | |
| parent | 4e54e9c92f8081f4bcd4a77249579e398ed358c1 (diff) | |
rt basics: add english version
Signed-off-by: John Ogness <john.ogness@linutronix.de>
| -rw-r--r-- | realtime/rt-basics/Makefile | 1 | ||||
| -rw-r--r-- | realtime/rt-basics/pres_rt-basics_en.tex | 203 |
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} |
