Process revisited ...
We're getting close the point where hardware and software intercept. The Intel thread gets off topic and discusses processors instead of profits, although, hopefully, Intel makes both. Often links explaining this stuff in detail get posted. Each generation makes advances, so it's hard to keep up to leading edge.
Cache stuff: Intel processors don't do a very good job of separating code and data. The address space is divided into segments and offsets. Compilers, and linkers, keep track of which segment contains code, stack, heap, or data. Heap is data but accessed like stack, so it's tricky. The silicon only maintains the contents of recently used memory locations in cache. It doesn't know what purpose that memory serves, but only to keep it handy.
The processor instructions have a hierarchy: Instruction, thread, process, program, and system in order of simple to complex. The lines get fuzzy when one considers a large integrated package like a word processor. It's size and many components could qualify it as a system, but not quite, while it's clearly beyond being a program. Terms like 'package' seem to describe it well.
To use your analogy of the mason, the CONSTRUCTION of the building she's working on would be the process. She could be building a house, a neighbourhood, or a city. She could be alone or working with peripheral helpers. She could put her hands on the materials quickly (cache) or she could be forced to wait for delivery.
Two or more masons working on the same building are engaged in a single construction, such as two or more processors can share the load. Multiple processors, are usually assigned different threads. A whole field of study is devoted to achieving an increase in productivity as co-ordinating code and data should cost less in resources than the increase in processing gained. Parallel processing problems (The input for one chunk doesn't depend on the output from the previous chunk.) lend themselves to this approach. Matrix solving and simultaneous equations are two applications for this approach.
Let's not confuse MANY processors with FEW. A few processors can give a microcomputer a productivity boost by putting each processor in a different mode and when that mode is needed, switching to that processor, thus saving the switching cost. The people on DREAM MACHINE thread talk about these issues from time to time.
Does this help?
PW. |