Low-level tasking runtime (MTFRuntime assembly)

Class Structure

The MTF.NET low-level tasking runtime depicted in the class diagram below consists of three main parts:
  • Tasks - Representing processing nodes (top-right)
  • Connections - Representing links between processing nodes (top-left)
  • Task Manager - Responsible for execution of tasks on worker threads (bottom)

mtf-runtime-classes.png

The low-level runtime is divided into two logical layers as shown in the class diagram:
  • Task Execution Layer - Contains the Task Manager class that drives the execution of tasks (bottom)
  • Task Description Layer - Contains the Task and Connection classes that describe a graph of interconnected processing nodes (top)

Derived tasks

The following diagram shows the relationship between application and runtime classes:

mtf-runtime-app.png

MTF.NET applications create specialized task classes derived from Task that own:
  • ConnectionPoint instances that define the task's concurrent interface
  • Task instances for each sub-task owned by the task

An application must also instantiate at least one ThreadPoolTaskManager (or equivalent) that provides the threads that execute the application's task classes.

During initialization, each task is responsible for connecting the ConnectionPoints of its children appropriately.

Algorithm Design

Task class

ThreadPoolTaskManager class

SpinLock class

Last edited Sep 7, 2012 at 11:14 AM by jaorme, version 6

Comments

No comments yet.