Skip to main content

IPC Mechanisms

Windows supports a variety of IPC mechanisms, including the following:

  • The Clipboard acts as a central location for sharing data among applications. When a user performs a cut or copy operation in an application, the selected data is placed on the clipboard, where any other application can then retrieve it. The applications can be on the same computer or on different computers on a network.
  • Dynamic Data Exchange (DDE) is a protocol that allows applications to exchange data in a variety of formats. Applications can use DDE for one-off data exchanges or for ongoing exchanges in which they update one another as new data becomes available. DDE can be thought of as a more sophisticated version of the clipboard.
  • Object Linking and Embedding (OLE) is used to manage compound documents, ie: documents made up of data from different applications. OLE makes it easy for applications to call on other applications for data editing, eg: a word processor that uses OLE could embed a graph from a spreadsheet.
  • File mapping allows a process to treat the contents of a file as if they were a block of memory in the process's address space. Simple pointer operations are used to examine and modify the contents of the file. When two or more processes access the same file mapping, each receives a pointer to memory in its own address space that it can use to read or modify the contents of the file.
  • Anonymous pipes allow related processes to transfer information to each other. They are often used for redirecting the standard input or output of a child process so that it can exchange data with its parent process. Data can be exchanged in both direction (duplex operation) by creating two anonymous pipes.
  • Named pipes are used to transfer data between unrelated processes or processes on different computers. After both the server and client have connected to the pipe, they can exchange data by performing read and write operations on the pipe.
  • Remote Procedure Call (RPC) allows applications to call functions, making IPC as easy as calling a function. RPC operates between processes on a single computer or on different computers on a network. RPC can be used to facilitate a client-server relationship between different parts of the operating system.
  • Windows Sockets is a protocol-independent interface which makes use of the communication capabilities of the underlying protocols. An application that uses Windows Sockets can communicate with other socket implementations on other types of systems, but not all implementation support all available options.

Next: Interrupts and Error Handling