The first volume of Unix Network Programming, Networking Sockets and XTI covers just about everything you need to know to get your applications to talk to other computers on a network. In this second volume, W. Richard Stevens discusses what you need to know to get your applications to talk to other applications running on your computer. There's a big difference, and Stevens covers it well. Stevens introduces the reader to the internal structures of Posix interprocess communication (IPC) and System V (SysV) IPC; pipes and first in, first outs (FIFOs); message queues; how to lock and unlock files and records; semaphores; shared memory; and remote procedure calls (RPCs). He explains the difference between the Posix and SysV implementations of semaphores, message queues, and shared memory. There are also plenty of notes and examples for the reader.This book is invaluable for programmers because it explains all of those little "gotchas" that always seem to pop up. In addition, the explanations of the differences between Posix IPC and SysV IPC really help readers decide which version they'd like to use for their applications. --Doug Beaver
The real power of UNIX or any application for that matter is in interprocess communication. I found early on that accomplishing any large project would require the cooperation of interprocess communication. Now I find that simple administration skills also require a knowledge of this interposes communication.
My first foray into the field was to use semaphores to flag processes to run at the proper time. Later I needed to use pipes for a front-end in communication to SNA. Again, I found IPCs could help inform and control processes that were in canned packages and not accessible any other way. The list of useful tools can go on and on. I also had to find the NT equivalent as it became popular.
UNIX is still out there in many forms and if one is to survive in the field an understanding of interprocess communications is imperative.
The Abbreviated Table of Contents: Part 1. Introduction 1. Introduction 2. POSIX IPC 3. System V IPC Part 2. Message Passing 4. Pipes and FIFOs 5. Posix Message Queues 6. System V Message Queues Part 3. Synchronization 7. Mutexes and Condition Variables 8. Read-Write Locks 9. Record Locking 10. POSIX Semaphores 11. System V Semaphores Part 4. Shared Memory 12. Shared Memory Introduction 13. POSIX Shared Memory 14. System V Shared Memory Part 5. Remote Procedure Calls 15. Doors 16. Sun RPC Epilogue Appendix A. Performance Measurements Appendix B. Threads Primer Appendix C. Miscellaneous Source Code Appendix D. Solutions to Selected Exercises Bibliography Index
One final note is that with systems dispersed globally Remote Procedures Calls are taking precedence in Interprocess communications.