From 088976ed259b779438aad64b0997b6bdde5169d4 Mon Sep 17 00:00:00 2001
From: Jan Altenberg <jan@homerjsimpson.(none)>
Date: Sat, 20 Jun 2009 00:34:08 +0200
Subject: Commit missing RT basics changes

---
 realtime/rt-basics/pres_rt-basics_de.tex | 210 +++++++++++++++++++++++++++++--
 1 file changed, 200 insertions(+), 10 deletions(-)

(limited to 'realtime/rt-basics/pres_rt-basics_de.tex')

diff --git a/realtime/rt-basics/pres_rt-basics_de.tex b/realtime/rt-basics/pres_rt-basics_de.tex
index 07db328..c60f8a5 100644
--- a/realtime/rt-basics/pres_rt-basics_de.tex
+++ b/realtime/rt-basics/pres_rt-basics_de.tex
@@ -1,24 +1,214 @@
-\documentclass{article}
+\documentclass{beamer}
+\usetheme{linutronix}
 \usepackage{german}
 \usepackage[utf8]{inputenc}
+\usepackage{pgf}
+\usepackage{graphicx}
+\usepackage{lxextras}
+
+\title{Block \lq Realtime Linux\rq}
+\institute{Linutronix GmbH}
 
 \begin{document}
 
-\section*{Block \lq Was ist Linux?\rq}
+\maketitle
+
+
+% ----- Slide ------------------
+\begin{frame}
+\frametitle{Was ist Echtzeit?}
+\begin{itemize}
+\item Korrektheit bedeutet auch Ausführung zum korrekten Zeitpunkt
+\item Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Echtzeit ''anschaulich''}
+\begin{overprint}
+\onslide<1>
+\begin{alertblock}{Wir erinnern uns}
+Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler!
+\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{Anwendungsbereiche}
+\begin{itemize}
+\item Steuerungs- / Automatisierungstechnik
+\item Multimediasysteme
+\item Luft- und Raumfahrttechnik
+\item Finanzdienstleistung
+\item ...
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Anforderungen}
+\begin{itemize}
+\item Deterministisches Zeitverhalten
+\item Unterbrechbarkeit
+\item Priority Inheritance / Priority Ceiling
+\end{itemize}
+\end{frame}
+
+\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 und Echtzeit}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/gpos_vs_rt.png}
+\end{figure}
+\end{frame}
 
-\subsection*{Lernziele}
+\begin{frame}
+\frametitle{Ansätze}
 \begin{itemize}
-\item Lernziel 1
-\item Lernziel 2
-\item Lernziel 3
+\item Dual-Kernel
+\item In-Kernel / Single Kernel
 \end{itemize}
+\end{frame}
 
-\subsection*{Unterrichts-Ablauf}
+\begin{frame}
+\frametitle{Dual-Kernel}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/dual_kernel.png}
+\end{figure}
+\end{frame}
 
-Hinweise zur Präsentation, Zeitplanung, etc.
+\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, Universität Mailand
+\item Dual-Kernel Ansatz
+\item Echtzeit im Kernelspace
+\item Userspace Echtzeittasks nur eingeschränkt möglich
+\item Oberstes Designziel: Möglichst niedrige Latenzzeiten
+\item Unterstützte Plattformen: x86, x86\_64, einige ARM Plattformen
+\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 Gegründet 2001
+\item Echtzeit im Userpace
+\item Skins bilden API verschiedenster RTOSse nach
+\item Dual-Kernel Ansatz
+\item Unterstützte Plattformen: 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{Drum prüfe, wer sich ewig bindet...}
+\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 Ansatz
+\item Große Entwicklergemeinde
+\item Viele Funktionen bereits nach ''Mainline'' Linux übernommen
+\item POSIX Realtime
+\item Hohe Akzeptanz, vollständige Integration in Linux 2006 beschlossen
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Preempt RT und 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 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{Wie macht Preempt RT Linux echtzeitfähig?}
+\begin{overprint}
+\onslide<1>
+\begin{alertblock}{Wir erinnern uns...}
+Unterbrechbarkeit ist eine zentrale Anforderung an ein Echtzeitsystem
+\end{alertblock}
+\onslide<2>
+\begin{itemize}
+\item Locking Primitiven: Spinlocks werden durch RT Mutexe ersetzt, die schlafen
+können. Raw Spinlocks ersetzen die ursprüngliche Spinlock
+\item Interrupt Handler laufen per default in einem Kernelthread
+\end{itemize}
+\end{overprint}
+\end{frame}
 
-\subsection*{Übungen bei vorhandener Hardware}
+\begin{frame}
+\frametitle{Preempt RT}
+\begin{figure}[h]
+\centering
+\includegraphics[height=0.5\textwidth]{images/preempt_rt.png}
+\end{figure}
+\end{frame}
 
-Hinweise zu Übungen, Zeitlimit dazu.
 
 \end{document}
-- 
cgit v1.2.3

