diff options
| author | Manuel Traut <manut@linutronix.de> | 2011-01-28 13:17:04 +0100 |
|---|---|---|
| committer | Manuel Traut <manut@linutronix.de> | 2011-01-28 13:17:04 +0100 |
| commit | 2354b12678f07579815356ec10eef193a64bb2a6 (patch) | |
| tree | 9cefef7a3380c85c68c4bca741487eb3aad02d40 /linux-basics | |
| parent | 7e5883bbd6e699d1fcee0814c5a172d6348bd63c (diff) | |
| parent | 5bc3f53265144faf43e16031483d92f581766a2b (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.tex | 74 |
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, ¶m); +[...] +\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} |
