The shell is constant to every multi-threaded process regardless of its function.
It controls all the threads and supplies them with what they need when they need it.
The shell is split into six main areas :-
Dynamic memory is used throughout the multi-threader.
Logical trip-wires are placed at the top and bottom of memory blocks to
detect over-runs and under-runs.
Every thread declares how many dynamic memory blocks it is expecting to own.
If a thread is not correctly releasing blocks an error will be triggered.
Every block contains extensive meta-data to aid debugging.
The threads communicate through channels.
The multi-threader has three standard channels - Input, Acknowledge and Reporting.
Sometimes threads need to time events or suspend for a certain time period.
All the threads are controlled by the generic queues.
There is no need to wait while an i/o event completes.
The multi-threader will run other threads until it is ready.
Significant events that occur can be reported through the Report Channel
and displayed or collected as appropriate.
The other important part of the shell is the pivot.
Back to our main page