summaryrefslogtreecommitdiff
path: root/linux-basics
diff options
context:
space:
mode:
authorManuel Traut <manut@linutronix.de>2011-01-28 13:17:04 +0100
committerManuel Traut <manut@linutronix.de>2011-01-28 13:17:04 +0100
commit2354b12678f07579815356ec10eef193a64bb2a6 (patch)
tree9cefef7a3380c85c68c4bca741487eb3aad02d40 /linux-basics
parent7e5883bbd6e699d1fcee0814c5a172d6348bd63c (diff)
parent5bc3f53265144faf43e16031483d92f581766a2b (diff)
Merge branch 'jan'
Conflicts: application-devel/embedded-devel/pres_embedded-devel_de.tex flash-memory/flash-filesystems/pres_flashfilesystems_en.tex linux-basics/linux-processes/pres_linux-processes_en.tex Signed-off-by: Manuel Traut <manut@linutronix.de>
Diffstat (limited to 'linux-basics')
-rw-r--r--linux-basics/linux-processes/pres_linux-processes_en.tex74
1 files changed, 73 insertions, 1 deletions
diff --git a/linux-basics/linux-processes/pres_linux-processes_en.tex b/linux-basics/linux-processes/pres_linux-processes_en.tex
index f7774c3..71c1344 100644
--- a/linux-basics/linux-processes/pres_linux-processes_en.tex
+++ b/linux-basics/linux-processes/pres_linux-processes_en.tex
@@ -3,7 +3,7 @@
\input{configpres}
-\title{Linux process mangagement / Scheduling / Daemons}
+\title{Linux process management / Scheduling / Daemons}
\maketitle
% stop displaying 'fueller.png' on the following slides
@@ -11,6 +11,23 @@
\subsection{Process Management}
\begin{frame}
+\frametitle{Binary formats}
+A program file includes meta information which describes the format
+of the executable. Linux uses the ELF format (Executable Linking Format)
+\end{frame}
+
+\begin{frame}
+\frametitle{Process Memory Layout}
+\begin{itemize}
+\item text segment
+\item initialized data segment
+\item uninitialized data segment
+\item stack
+\item heap
+\end{itemize}
+\end{frame}
+
+\begin{frame}
\frametitle{Process creation}
From the operatings system's point of view, there are basically two steps,
which are performed when starting a process.
@@ -156,6 +173,30 @@ Scheduling policies:
\end{verbatim}
\end{frame}
+\begin{frame}[fragile]
+\frametitle{Setting scheduling class and priority}
+\begin{lstlisting}
+#include <sched.h>
+
+struct sched_param param;
+int ret;
+
+params.prio = 80;
+ret = sched_setscheduler(0, SCHED_FIFO, &param);
+[...]
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Resource limits}
+\begin{lstlisting}
+#include <sys/resource.h>
+
+int setrlimit(int resource,
+ const struct rlimit *rlim);
+\end{lstlisting}
+\end{frame}
+
\subsection{Daemons}
\begin{frame}
\frametitle{Daemons}
@@ -177,6 +218,37 @@ working directory and so on...)
\end{itemize}
\end{frame}
+\subsection{Multicore specific scheduling}
+\begin{frame}[fragile]
+\frametitle{Scheduling on Multicore Systems}
+\begin{itemize}
+\item CPU affinity
+\item Kernelparameters:
+\begin{itemize}
+\item max\_cpus=
+\item isolcpus=
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{CPU affinity}
+\begin{lstlisting}
+#define _GNU_SOURCE
+#include <sched.h>
+
+cpu_set_t set;
+
+CPU_ZERO(&set);
+CPU_SET(0, &set);
+CPU_SET(1, &set);
+
+[...]
+
+sched_setaffinity(pid, CPU_SETSIZE, &set);
+\end{lstlisting}
+\end{frame}
+
\subsection{sources}
\begin{frame}
\begin{thebibliography}{1}