Modern Multithreading (eBook)
480 Seiten
John Wiley & Sons (Verlag)
978-0-471-74416-0 (ISBN)
and debugging
This textbook examines languages and libraries for multithreaded
programming. Readers learn how to create threads in Java and C++,
and develop essential concurrent programming and problem-solving
skills. Moreover, the textbook sets itself apart from other
comparable works by helping readers to become proficient in key
testing and debugging techniques. Among the topics covered, readers
are introduced to the relevant aspects of Java, the POSIX Pthreads
library, and the Windows Win32 Applications Programming
Interface.
The authors have developed and fine-tuned this book through the
concurrent programming courses they have taught for the past twenty
years. The material, which emphasizes practical tools and
techniques to solve concurrent programming problems, includes
original results from the authors' research. Chapters
include:
* Introduction to concurrent programming
* The critical section problem
* Semaphores and locks
* Monitors
* Message-passing
* Message-passing in distributed programs
* Testing and debugging concurrent programs
As an aid to both students and instructors, class libraries have
been implemented to provide working examples of all the material
that is covered. These libraries and the testing techniques they
support can be used to assess student-written programs.
Each chapter includes exercises that build skills in program
writing and help ensure that readers have mastered the chapter's
key concepts. The source code for all the listings in the text and
for the synchronization libraries is also provided, as well as
startup files and test cases for the exercises.
This textbook is designed for upper-level undergraduates and
graduate students in computer science. With its abundance of
practical material and inclusion of working code, coupled with an
emphasis on testing and debugging, it is also a highly useful
reference for practicing programmers.
RICHARD H. CARVER, PhD, is an Associate Professor in the Department of Computer Science, George Mason University. KUO-CHUNG TAI, PhD, was a Professor in the Department of Computer Science, North Carolina State University as well as the Co-Director of the university's Software Engineering Laboratory.
Preface.
1 Introduction to Concurrent Programming.
1.1 Processes and Threads: An Operating System's View.
1.2 Advantages of Multithreading.
1.3 Threads in Java.
1.4 Threads in Win32.
1.5 Pthreads.
1.6 C++ Thread Class.
1.7 Thread Communication.
1.8 Testing and Debugging Multithreaded Programs.
1.9 Thread Synchronization.
Further Reading.
References.
Exercises.
2 The Critical Section Problem.
2.1 Software Solutions to the Two-Thread Critical Section
Problem.
2.2 Ticket-Based Solutions to the n-Thread Critical Section
Problem.
2.3 Hardware Solutions to the n-Thread Critical Section
Problem.
2.4 Deadlock, Livelock, and Starvation.
2.5 Tracing and Replay for Shared Variables.
2.5.6 Note on Shared Memory Consistency.
Further Reading.
References.
Exercises.
3 Semaphores and Locks.
3.1 Counting Semaphores.
3.2 Using Semaphores.
3.3 Binary Semaphores and Locks.
3.4 Implementing Semaphores.
3.5 Semaphore-Based Solutions to Concurrent Programming
Problems.
3.6 Semaphores and Locks in Java.
3.7 Semaphores and Locks in Win32.
3.7.6 Example: C++/Win32 Bounded Buffer.
3.8 Semaphores and Locks in Pthreads.
3.9 Another Note on Shared Memory Consistency.
3.10 Tracing, Testing, and Replay for Semaphores and Locks.
Further Reading.
References.
Exercises.
4 Monitors.
4.1 Definition of Monitors.
4.2 Monitor-Based Solutions to Concurrent Programming
Problems.
4.3 Monitors in Java.
4.4 Monitors in Pthreads.
4.5 Signaling Disciplines.
4.6 Using Semaphores to Implement Monitors.
4.7 Monitor Toolbox for Java.
4.8 Monitor Toolbox for Win32/C++/Pthreads.
4.9 Nested Monitor Calls.
4.10 Tracing and Replay for Monitors.
4.11 Testing Monitor-Based Programs.
Further Reading.
References.
Exercises.
5 Message Passing.
5.1 Channel Objects.
5.2 Rendezvous.
5.3 Selective Wait.
5.4 Message-Based Solutions to Concurrent Programming
Problems.
5.5 Tracing, Testing, and Replay for Message-Passing
Programs.
Further Reading.
References.
Exercises.
6 Message Passing in Distributed Programs.
6.1 TCP Sockets.
6.3 Timestamps and Event Ordering.
6.4 Message-Based Solutions to Distributed Programming
Problems.
6.5 Testing and Debugging Distributed Programs.
Programs.
Further Reading.
References.
Exercises.
7 Testing and Debugging Concurrent Programs.
7.1 Synchronization Sequences of Concurrent Programs.
7.2 Paths of Concurrent Programs.
7.3 Definitions of Correctness and Faults for Concurrent
Programs.
7.4 Approaches to Testing Concurrent Programs.
7.5 Reachability Testing.
Further Reading.
References.
Exercises.
Index.
"...an excellent work on concurrent programming, examining languages and libraries for developing multithreaded programs." (CHOICE, April 2006)
Erscheint lt. Verlag | 28.11.2005 |
---|---|
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Schlagworte | Computer Science • Informatik • Programmierung u. Software-Entwicklung • Programming & Software Development • Softwareentwicklung |
ISBN-10 | 0-471-74416-6 / 0471744166 |
ISBN-13 | 978-0-471-74416-0 / 9780471744160 |
Haben Sie eine Frage zum Produkt? |
Größe: 2,2 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich