diff --git a/thesis/src/05.evaluation.tex b/thesis/src/05.evaluation.tex index bfae953..3f86b75 100644 --- a/thesis/src/05.evaluation.tex +++ b/thesis/src/05.evaluation.tex @@ -3,4 +3,78 @@ 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. diff --git a/thesis/thesis.tex b/thesis/thesis.tex index c7df498..dc06fbe 100644 --- a/thesis/thesis.tex +++ b/thesis/thesis.tex @@ -44,6 +44,7 @@ \usepackage{textcomp} \usepackage{tikz} \usetikzlibrary{shapes} +\usepackage[flushleft]{threeparttable} \newcommand{\newthreadShift}[4][gray!30]{ \newinst[#4]{#2}{#3}