Thinking Concurrently

We have covered a lot of ground. We have laid out the dimensions of concurrent processing, and we have seen how an actual portable multitasker is built, and the many issues involved. Now the challenge is thinking concurrently! (see figure for a few rules of thumb)

Figure: Thinking Concurrently – A Few Rules of Thumb
\begin{figure}\par
\begin{verbatim}
Rules of Thumb for Concurrent Proces...
... helpful for reasoning about concurrent systems.\end{verbatim}
\par
\end{figure}

Concurrency buys us modularization, the ability to divide our programs into their logical ``tasks'' – in the full sense of the word. It also buys us performance. But the price is high. We must face complex issues of managing resources and insuring data integrity. A big problem with concurrent systems, especially distributed systems, is ``getting them right.'' The concurrency issues introduced in this article are just the tip of the iceberg of big current fields of research. For example, Transaction Management.

Figure: Table of Commercial Multitaskers
\begin{figure}
\begin{verbatim}
Commercial PC and Workstation Multitaskers...
...Inheritance
L: Task Suspension/Termination (Forced)\end{verbatim}
\end{figure}

No language extension can provide a complete solution. As alluded to in the discussion on resources, new operating systems need to be written to take real advantage of concurrency (Microsoft's OS/2 is just the beginning). Nevertheless, Mailbox will allow you to explore, so you can learn and appreciate all the goods and evils concurrent processing has to offer you.

Michael Benjamin Parker is a Junior at MIT majoring in Computer Science. The Mailbox Multitasker presented here is part of his larger research project, SHARE, a shared-information distributed operating system for personal computers. He can reached from his California home address: 721 E. Walnut Ave, Orange, CA 92667-6833 (714) 639-9497.