summaryrefslogtreecommitdiff
path: root/security/advanced/frm_process_thread.tex
diff options
context:
space:
mode:
Diffstat (limited to 'security/advanced/frm_process_thread.tex')
-rw-r--r--security/advanced/frm_process_thread.tex10
1 files changed, 10 insertions, 0 deletions
diff --git a/security/advanced/frm_process_thread.tex b/security/advanced/frm_process_thread.tex
index 1c2123a..67954e0 100644
--- a/security/advanced/frm_process_thread.tex
+++ b/security/advanced/frm_process_thread.tex
@@ -198,30 +198,40 @@ char *envp[] = {
\begin{itemize}
\item Requirements
\begin{itemize}
+ \begin{scriptsize}
\item communicate between Processes (e.g. Child to Parent)
\item private communication channel
+ \end{scriptsize}
\end{itemize}
\item Solution Statement
\begin{enumerate}
+ \begin{scriptsize}
\item open an anonymous pipe
\item duplicate process with fork()
\item Parent and Child choose a communication role
\begin{itemize}
+ \begin{scriptsize}
\item Sender: close the read-FD and send data to write-FD
\item Listener: close the write-FD and listen on read-FD
+ \end{scriptsize}
\end{itemize}
+ \end{scriptsize}
\end{enumerate}
\item Note:
\begin{itemize}
+ \begin{scriptsize}
\item pipe-syscall opens two file-descriptors \\
(one for read from, and one for write to the pipe)
\item after fork-syscall, both processes has access to pipe file-descriptors
\item pipe communication is unidirectional
+ \end{scriptsize}
\end{itemize}
\item Result
\begin{itemize}
+ \begin{scriptsize}
\item private communication between Parent and Child
\item decoupled, buffered communication through pipe
+ \end{scriptsize}
\end{itemize}
\item other IPC mechanisms (e.g. POSIX IPC) are also possible
\end{itemize}