Ok, I will admit to be biased. Stevens is a unix programming god. Or mine anyway. However, I will dare say that again he has improved his previous good work. I felt that he improved and showed a lot more in his second edition of Volume I, and I felt the same way about volume II. While his was HARDLY the first serious book on thread programming that I have read (I also suggest programming with Posix Threads, if it interests you), his was very informative, from both a beginner and advanced standpoint. If you have only one author to buy, this is it.
The real power of UNIX or any application for that matter is in interprocess communication. I found early on that to accomplish any large project would require the cooperation of interprocess communication. Now I find that simple administration skills also require knowledge of this interprocess 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 IPC's 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
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
16. Sun RPC
Appendix A. Performance Measurements
Appendix B. Threads Primer
Appendix C. Miscellaneous Source Code
Appendix D. Solutions to Selected Exercises
One final note is that with systems dispersed globally Remote Procedures Calls are taking precedence in Interprocess communications.
I found this book invaluable when having to port POSIX code to a SVR4 system. The examples given are obscure, but useful for a serious systems programmer. Having first referenced several other books for the same material, I found there were no comparisons once I picked up UNPv2. A *must have* reference book for Unix systems programmers!
Covers semaphores, mutexes, read write locks, record locks, message queues, pipes and shared memory with extensive examples in C. A must have book along with Vol I for anyone dealing with network programming.
I didn't get exactly what I needed out of this book. It's good as a reference, but I think it leaves out some information on different topics. The IPC section is a little skimpy, but then again it's not a book about IPC per se...some of the stuff the way it was written was not any more understandable than a manpage, and often you buy books hoping that they are worded less cryptically than manpages. On the upside, I got most of what I needed out of it.