Abstract:
|
Deferred setting of scheduling attributes refers to a single operation that sets a new value for a scheduling
attribute of a task at some future time. Although deferred setting of scheduling attributes is possible in Ada ...[+]
Deferred setting of scheduling attributes refers to a single operation that sets a new value for a scheduling
attribute of a task at some future time. Although deferred setting of scheduling attributes is possible in Ada 2012,
it is in a rather limited way: only deadline or CPU can be changed deferredly, either at a specified time or when
the task is released from a suspension object. And only one of those two attributes at a time. Other scheduling
attributes such as priority cannot have deferred setting by means of a single operation. This would be a convenient
feature to have for schemes such as job partitioning, task splitting, or mode changes. Another issue is the absence
of operations for atomically changing several parameters at a time, which would avoid scheduling issues specially
on multiprocessors.
In this paper we explore a proposal aimed at correcting these two drawbacks. On one hand, we want to
be able to change more attributes, not only deadlines, deferredly or immediately. On the other hand, we want
to atomically change (now or later) a set of attributes, thereby avoiding scheduling artifacts that arise from
sequentially changing several attributes, specially when the CPU is one of them. Rather than providing a number
of library operations for postponing the setting of a variety of scheduling attributes, we propose to encapsulate
the scheduling attributes of each task i
n a single t
agged
type that can be extended with more attributes for specific
applications if needed
[-]
|