DETAILS OF SIMPLEX SIMULATION
SIMPLEX organizes the Application around triggered Processes. Triggering and aborting, suspending and resuming allocating, and managing Processes are system level concerns. A Process is a programmed sequence of steps which accomplishes a mission function.
Each Task instances is a step in a Process and is characterized by runtime expressions parametrically quantifying the instructions executed. Task behavior models incorporate object migrations between states, parameter manipulation, and instrumentation.
Tasks communicate using shared Datasets. Tasks access all data through explicit parameters. The actual parameters (Datasets) of a procedure invocation (Task) are passed by reference. Each formal parameter has a specified disposition:
Input (alias Read or Import). The Task may read data from the attached Dataset but can’t modify its content. The Executive assures the data content will remain constant throughout the Task execution duration.
Output (alias Write or Export). The Task may write to the attached Dataset. The Executive assures the Task exclusive access to the Dataset throughout the Task execution duration.
A key feature of the SIMPLEX simulation is the emulation of Task accesses to the attached Datasets. Profiles are maintained for each Step and Task instance and each Dataset. The simulated Executive uses this status to block a Process if the next Step to be dispatched would constitute a hazard. There are 4 possible hazard conditions:
• Non-atomic Data to be read is currently being written (concurrent reads are allowed),
• Non-atomic Data to be written is currently being read or written,
• Non-reentrant code to be invoked is currently being executed, and
• A step upon which this step depends is currently being executed.
This method reassigns responsibility for system integrity, synchronization, and coordination from individual Tasks to the controlling Executive. This method is the subject of a pending U.S. Patent by our Chief Engineer.