Outline for 1/28/98

  • Last time: Scheduling policies - answering which process to run now and, in multi-computer case, where.

  • Admin: (reminder) HW2 due Friday

  • Objective: Process communication rather than synchronization (Message-Passing). How do processes communicate if they don't share any of their memory?

    Interprocess Communication - Messages

  • Assume no explicit sharing of data elements in the address spaces of processes wishing to cooperate/communicate.

  • Essence of message-passing is copying
    (although implementations may avoid actual copies whenever possible).

  • Problem-solving with messages - has a feel of more active involvement by participants.

    Issues

  • System calls for sending and receiving messages with the OS(s) acting as courier.

  • Variations on exact semantics of primitives and in the definition of what comprises a message.

  • Naming - direct (to/from pids), indirect (to distinct objects - e.g., mailboxes, ports, sockets)

  • How do unrelated processes "find" each other?

  • Buffering - capacity and blocking semantics.

  • Guarantees - in-order delivery? no lost messages?

    Remote Procedure Call - RPC

  • Looks like a nice familiar procedure call, but...

    End-to-End Argument

  • Application-level correctness requires checking at the endpoints to ensure that the message exchange accomplished its purpose

  • Application semantics involved

  • Notification of successful delivery (UPS tracking) is not as good as a direct response (thank you note) from the other end.

  • Reliability guarantees in the message-passing subsystem provide performance benefits (short-circuiting corrective measures).

  • Re-transmitting packet may save re-tranferring whole file.

    Tools of the Trade

  • At-most-once behavior

  • Both ends can maintain state (e.g., counters) so a re-request (due to lost response msg) can be distinguished from a new request and the operation not repeated.

  • Happened-before-relation

  • Synchronized logical clocks (when no global clock)