mirror of
https://github.com/nasa/trick.git
synced 2024-12-19 13:17:55 +00:00
126 lines
6.2 KiB
Plaintext
126 lines
6.2 KiB
Plaintext
|
/**
|
||
|
|
||
|
@page LEVEL3 Scheduler Requirements
|
||
|
|
||
|
@section LEVEL4 Simulation Time
|
||
|
-# %Trick shall track simulation elapsed time by an integer count of tics/second
|
||
|
[ @anchor r_exec_time_0 r_exec_time_0 ]
|
||
|
-# %Trick shall initialize simulation elapsed time after all initialization class jobs have completed.
|
||
|
[ @anchor r_exec_time_1 r_exec_time_1 ]
|
||
|
-# %Trick shall increment simulation elapsed time to the next lowest job call time greater than
|
||
|
the current simulation time after all jobs at the current simulation time
|
||
|
have completed.
|
||
|
[ @anchor r_exec_time_2 r_exec_time_2 ]
|
||
|
|
||
|
@section LEVEL4 Modes
|
||
|
-# %Trick shall provide an initialization mode
|
||
|
[ @anchor r_exec_mode_0 r_exec_mode_0 ]
|
||
|
-# %Trick shall provide a run mode
|
||
|
[ @anchor r_exec_mode_1 r_exec_mode_1 ]
|
||
|
-# %Trick shall provide a freeze mode
|
||
|
[ @anchor r_exec_mode_2 r_exec_mode_2 ]
|
||
|
-# %Trick shall provide an exit mode
|
||
|
[ @anchor r_exec_mode_3 r_exec_mode_3 ]
|
||
|
-# %Trick shall provide a mode command to transition to Freeze
|
||
|
[ @anchor r_exec_mode_4 r_exec_mode_4 ]
|
||
|
-# %Trick shall provide a mode command to transition to Run
|
||
|
[ @anchor r_exec_mode_5 r_exec_mode_5 ]
|
||
|
-# %Trick shall provide a mode command to transition to Shutdown
|
||
|
[ @anchor r_exec_mode_6 r_exec_mode_6 ]
|
||
|
|
||
|
@section LEVEL4 Jobs
|
||
|
-# %Trick shall provide a method for adding simulation objects to the
|
||
|
scheduler prior to execution.
|
||
|
[ @anchor r_exec_jobs_2 r_exec_jobs_2 ]
|
||
|
-# %Trick shall order jobs by job_class, then phase, then sim_object id, then job_id
|
||
|
[ @anchor r_exec_jobs_3 r_exec_jobs_3 ]
|
||
|
|
||
|
@section LEVEL4 Periodic Jobs
|
||
|
-# %Trick shall execute periodic scheduled jobs during simulation
|
||
|
run mode (all scheduled types)
|
||
|
[ @anchor r_exec_periodic_0 r_exec_periodic_0 ]
|
||
|
-# %Trick shall execute periodic freeze jobs during simulation
|
||
|
freeze mode (freeze)
|
||
|
[ @anchor r_exec_periodic_1 r_exec_periodic_1 ]
|
||
|
-# %Trick shall execute periodic scheduled jobs during simulation run mode at the end
|
||
|
of a settable software_frame (end_of_frame)
|
||
|
[ @anchor r_exec_periodic_2 r_exec_periodic_2 ]
|
||
|
-# %Trick shall assign the initial call time for a periodic job to the
|
||
|
current simulation time + job offset.
|
||
|
[ @anchor r_exec_periodic_3 r_exec_periodic_3 ]
|
||
|
-# %Trick shall reschedule subsequent job call times for a periodic job to the
|
||
|
current simulation time + job cycle.
|
||
|
[ @anchor r_exec_periodic_4 r_exec_periodic_4 ]
|
||
|
|
||
|
@section LEVEL4 Discrete Jobs
|
||
|
-# %Trick shall execute discrete job execution scheduling on simulation startup
|
||
|
(default_data)
|
||
|
[ @anchor r_exec_discrete_0 r_exec_discrete_0 ]
|
||
|
-# %Trick shall execute discrete job execution scheduling during simulation
|
||
|
initialization (initialization)
|
||
|
[ @anchor r_exec_discrete_1 r_exec_discrete_1 ]
|
||
|
-# %Trick shall execute of discrete job execution scheduling upon entering simulation
|
||
|
freeze (freeze_init)
|
||
|
[ @anchor r_exec_discrete_2 r_exec_discrete_2 ]
|
||
|
-# %Trick shall execute of discrete job execution scheduling upon exiting simulation
|
||
|
freeze (unfreeze)
|
||
|
[ @anchor r_exec_discrete_3 r_exec_discrete_3 ]
|
||
|
-# %Trick shall execute discrete job execution scheduling during simulation
|
||
|
termination (shutdown)
|
||
|
[ @anchor r_exec_discrete_4 r_exec_discrete_4 ]
|
||
|
|
||
|
@section LEVEL4 Instrumentation Jobs
|
||
|
-# %Trick shall provide a method for inserting a job before each initialization
|
||
|
and each scheduled job within a simulation.
|
||
|
[ @anchor r_exec_instrument_0 r_exec_instrument_0 ]
|
||
|
-# %Trick shall provide a method for inserting a job before a single initialization
|
||
|
or scheduled job within a simulation.
|
||
|
[ @anchor r_exec_instrument_1 r_exec_instrument_1 ]
|
||
|
-# %Trick shall provide a method for inserting a job after each initialization
|
||
|
and each scheduled job within a simulation.
|
||
|
[ @anchor r_exec_instrument_2 r_exec_instrument_2 ]
|
||
|
-# %Trick shall provide a method for inserting a job after a single initialization
|
||
|
or scheduled job within a simulation.
|
||
|
[ @anchor r_exec_instrument_3 r_exec_instrument_3 ]
|
||
|
-# %Trick shall provide a method for removing instrumentation job(s).
|
||
|
[ @anchor r_exec_instrument_4 r_exec_instrument_4 ]
|
||
|
|
||
|
@section LEVEL4 Threads
|
||
|
-# %Trick shall support single threaded execution during all modes of operation
|
||
|
[ @anchor r_exec_thread_0 r_exec_thread_0 ]
|
||
|
-# %Trick shall support multiple threads of execution during run mode.
|
||
|
[ @anchor r_exec_thread_1 r_exec_thread_1 ]
|
||
|
-# %Trick shall support child threads that synchronize execution with each time step of the parent thread
|
||
|
(synchronous thread)
|
||
|
[ @anchor r_exec_thread_2 r_exec_thread_2 ]
|
||
|
-# %Trick shall support child threads that does not synchronize execution with the parent thread. Thread
|
||
|
jobs are restarted at next available time step from the master thread. (asynchronous thread)
|
||
|
[ @anchor r_exec_thread_3 r_exec_thread_3 ]
|
||
|
-# %Trick shall support child threads that does synchronizes execution with the parent thread at a specified
|
||
|
interval. This interval may be greater than a time step in the parent thread (asynchronous must finish (AMF) thread)
|
||
|
[ @anchor r_exec_thread_4 r_exec_thread_4 ]
|
||
|
-# %Trick shall spawn enough threads to accomodate jobs listed within the S_define file
|
||
|
[ @anchor r_exec_thread_5 r_exec_thread_5 ]
|
||
|
-# %Trick shall provide inter-thread job dependencies. This ensures
|
||
|
pre-requesite jobs are completed before current job execution.
|
||
|
[ @anchor r_exec_thread_6 r_exec_thread_6 ]
|
||
|
-# %Trick shall terminate simulation execution if a child thread exits
|
||
|
[ @anchor r_exec_thread_7 r_exec_thread_7 ]
|
||
|
|
||
|
@section LEVEL4 Signals
|
||
|
-# %Trick shall assign signal handlers to attempt a graceful shutdown of the
|
||
|
simulation when the following signals occur: SIGINT, SIGTERM, SIGBUS, SIGSEGV, SIGFPE
|
||
|
[ @anchor r_exec_signal_0 r_exec_signal_0 ]
|
||
|
-# %Trick shall assign signal handlers to handle the SIGCHLD signal
|
||
|
[ @anchor r_exec_signal_1 r_exec_signal_1 ]
|
||
|
-# %Trick shall attempt to terminate the simulation gracefully when a
|
||
|
SIGTERM, SIGBUS, or SIGSEGV signal is caught. Program corruption at this point
|
||
|
may be too great to complete this requirement, hence "attempt".
|
||
|
[ @anchor r_exec_signal_2 r_exec_signal_2 ]
|
||
|
-# %Trick shall allow the user to assign the system default signal handlers for the signals
|
||
|
SIGBUS, SIGSEGV, or SIGFPE signals.
|
||
|
[ @anchor r_exec_signal_3 r_exec_signal_3 ]
|
||
|
|
||
|
*/
|
||
|
|