thesis: Complenet 5.1
This commit is contained in:
@@ -3,4 +3,78 @@
|
|||||||
|
|
||||||
Lorem Ipsum.
|
Lorem Ipsum.
|
||||||
|
|
||||||
Perhaps do some study/``research'' on performance (CPU/memory/\dots).
|
|
||||||
|
\section{Usefulness for the Operating Systems Course}\label{sec:usefulness}
|
||||||
|
|
||||||
|
Up until recently the Operating Systems Course (mentioned in Section~\ref{sec:motivation-and-goal}) was split into three exercise blocks:
|
||||||
|
Files, Shared Memory, Semaphores; Related Processes and Inter-Process Communication via Unnamed Pipes; and Sockets.
|
||||||
|
Table~\ref{tab:functions} lists all functions presented in the course and their implementation status in \texttt{intercept.so}.
|
||||||
|
As one may see, simple file stream functions are not currently implemented in \texttt{intercept.so}.
|
||||||
|
This is because of time restrictions on this work and the fact, that simple file operations may be tested easily in the conventional way of checking the resulting output.
|
||||||
|
All other functions have at least interception and mocking (returning, failing) implemented.
|
||||||
|
For some functions the modification of function arguments has been implemented.
|
||||||
|
|
||||||
|
\begin{table}[h!]
|
||||||
|
\centering
|
||||||
|
\begin{threeparttable}
|
||||||
|
\begin{tabular}{ c|l|c }
|
||||||
|
Ex. Block & Functions & Implementation \\
|
||||||
|
\hline
|
||||||
|
- & malloc, calloc, realloc, reallocarray, free & \texttt{icmrf} \\
|
||||||
|
- & getopt & \texttt{ic-rf} \\
|
||||||
|
- & sigaction & \texttt{ic-{}-f} \\
|
||||||
|
- & mmap & \texttt{ic-rf} \\
|
||||||
|
- & munmap & \texttt{icmrf} \\
|
||||||
|
- & close & \texttt{icmrf} \\
|
||||||
|
\hline
|
||||||
|
1 & open, fopen, fdopen & \texttt{-{}-{}-{}-{}-} \\
|
||||||
|
1 & read, pread, write, pwrite & \texttt{ic-rf} \\
|
||||||
|
1 & fread, fgets, fgetc, fwrite, fputs, fputc, fprintf, fseek & \texttt{-{}-{}-{}-{}-} \\
|
||||||
|
1 & ferror, feof, clearerr, fileno, fflush, fclose & \texttt{-{}-{}-{}-{}-} \\
|
||||||
|
1 & getline, getdelim & \texttt{ic-rf} \\
|
||||||
|
1 & shm\_open, ftruncate, shm\_unlink & \texttt{icmrf} \\
|
||||||
|
1 & sem\_open, shm\_close, sem\_unlink & \texttt{icmrf} \\
|
||||||
|
1 & sem\_wait, sem\_post & \texttt{icmrf} \\
|
||||||
|
1 & sem\_trywait, sem\_timedwait & \texttt{icmrf} \\
|
||||||
|
1 & sem\_getvalue, sem\_destroy & \texttt{icmrf} \\
|
||||||
|
\hline
|
||||||
|
2 & fork, wait, waitpid & \texttt{icmrf} \\
|
||||||
|
2 & exec*, fexecve & \texttt{ic-rf} \\
|
||||||
|
2 & exit & \texttt{icm-{}-} \\
|
||||||
|
2 & pipe & \texttt{ic-rf} \\
|
||||||
|
2 & dup, dup2, dup3 & \texttt{icmrf} \\
|
||||||
|
\hline
|
||||||
|
3 & socket, bind, accept, connect & \texttt{ic-rf} \\
|
||||||
|
3 & listen & \texttt{icmrf} \\
|
||||||
|
3 & getaddrinfo & \texttt{ic-rf} \\
|
||||||
|
3 & freeaddrinfo & \texttt{icmrf} \\
|
||||||
|
3 & send, recv & \texttt{ic-rf} \\
|
||||||
|
3 & sendto, sendmsg, recvfrom, recvmsg & \texttt{ic-rf} \\
|
||||||
|
3 & setsockopt & \texttt{-{}-{}-{}-{}-} \\
|
||||||
|
\end{tabular}
|
||||||
|
\begin{tablenotes}
|
||||||
|
\item[\texttt{i}] Function may be intercepted.
|
||||||
|
\item[\texttt{c}] Complex function arguments or return value(s) are recorded fully.
|
||||||
|
\item[\texttt{m}] Function arguments may be modified.
|
||||||
|
\item[\texttt{r}] Function may be mocked using a specified return value.
|
||||||
|
\item[\texttt{f}] Function may be mocked using a specified error value.
|
||||||
|
\end{tablenotes}
|
||||||
|
\caption{List of relevant functions and their implementation status.}
|
||||||
|
\label{tab:functions}
|
||||||
|
\end{threeparttable}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Performance}\label{sec:performance}
|
||||||
|
|
||||||
|
Lorem Ipsum.
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Performance when Intercepting}\label{subsec:performance-intercepting}
|
||||||
|
|
||||||
|
Lorem Ipsum.
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Performance when Manipulating}\label{subsec:performance-manipulating}
|
||||||
|
|
||||||
|
Lorem Ipsum.
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
\usepackage{textcomp}
|
\usepackage{textcomp}
|
||||||
\usepackage{tikz}
|
\usepackage{tikz}
|
||||||
\usetikzlibrary{shapes}
|
\usetikzlibrary{shapes}
|
||||||
|
\usepackage[flushleft]{threeparttable}
|
||||||
|
|
||||||
\newcommand{\newthreadShift}[4][gray!30]{
|
\newcommand{\newthreadShift}[4][gray!30]{
|
||||||
\newinst[#4]{#2}{#3}
|
\newinst[#4]{#2}{#3}
|
||||||
|
|||||||
Reference in New Issue
Block a user