60 likes | 89 Views
IPC in BSD UNIX. Pipes a pipe is an IPC mechanism for transmitting data from one process to another within a single machine e.g., between a parent and child processes a pipe is a uni-directional IPC channel with two ends, or sockets Data that is written into one end can be read from the other.
E N D
IPC in BSD UNIX • Pipes • a pipe is an IPC mechanism for transmitting data from one process to another within a single machine • e.g., between a parent and child processes • a pipe is a uni-directional IPC channel with two ends, or sockets • Data that is written into one end can be read from the other
Sockets • a socket is an IPC mechanism for transmitting data from one process to another both within a single machine and between machines • a socket is a bi-directional IPC channel • Domains for sockets - a domain is the space from which an address is drawn for a socket • UNIX domain(AF_UNIX) • uses the UNIX file system name space • used for local IPC • Internet domain(AF_INET) • uses Internet address plus a port number • used for local and remote IPC
Stream Sockets • connection-oriented - communication takes place after a connection between two sockets is made • reliable, error-free, no message boundaries • Datagram Sockets • no connections • each message is addressed individually • message boundaries exist • delivery not guaranteed • error checking not provided
More on Sockets • More details on UNIX IPC can be found in Chapter 5 of the Bloomer’s book, Power Programming with RPC. • Tutorials and sample programs can be found in the /afs/p/class/cse/cs600/ipc directory