What are the two fundamental models of IPC?
Reasons for cooperating processes
Direct vs. indirect messages
Messages are queued using different capacities, enumerate them
Why is shared memory often more difficult to use than message passing?
Shared memory requires synchronization to avoid race conditions and to maintain consistency.
What is a mailbox and how are they uniquely identified in Linux?
Mailbox: Indirect messaging approach; sender sends a message to a mailbox instead of directly to the receiver.
In Linux: file name (POSIX)
Why timeouts for IPC operations
prevent malicious or buggy clients from taking up resources indefinitely
Where can the buffer for asynchronous send operation be stored? (advantages & disadvantages)
In a synchronous system, it might be a good idea to have atomic send-and-receive operation. Give an example
to protect from malicious clients, server needs a timeout for 4. An atomic send-and-receive would however guarantee 4. and 5., so there would be no need for timeouts
How to emulate asynchronous IPC with synchronous calls?
How to emulate synchronous IPC with asynchronous calls?
start a new thread per request which blocks until a reply is there
Can programmers expect sequential memory consistency for their multi-threaded programs?
No. Both the compiler and the CPU may reorder load and store operations to improve performance. Consequently, synchronization is usually necessary when accessing the same memory location concurrently.