"synopsis" may belong to another edition of this title.
Not since the development of UNIX at AT&T Bell Laboratories has anew operating system (OS) stirred so much interest in thecomputer industry. The Mach operating system is the result ofresearch at Carnegie Mellon University (CMU) that began in themid-1980's and continues today. The goal of that research was todevelop a new operating system that would allow computerprogrammers to exploit modern hardware architectures emergingfrom vendors, universities, and research laboratories. Thisoperating system was designed to reduce the number of features inthe kernel and, in turn, reduce the size of the kernel, thusreversing the growing trend to produce operating systems withmany features and excessive complexity. The system would by easyto use, with just five basic programming abstractions.
As interest in the Mach operating system has grown, so has theneed for a focused, programmer-oriented book explaining how touse it. This book fills a need for in-depth technicalinformation on using Mach to develop your applications. Itintroduces you to the fundamental Mach concepts and includes some"nuts and bolts" examples so you can learn how to apply thoseconcepts.
Why a book specifically about Mach? We have been directlyinvolved with Mach since 1986. We have frequently heard thequestion, "Where can I get information about using Mach?" Unfortunately, there has been no source of introductory materialgenerally available. While there are many good programmingintroductions for UNIX, Mach is so new that no such resourcesexist. The largest body of information on Mach is in the form ofsystem-level documentation and papers published in journals andconference proceedings. You can find a reference and readinglist of these published documents in Appendix D. This materialis of interest to operating system developers and researchers,but it does not priovide an organized introduction to using Mach. We felt it was time for a solid, hands-on approach that wouldtake the mystery out of writing programs under Mach.
This book is not a general introduction to programming nor atextbook on operating systems concepts. It is, however, acomplete introduction to writing Mach programs. Starting withfundamental examples, the text progresses to more advanced use ofMach services. The approach is based on code fragments as wellas entire programs to illustrate practical techniques. This codeprovides effective ways to illustrate the application of generalprinciples. For instance, Chapter 3 on interprocesscommunication (IPC) develops a complete client/serverapplication. The design rationale for each segment of code isgiven so that you can see what kinds of tradeoffs and issuesarise in developing programs for Mach.
To get the most out of this book, you should be conversant withprogramming in the C language and you should have somefamiliarity with programming on another modern operating system,particularly UNIX. We recommend that you try these examples on aMach system, although you can certainly learn the basics of Machfrom this book without hands-on experience. We encourage you tomodify or extend our examples with new features or by usingdifferent Mach functions. Note that there are several versionsof Mach available. This book was written for Mach version 2.5.
About This Book
We begin our tour of Mach programming with some introductorydetails on writing Mach programs, such as necessary programdeclarations and header files, libraries and programmingconventions. The first few chapters of this book describe mostof the fundamental concepts of Mach. These chapters lay thefoundation for all the remaining chapters. For example, While most users will use a library interface to write multithreaded programs, it is important to understand the tasks and threasds model before seeing how the library abstracts the basic concepts. Two such libraries are the C Threads and P Threads packages. The basics of IPC must be understood before writing a client and server program using the Mach interface generator program. It is important to understand basic virtual memory concepts and the VM/IPC integration before using more advanced virtual memory concepts to manage memory objects.This book first presents the basic concepts and devotes a chapterto each of the aforementioned advanced topics. Successivechapters build on material presented in the earlier chapters.
The fundamental concepts are interdependent. They are presentedin these three chapters: Chapter 2, "Tasks and Threads"; Chapter3, "Interprocess Communication"; and Chapter 4, "Virtual Memory."We begin a more advanced discussion by exploring how to write amultithreaded program in Chapter 5, "C Threads." This chaptercovers topics ranging from the mechanics of creating and managingC Threads to synchronization and its impact.
An often overlooked, but very important, topic is covered inChapter 6, "Mach Exception Handling." This chapter describeswhen exceptions may be generated and how they are delivered toyour program. It discusses how you use the exception handlingfacility to make your program more robust by dealing withexceptions as an integral part of the program's design.
The next two chapters continue the discussion of interprocesscommmunication. Additional IPC topics are described in Chapter7, "Advanced IPC." These topics include passing port rights,sending out-of-line data, and detailed information about portmanagers. Immediately following, while IPC is still fresh inyour mind, is a presentation ofthe Mach Interface Generator (MIG)in Chapter 8. This facility provides an easy way to writeclient/server programs that communicate using messages and ports.
One of the most difficult topics, external memory management, isdealt with in Chapter 9. This chapter requires a clearunderstanding of the virtual memory subsystem from Chapter 4. The seemingly daunting task of writing a user-level program tomanage memory objects is explained clearly. A sample memorymanagement program is developed step by step to make the conceptsunderstandable.
The POSIX threads interface, P Threads, is presented in Chapter10, which discusses OSF/1. The concepts in P Thgreads aresimilar to those explained in Chapter 5, but the packagerepresents a standardized interface.
We devote a chapter to practical techniques for programming underMach in Chapter 11, "Mach Programming." We discuss how tomultithread an application from a more philosophical standpoint. This chapter also explains differences between Mach and 4.3BSD. The hazards of mixing UNIX signals and Mach system calls with thetask and thread model are discussed.
The interfaces to Mach are presented in their respectivechapters. We provide a system call summary in Appendix C.
Acknowledgements
We would like to thank the many people who helped make this bookpossible, though their input, comments, reviews, and suggestions. We would like tot hank the eitors at Addison-Wesley for theirinfinite patience and perseverance. Specifically, we would liketo extend our appreciation to Debbie Lafferty, Keith Wollman, andJim DeWolf (Addison-Wesley), David Black (OSF ResearchInstitute), Richard Draves (Microsoft Corporation), Mary Thompson(Carnegie Mellon University), Isaac Nassi (Apple Computer),Barbara Boykin, John LoVerso, Marilyn Kirschen, and Buster. Wewould like to extend our appreciation to the following reviews,whose comments and opinions were very helpful throughout thewriting of this book: David Black, Richard Draves, David Finkel,David Mitchell, Barry Shein, David Slattengren, Vance Vaughan,and Stephen Vinoski. 0201527391P04062001
About Joseph Boykin
Joseph Boykinis the Principal Investigator of the DistributedComputing Systems group within GTE Laboratories, Inc. He was theManager of Research Operating Systems at Encore ComputerCorporation, where multiprocessor enhancements to Mach and OSF/1were done.
About David Kirschen
David Kirschen is currently an engineering manager for the OSF/1Operating System at the Open Software Foundation. He has beendeveloping operating systems since 1974, and has held engineeringor management positions at other corporations.
About Alan Langerman
Alan Langerman owns Orca Systems, Inc., a consulting and softwaredevelopment firm. His areas of specialization include UNIX and Mach-based operating systems for uniprocessors, shared memory multiprocessors and massively parallel processors. He has written, lectured and consulted extensively on these topics.
About Susan LoVerso
Susan LoVerso is a software engineer at Thinking MachinesCorporation working on the CM-5 Operating System. Prior tojoining TMC, she was employed at Encore Computer Corporation as amember of the Mach Operating System group.
0201527391AB04062001
"About this title" may belong to another edition of this title.
Shipping:
US$ 4.30
Within U.S.A.
Book Description Condition: new. Seller Inventory # FrontCover0201527391
Book Description Paperback. Condition: new. New Copy. Customer Service Guaranteed. Seller Inventory # think0201527391
Book Description Paperback. Condition: new. New. Fast Shipping and good customer service. Seller Inventory # Holz_New_0201527391
Book Description Hardcover. Condition: New. Seller Inventory # Abebooks12877
Book Description Paperback. Condition: new. New. Seller Inventory # Wizard0201527391