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


From 4f259a1216b52bf0341ec30544e068e49cec4895 Mon Sep 17 00:00:00 2001
From: Jan Altenberg <jan@homerjsimpson.(none)>
Date: Sat, 20 Jun 2009 12:10:29 +0200
Subject: RT basics fixes

---
 realtime/rt-basics/handout_rt-basics_de.tex | 22 +++++++++++-----------
 realtime/rt-basics/pres_rt-basics_de.tex    |  2 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

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

diff --git a/realtime/rt-basics/handout_rt-basics_de.tex b/realtime/rt-basics/handout_rt-basics_de.tex
index 8576b7d..8d98ccc 100644
--- a/realtime/rt-basics/handout_rt-basics_de.tex
+++ b/realtime/rt-basics/handout_rt-basics_de.tex
@@ -10,13 +10,13 @@
 
 \subsection*{Grundlagen}
 
-\subsubsection*{Was ist Echteit?}
+\subsubsection*{Was ist Echtzeit?}
 Vor der Betrachtung verschiedener Ansätze, Linux echtzeitfähig zu machen, ist es
-notwendig einige grundlegende Begrifflichkeiten zur erläutern:
+notwendig, einige grundlegende Begrifflichkeiten zur erläutern:
 \begin{itemize}
 \item Echtzeit:
 Zur Definition eines Echtzeitsystems kann man folgende Aussagen Treffen: Auf
-einem Echtzeitsystem hängt die Korrektheit einer Berechnung nicht nur von deren
+einem Echtzeitsystem hängt die Korrektheit einer Berechnung nicht nur von ihrer
 logischen Korrektheit, sondern auch von der Ausführung zum korrekten Zeitpunkt
 ab. Das Nichteinhalten eines bestimmten Zeitrahmens resultiert in einem Fehler.
 \item Latenzzeit: Unter Latenzzeit versteht man den Zeitraum zwischen dem
@@ -47,7 +47,7 @@ Gelöst werden kann dieses Problem durch ''prioriy inheritance'' und ''priority
 \begin{itemize}
 \item Prioritätsvererbung / priority inheritance: Hier wird die Priorität der
 niederprioren Task angehoben, um zu erreichen, daß die blockierte Resource
-freigegeben kann.
+freigegeben werden kann.
 \item Prioritätsgrenzen / priority ceiling: Hier wird für jede Resource eine
 Prioritätsgrenze festgelegt. Jede Task, die die Resource belegt, wird auf die
 Prioritätsgrenze der Resource angehoben.
@@ -94,7 +94,7 @@ RTAI ist ein typischer Vertreter des Dual Kernel Ansatzes. Abbildung
 Das Xenomai Projekt wurde im Jahre 2001 gegründet. Im Gegensatz zu RTAI erlaubt
 Xenomai auch Echtzeit im Userpace (RTAI erlaubt dies nur sehr eingeschränkt).
 Die Besonderheit von Xenomai sind die sogenannten Skins, die es vereinfachen sollen,
-Applikationen von proprietären Echtzeitsystemen nach Xenomai zu portieren.
+Applikationen von anderen Echtzeitsystemen nach Xenomai zu portieren.
 Xenomai Skins bilden die API dieser Systeme ab. Xenomai unterstützt derzeit
 folgende Architekturen: PowerPC32, PowerPC64, x86, x86\_64, Blackfin, ARM und
 ia64). Die zentralen Begriffe im Designkonzept von Xenomai stellen Xenomai
@@ -104,9 +104,9 @@ IPIPE kann bildlich als virtueller Interruptkontroller betrachtet werden.
 Sie organisiert das System in verschiedenen Domains. Interrupts werden von
 IPIPE entgegengenommen und an die einzelnen Domains verteilt.
 Nucleus beeinhaltet die Xenomai Core Funktionalität. Dieser ist zuständig dafür,
-alle notwendigen Resourcen, die Skins benötigen, um die Funktionalität von
-RTOSsen nachzubilden. Der Hardware Abstraction Layer beinhaltet den Plattform
-und CPU abhängigen Code. Alle darüberliegenden Layer (darunter auch Nucleus)
+alle notwendigen Resourcen bereitzustellen, die Skins benötigen, um die Funktionalität
+von RTOSsen nachbilden zu können. Der Hardware Abstraction Layer beinhaltet
+den Plattform und CPU abhängigen Code. Alle darüberliegenden Layer (darunter auch Nucleus)
 bauen darauf auf. HAL ist kombiniert mit dem System Abstraction Layer. Dieser
 soll die darüberliegenden Layer, wie z.B. Nucleus, noch portierbarer machen.
 Abbildung \ref{img:xenomai} zeigt das technische Zusammenspiel der Xenomai
@@ -143,7 +143,7 @@ generisches Interrupthandling für alle Architekturen und mit 2.6.30 nun auch di
 Threaded Interrupt Handler.
 Weiterhin hat sich die Linux Entwicklergemeinde bereits 2006 darauf geeinigt,
 daß Preempt RT in den Linux Kernel integriert wird. Weiterhin bietet der
-Realtime Preempton Patch den großen Vorteil, daß Echtzeitapplikationen als POSIX
+Realtime Preemption Patch den großen Vorteil, daß Echtzeitapplikationen als POSIX
 Realtime Applikationen geschrieben werden. Es wird keine spezielle API
 verwendet. Preempt RT Unterstützt eine Vielzahl von Architekturen (PowerPc, x86,
 x86\_64, MIPS, ARM, ...).
@@ -154,7 +154,7 @@ x86\_64, MIPS, ARM, ...).
 \label{img:preempt_rt}
 \end{figure}
 Wie Abbildung \ref{img:preempt_rt} zeigt, integriert Preempt RT die
-Echtzeitfunktionalität ''natlos'' in den Linux Kernel. Auch die Entwickler
+Echtzeitfunktionalität ''nahtlos'' in den Linux Kernel. Auch die Entwickler
 anderer Projekte haben die Vorzüge von Preempt RT bereits erkannt. Die Roadmap
 für Xenomai 3 sieht Preempt RT Support vor. Dies würde den Einsatz von Xenomai
 Skins auf Preempt RT Kerneln ermgöglichen.
@@ -164,7 +164,7 @@ Skins auf Preempt RT Kerneln ermgöglichen.
 \begin{enumerate}
 \item Was sind die wichtigsten Anforderungen an ein Echtzeitsystem?
 \item Welche beiden Ansätze gibt es, um Linux echtzeitfähig zu machen?
-\item Was sind die bekanntesten Vertreter für Echtzeitlinux und welchen der oben
+\item Was sind die bekanntesten Vertreter für Echtzeitlinux und welche der oben
 beschriebenen Ansätze verfolgen Sie?
 \item Wird für das Schreiben einer Echtzeitapplikation mit Preempt RT eine
 spezielle API benötigt?
diff --git a/realtime/rt-basics/pres_rt-basics_de.tex b/realtime/rt-basics/pres_rt-basics_de.tex
index c60f8a5..128b115 100644
--- a/realtime/rt-basics/pres_rt-basics_de.tex
+++ b/realtime/rt-basics/pres_rt-basics_de.tex
@@ -181,7 +181,7 @@ Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler!
 \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
+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}
-- 
cgit v1.2.3

