Concurrent Programming


About

The spread of multiprocessor architectures has had a pervasive effect on how we develop software.

During the twentieth century, advances in technology brought regular increases in clock speed, so software would effectively “speed up” by itself over time. In this century, however, that “free ride” has come to an end.

Today, advances in technology bring regular increases in parallelism, but only minor increases in clock speed. Exploiting that parallelism is one of the outstanding challenges of modern computer science.

There are easy to specify shared object that cannot be implemented by any algorithm and thus it is important to study fundamental limitations of the computations models.

Correct of concurrent programs is important in understanding that.

In the context of multiprocessor programs, not only safety, but liveness also becomes an important property to consider, and requires a different toolset from their sequential counterparts, even for informal reasoning.

This section discusses how to safely write concurrent programs.


Notes


MOCs


References