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 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 multiprocessor. 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 in a single tagged type that can be extended with more attributes for specific applications if needed.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call