These notes provide a detailed expositions on advanced topics in
concurrent programming; these are focused both on theoretical foundations as
well as on practical applications of shared-variable programming. Among the
various aspects treated are mutual exclusion techniques (such as Petersen's
algorithm) and, of course, synchronization methods such as semaphores and
monitors. The introduction of paradigms in distributed programming is also
covered by means of remote procedure calls (RPC), as well as transactional
memory, among other things. The module covers the proof outline logic of
concurrent programs that allow for a rigorous approach toward understanding the
correctness of concurrent systems. As graduate-level study notes perfect for
anyone interested in comprehending concurrency in software development at a
deeper level than usual, they provide an excellent approach toward understanding
the reasoning of designs and also toward verifying critical properties in
concurrent systems.
By the first-time
author, Barry Wittman, "Start Concurrent" is a full-fledged introduction to
concurrent programming. The book begins with basic material-from computer basics
and problem-solving techniques and goes on to introduce programming basics like
primitive types and arrays. From there, the text moves into increasingly complex
ideas like graphical user interfaces, classes, and inheritance. Important
attention is paid to the concurrent programming topic where synchronization
methods are debated in context with real-world usage. It also focuses on testing
and debugging techniques, showing readers how to practically handle errors. With
a mix of theory and example, it is an excellent entrance for a novice to the
world of concurrency programming.
This web resource is a comprehensive tutorial
on concurrent and distributed programming with all basics illustrated with
practical examples. It starts with an overview of concurrency, illustrating
critical principles with simple programming examples. Notes provide overviews of
several programming languages-including C, C++, Java, Ada, and Perl-showing how
each approaches concurrency. It encompasses mutual exclusion, message passing,
and both the standard and an enhanced version of the classic Dining Philosophers
problem. It also touches on threading in Java and Ada as well as introduces the
POSIX threads library (pthreads) for C programs. This book is perfect for
students and practitioners who need to know the underpinning of concurrent
programming in different environments.