Task Manager

Description

The Task Manager block simulates the execution of software tasks as
they would be expected to behave on an SoC processor. With the Task
Manager, you can add and remove tasks from your model that can either be
timer-driven or event-driven. Tasks can be represented in a model as rates, for
timer-driven tasks, or function-call subsystems, for event-driven tasks, contained
inside a single Model block. The Task
Manager executes individual tasks based on their parameters, such as period,
duration, trigger, priority, or processor core, and the combination of that task with
the state of other tasks and their priorities in the running model.

Note

The Task Manager block cannot be used in a referenced model. For
more information on referenced models, see Model block.

The Task Manager block provides three methods to specify the duration
of a task in simulation:

A probability model of task duration defined in the block mask.

From a data file recording of either a previous task simulation or from a task
on an SoC device.

Input ports on the block, which you can connect to more dynamic models of task
duration.

Limitations

A model containing a Task Manager blocks does not support
simulation stepping. For more information on simulation stepping, see Simulation Stepper (Simulink).

Ports

Output

Task1 — Function-call from Task1scalar

A function-call signal that can trigger timer-driven and event-driven
tasks, represented as rate or function-call subsystems in the processor
Model block, respectively.

For a rate port from a timer-driven subsystem, to show on the
Model block, set the Block Parameters > Main > Schedule rates and select ports. For a function-call port from an
event-driven subsystem contained in a Function-Call Subsystem
block to show on the Model block, include an Inport in the processor
Model block connected to the function-call trigger
port of the subsystem. In the Inport, check Block Parameters > Signal Attributes > Output function call.

Note

The Task1 port must be connected to either a
function-call port or scheduled rate signal port on a
Model block.

Dependencies

To create or remove a control signal port for a task, add or
remove the task from the Task Manager block by
clicking the Add or
Delete buttons in the block dialog
mask.

Input

Task1Event — Message event notificationscalar

A message port that triggers the associated event-driven task. The
Task1Event port receives the message from
either a Memory
Channel block or IO Data
Source block. For more information on messages, see Messages (Simulink).

Dependencies

To show a Task1Event
port, then Task1 must
have Type set to
Event-driven.

Data Types: rteEvent

Task1Dur — Task durationpositive scalar

A positive value signal that specifies the execution duration of a
task at the present time. For more information on specifying task
duration, see Task Duration.

Dependencies

To enable this port, set the Specify task duration
via parameter to Input
port.

Parameters

Enable or disable the simulation of task duration. If you clear this
parameter, tasks simulate using a function-call generator inheriting their
period from the fundamental sample time of the model for event-driven tasks
or from the dialog for timer-driven tasks.

List of tasks — List of tasksTask1 (default)

List of the tasks generated by the Task Manager block. Each
task has a set of parameters listed in the Main and
Simulation tabs of the block dialog mask.

Add — Add taskbutton

Add a task to the Task Manager block. During deployment,
each task is encapsulated as an execution thread in the generated code. The
properties of the thread are taken from the Main
parameters for that task. During simulation, the task uses a combination of
the Main and Simulation parameters
for that task.

Delete — Delete existing taskbutton

Remove a task from the Task Manager.

Dependencies

To enable this parameter, specify at least two tasks.

Main

Name — Name of taskTask1 (default) | character vector

Unique name of the task. The task name must only contain alphanumeric
characters and underscores.

Specify the schedulers priority for the event-driven task between
1 and 99. Higher priority
tasks can preempt lower priority tasks, and vice versa. The task
priority range is limited by the hardware attributes. For more
information on task priority, see Task Priority and Preemption.

Dependencies

To enable this parameter, set Type to
Event-driven.

Drop tasks that overrun — Drop tasks that overrunoff (default) | on

Select this parameter to force tasks to drop, rather than catch up,
following an overrun instance. For more information on task overruns,
see Task Overruns and Countermeasures.

Note

No more than 2 instances of a task can overrun execution when
Drop tasks that overrun is set to
off. Any additional task instances that
overrun drop automatically.

Simulation

Play recorded task execution sequence — Enable playback from fileoff (default) | on

Select this parameter for the Task Manager block to
play back the recorded execution data provided from the specified
File name parameter. For more
information on replaying task execution, see Task Execution Playback Using Recorded Data.

Task duration settings

Add — Adds distributionbutton

Adds a distribution to the set of normal distributions that generates
an execution duration. For more information on configuring task
duration, see Task Duration.

Note

Only a maximum five distributions can be assigned to a single
task.

Delete — Remove distributionbutton

Remove a distribution from the set of normal distributions.

Percent — Likelihood of distribution100 (default) | positive scalar

Specify the likelihood of each normal distribution. The
Percent weighted sum of normal distributions
determines the task duration likelihood. For more information on
configuring task duration, see Task Duration.

Note

The sum of Percent for all the distributions
in a single task must equal 100.

Specify the mean duration of the task during simulation of the task.
The simulated task duration uses a normal distribution with a specified
Mean and SD parameter values as a first-order approximation of
the task behavior. For more information on configuring task duration,
see Task Duration.

Specify the standard deviation duration of the task during simulation
of the task. The simulated task duration uses a normal distribution with
a specified Mean and SD as a first-order approximation of the task
behavior. For more information on configuring task duration, see Task Duration.

Min — Lower limit of task duration1e-06 (default) | positive scalar

Lower limit of a task duration distribution. For more information on
configuring task duration, see Task Duration.

Max — Upper limit of task duration1e-06 (default) | positive scalar

Upper limit of a task duration distribution. For more information on
configuring task duration, see Task Duration.

File name — File containing diagnostic scheduling datafilepath

The data in this file specifies the Mean and
SD parameter values. When the Play recorded task execution sequence
parameter is selected, the specified CSV file provides the explicit task
execution timing. The CSV file contains the diagnostic data of the task
scheduler previously recorded from the hardware board. For more
information on configuring task duration, see Task Duration.

Dependencies

To enable this parameter, set the Specify task duration
via parameter to Recorded task execution
statistics.

Extended Capabilities

C/C++ Code GenerationGenerate C and C++ code using Simulink® Coder™.

To automatically generate C code for your design, and execute
on an SoC device, use the SoC Builder tool. See Generate SoC Design. You must have an Embedded
Coder® license to generate and execute C code for your SoC device.

The tasks in the Task Manager block execute as threads in the
generated code. The task parameters in the Task Manager block specify
the priority and execution core of the thread.

This website uses cookies to improve your user experience, personalize content and ads, and analyze website traffic. By continuing to use this website, you consent to our use of cookies. Please see our Privacy Policy to learn more about cookies and how to change your settings.