This note focuses
on Concurrent Programming, Parallel Programming, Multi-Processing and
Multi-Threading. Topics covered includes: Thread, Properties of a Thread,
Lifecycle of a process, Concurrent Hardware, Basic Uniprocessor,
Multiprocessors, Basic Hardware, Kessel’s Algorithm, Java Threads Scheduling
Model, Compiler Optimization and Mutlithreading, Ticket Algorithm, Bakery
Algorithm, Semaphores, Concurrency Problems with Deadlock, Speculative
Multithreading (SpMT),Lifecycle of a process, Achieving good performances,
Concurrent Hardware, Granularity, Atomicity, Race Conditions,
Mutual Exclusion, Brief Interruption to Introduce Java and PThreads, Java
Threads Scheduling Model, Compiler Optimization and Mutlithreading, PThreads,
Execution Scheduling Policies, Contention Scope, Properties of Mutual
Exclusion algorithms, Ticket Algorithm, Bakery Algorithm, Hardware Support for
Concurrency, Splitter, Practical Lock Design, Tasuki Locks, Barrier, Semaphores,
Condition Variables, Broadcasting, Building Semaphores using Monitors, Using
Multiple Condition Variables, Readers and Writers Problem, Concurrency Problems
with Deadlock, Dining Philosophers, Deadlock Solution, Scheduling and
Priorities, Scheduling Guarantees, Priorities, Termination and Suspension,
Miscellanous Issues,Memory Consistency, Relaxed Models, Building Correctly
Synchronized Programs, Java Concurrency API, Condition Variable,
Concurrent Data Structures, Message Passing, Process Algebra, Homogenous actors,
Irregular Actors
Author(s): Gabriel Lemonde Labrecque
110Pages