Module 5: Interacting with Processes Flashcards
redirection
modifying the location to which an input is taken from or an output is sent for a given command; redirection operators are commutative, meaning they can appear in swapped orders and produce the same result
dup2 system call
implement redirection by passing in two file descriptors (oldfd and newfd) and causing newfd to point to the file or data structure that was pointed to by oldfd
standard input
the location where programs look for their inputs; for programs initiated in command-line, this defaults to your terminal
standard in can be redirected and child processes inherit standard in from their parent process; the standard in file descriptor is 0
standard output
the location where programs stream their outputs; for programs initiated in CL, this defaults to your terminal
standard out can be redirected and child processes inherit standard out from their parent process
the standard in file descriptor is 1
pipes
a form of interprocess communication, providing a way to stream data from one process to the other; pipes have a “write end” to which data gets written by one process to be sent to another process, and a “read end” from which the receiving process reads the incoming data
SIGPIPE
a signal generated when a process tries to write to a pipe whose read end has been closed
process pipelineing
running multiple processes at the same time where the output of one of the process is used as input to another process
half-duplex
data flows in one direction; pipes between two processes are in the half duplex communication paradigm as data flows in one direction between the two processes
FIFOs
these are similar to pipes; while pipes are temporary and unnamed connections, FIFOs are files with names that allow two processes to communicate by writing to the file
process group
collection of processes that are established in a way such that you can send or block a signal to the entire group at the same time; the processes in a pipeline are in a single process group
PGID
process group ID
SSH
a secure network protocol that allows a remote user to be authenticated to login to a machine
session id
one instance of your login to your shell is a session; and all processes launched in this session have the same session ID
foreground process
there is always exactly one foreground process; this process has access to interactive shell output (in the absence of explicit redirection) and input, and receives all the terminal generated signals; the shell must wait on this process before executing another process
background processes
there can be any number of background processes; these processes allow the user to execute other programs and interact with the shell without waiting