  Multiprocessor scheduling of hard real-time tasks modeled by directed acyclic
graphs (DAGs) exploits the inherent parallelism presented by the model. For DAG
tasks, a node represents a request to execute an object on one of the available
processors. In one DAG task, there may be multiple execution requests for one
object, each represented by a distinct node. These distinct execution requests
offer an opportunity to reduce their combined cache overhead through
coordinated scheduling of objects as threads within a parallel task. The goal
of this work is to realize this opportunity by incorporating the cache-aware
BUNDLE-scheduling algorithm into federated scheduling of sporadic DAG task
sets.
  This is the first work to incorporate instruction cache sharing into
federated scheduling. The result is a modification of the DAG model named the
DAG with objects and threads (DAG-OT). Under the DAG-OT model, descriptions of
nodes explicitly include their underlying executable object and number of
threads. When possible, nodes assigned the same executable object are collapsed
into a single node; joining their threads when BUNDLE-scheduled. Compared to
the DAG model, the DAG-OT model with cache-aware scheduling reduces the number
of cores allocated to individual tasks by approximately 20 percent in the
synthetic evaluation and up to 50 percent on a novel parallel computing
platform implementation. By reducing the number of allocated cores, the DAG-OT
model is able to schedule a subset of previously infeasible task sets.
