next up previous contents
Next: Virtual Memory Up: Operating System Concepts Previous: Multi-tasking

Multi-processing

 

A relatively recent idea in computing, is the idea that a computer may have more than a single CPU. If it does, then it is possible, in fact it is desirable, to have all the processors active at any given time. Either working on related programs (or the same program), or on unrelated programs.

Certain kinds of programs lend themselves to certain kinds of multi-processing. Hmmm, it was mentioned (by the editing crew, thanks Edmonton Linux Users Group!) that an example might be useful here. Question is, how can I demonstrate this? Some problems are closely connected, that you essentially have to solve all the problems at almost the same time. If the problems all have to be solved at approximately the same time, the problem can be considered ``fine-grained''. If we can solve the problems more or less independently at a single time step, and then combine all the results; the problem can be considered ``coarse-grained''.

Let us say we are trying to break a cypher or code. So we might have a program which assumes a certain encryption algorithm, a certain key, and some data to break. This problem is very coarse-grained, we can have lots of different CPU's work on the problem, all independently. The only connection being if one of the CPU's actually breaks the data, we might as well stop all the other CPU's from working on the problem. An example of a much more fine-grained problem is that of predicting the weather: the weather ``here'' effects the weather ``there'', and so the problems depend on each other.


next up previous contents
Next: Virtual Memory Up: Operating System Concepts Previous: Multi-tasking

Gordon Haverland
Sat Oct 9 13:50:48 MDT 1999