file systems
Home » computers » operating systems » file systems » unix network programming volume 2 interprocess c
|
Aftersleep Books
|
||||||||||||||||||||
UNIX Network Programming Volume 2 Interprocess CThe following report compares books using the SERCount Rating (base on the result count from the search engine). |
|||||||||||||||||||||
|
Aftersleep Books - 2005-06-20 07:00:00 | © Copyright 2004 - www.aftersleep.com () | sitemap | top |
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
This is the third and least of Stevens' three books on UNIX programming (he also coauthored a multi-volume work on TCP). It is the not the least because it is necessarily the worst, but because it has the shortest and has the narrowest application domain.
Having said it is the least, it remains a work of the highest quality in an industry that is notable for the huge quantity of bad books that it produces. The structure of this book will be familiar to readers of his prior two books: the lowest-level building block around which Stevens structures the book is the individual function call. For each call (or minor variations on a single call), he provides the C prototype, and then, in text, explains what the function does, what it's arguments are for, and then provides a small C program that demonstrates it in action (all of the sample programs can also be downloaded from the web). These function-level building blocks are arranged into related sets, each of which is a chapter in the book. Each chapter has a wrapper that explains the basic concepts behind the functions in that chapter, and some review exercises at the end. The chapters in turn build on each other, with the most basic ones at the beginning and the more difficult ones towards the end.
In spite of the book's many positive qualities, one thing that this book brings to light, however, is that there is a thread-sized hole in Stevens' UNIX writings. "Advanced Programming in the UNIX Environment" had a great deal of information about processes, but nothing about threads. "UNIX Network Programming: Volume 1", discussed multi-threaded socket programs, but didn't go into any depth on threading. This volume, although it discusses thread synchronization, only touches on general threading issues. Thus, the works, taken as a group, go into some of the important issues and uses of threading without giving the reader a solid grounding in the subject. As threading increases in frequency, this deficiency has grown in importance.
Another difference between this book and its predecessors is that it deals with an area where standards are much weaker than the others; thus, the chapters often have to explain different implementations for accomplishing a task rather than building a basic-to-advanced sequence. This obviously is in no way Stevens' fault, but many readers will find that half the book, which is already the thinnest of Stevens' programming books, is concerned with API's which do not exist on their platform of interest.
To sum up, while this review clearly shows the reservations I have about this book compared to its predecessors, it must still be stressed that Stevens' is a technical author of the highest level. If you do have a need to understand any of the subjects in this book, you won't find a better teacher from which to learn it, and that is why I am still giving the book five stars.