summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2019-10-22 19:24:50 -0600
committermo khan <mo.khan@gmail.com>2019-10-22 19:24:50 -0600
commitdbe02b8de38c17fef21dd7d8dc0e78854e2b361c (patch)
treeae27f224d0b6e2e6f98880957be9a62f37f4a6d7
parenteeaa8439c0e5c193c193c6c8af97ec09303e597c (diff)
Describe IPC
-rw-r--r--EXAM.md21
1 files changed, 21 insertions, 0 deletions
diff --git a/EXAM.md b/EXAM.md
index 9d44b4b..210765e 100644
--- a/EXAM.md
+++ b/EXAM.md
@@ -103,3 +103,24 @@ level of efficiency is necessary for building the Kernel that most software
programs depend on. The system call interface is exposed through man pages and
header files. libc is the standard interface for making system calls into the
kernel.
+
+# Define inter-process communication (IPC)
+
+> IPC refers specifically to the mechanisms an operating system provides to
+> allow the processes to manage shared data. - https://en.wikipedia.org/wiki/Inter-process_communication
+
+Operating systems provice IPC mechanisms to allow processes to communicate state
+with one another. This can be for many different reasons including taking a lock
+on a resource, streaming data from one process to another or synchronizing
+changes from one process to another.
+
+Some examples of IPC mechanisms are:
+
+* file: A file can be used as a lock to ensure that only one process performs
+ a restricted action at a time. `man flock`
+* signal: using the `kill` program one program can send a signal to another
+ program for various reasons such as reloading configuration or performing a
+ graceful shutdown.
+* socket: A TCP/UDP can be used for streaming data across a network.
+* UNIX domain socket: Can be used to stream data from one process to another on a host.
+* Pipes: A program can write to stdout which can be piped into stdin of another process.