The Multi-threader Shell

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 :-

  1. Memory control

    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.

  2. Channel control

    The threads communicate through channels.
    The multi-threader has three standard channels - Input, Acknowledge and Reporting.

  3. Timer control

    Sometimes threads need to time events or suspend for a certain time period.

  4. Queue control

    All the threads are controlled by the generic queues.

  5. Nowaited i/o

    There is no need to wait while an i/o event completes.
    The multi-threader will run other threads until it is ready.

  6. Report Handler

    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