|
Chapter 1, Introduction— In which we discuss the motivation for creating thread libraries, the advent of shared memory multiprocessors, and the interactions between threads and SMP machines.Chapter 2, Concepts— In which the reader is introduced to the basic concepts of multitasking operating systems and of multithreading as it compares to other programming paradigms. The reader is shown reasons why multithreading is a valuable addition to programming paradigms , and a number of examples of successful deployment are presented. Chapter 3, Foundations— In which we introduce the reader to the underlying structures upon which threads are built, the construction of the thread itself, and the operating system support that allows efficient implementation. Chapter 4, Lifecycle— In which the reader is treated to a comprehensive explanation of the intricacies in the life of a thread— birth, life, and death—even death by vile cancellation. A small program that illustrates all these stages concludes the chapter. Chapter 5, Scheduling— In which we explain the myriad details of various scheduling models and alternative choices that could be made, describe context switching in detail, and delve into gruesome detail on various design options. Chapter 6, Synchronization— In which the reader is led on a hunt for the intimidating synchronization variable and discovers that it is not actually as frightening as had been thought. Programs illustrating the basic use of the POSIX and Java primitives are shown. Chapter 7, Complexities— In which a series of more complex synchronization variables and options are presented and the trade-off between them and the simpler ones are discussed. Chapter 8, TSD— In which explanations of thread-specific data, their use, and some implementation details are provided. Chapter 9, Cancellation— In which we describe the acrimonious nature of some programs and how unwanted threads may be disposed of. The highly complex issues surrounding bounded time termination and program correctness are also covered. A simple conclusion is drawn. Chapter 10, Details— In which a number of minor details are covered. Chapter 11, Libraries— In which we explore a variety of operating systems issues that bear heavily upon the usability of threads in actual programs. We examine the status of library functions and the programming issues facing them. Chapter 12, Design— In which we explore some designs for programs and library functions. Making both programs and individual functions more concurrent is a major issue in the design of these functions. We look at a variety of code examples and the trade-offs between them. Chapter 13, RMI— In which we examine RMI and see what it provides in terms of a distributed object programming model. We look at how threading interacts with it and how it uses threads. Chapter 14, Tools— In which we consider the kinds of new tools that a reader would want when writing a threaded program. An overview of the Solaris tool set is given, as representative of what should be looked for. Chapter 15, Performance— In which we make things faster, look at general performance issues, political performance issues, and thread specific performance issues. We conclude with a discussion of the actual performance of multithreaded NFS. Chapter 16, Hardware— In which we look at the various designs for SMP machines and consider how those designs affect our programming decisions. Some optimization possibilities are looked at. Chapter 17, Examples— In which several complete programs are presented. The details and issues surrounding the way they use threads are discussed, and references to other programs on the Net are made. Download free ebooks on java: Multithreaded Programming with Java Technology
|
Free programing ebooks
Chapter 1, Introduction— In which we discuss the motivation for creating thread libraries, the advent of shared memory multiprocessors, and the interactions between threads and SMP machines.