Multiple processors

Multiple processors

Sometimes, strict sequential ordering is neither necessary or desirable.

x = 0; // P

y = 0; // Q

z = 0; // R

Example

In the example, it is not necessary to execute P Q R. If we had three CPUs, we could execute the three statements in parallel. We denote this in the formal notation as P || Q || R. This does not mean that P, Q & R must be executed in parallel, it simple states that their execution may overlap. More formally || means:

P || Q exists e: not (P Q) and not (Q P)

P and Q are concurrent if and only if there exists at least one legal execution of the program in which P and Q overlap.

Previous slide Next slide Back to the first slide View Graphic Version