Public Member Functions | |||||||||
StrictPolicyImpl (const char *name) | |||||||||
Construct a StrictPolicyImpl object with the given values. | |||||||||
virtual | ~StrictPolicyImpl () | ||||||||
Deconstruct the policy. | |||||||||
char * | Name (void) throw (CORBA::SystemException) | ||||||||
Mostly useful for debugging. | |||||||||
void | AddTask (Broker::Task_ptr task) throw (CORBA::SystemException) | ||||||||
NOTE: This method will be called before the reservation is made, giving the policy a chance to adjust any values.
| |||||||||
void | RemoveTask (Broker::Task_ptr task) throw (CORBA::SystemException) | ||||||||
NOTE: This method will be called after the reservation has been destroyed, so it can safely reallocate the newly freed CPU time.
| |||||||||
void | Activate (const Broker::TaskList &tl) throw (CORBA::SystemException) | ||||||||
NOTE: The policy is expected to discover and adjust the scheduling parameters of any currently executing tasks.
| |||||||||
void | Deactivate (void) throw (CORBA::SystemException) | ||||||||
NOTE: The policy should change any scheduling parameters of the currently executing tasks, the next policy to be activated will handle any changes.
| |||||||||
void | ChangeTaskCPU (Broker::RealTimeTask_ptr task, CORBA::ULong ct, CORBA::ULong status, CORBA::ULong advice) throw (CORBA::SystemException, Broker::InvalidState) | ||||||||
| |||||||||
Broker::TaskList * | GetTaskList (void) throw (CORBA::SystemException) | ||||||||
| |||||||||
void | SetTaskPriority (Broker::Task_ptr task, CORBA::Short priority) throw (CORBA::SystemException) | ||||||||
| |||||||||
CORBA::Short | GetTaskPriority (Broker::Task_ptr task) throw (CORBA::SystemException) | ||||||||
| |||||||||
Static Public Attributes | |||||||||
const float | MAX_USED_CPU = 0.75 | ||||||||
Maximum percentage of CPU to allocate to tasks. | |||||||||
const float | MIN_TASK_CPU = 0.05 | ||||||||
Minimum percentage of CPU to allocate to a single task. | |||||||||
Private Member Functions | |||||||||
TaskPriority * | FindTaskPriority (Broker::RealTimeTask_ptr task) | ||||||||
Find the TaskPriority node that corresponds to the given task. | |||||||||
TaskPriority * | SubList (const RealTimeSchedule &rts, struct TaskPriority *ignore) | ||||||||
Construct a list, ordered from lowest to highest priority, of the tasks whose schedule intersects with the given one. | |||||||||
CORBA::ULong | TakeCPU (struct TaskPriority *sub_list, CORBA::ULong amount, struct TaskPriority *for_tp) | ||||||||
Take CPU time from other tasks to give to another. | |||||||||
CORBA::ULong | GiveCPU (struct TaskPriority *sub_list, CORBA::ULong amount, struct TaskPriority *for_tp) | ||||||||
Give CPU time back to the other tasks. | |||||||||
Private Attributes | |||||||||
CORBA::String_var | sp_Name | ||||||||
The name of this object as registered with the NamingService. | |||||||||
float | sp_MaxUsedCPU | ||||||||
The maximum percentage of CPU time that we are allowed to allocate. | |||||||||
float | sp_MinTaskCPU | ||||||||
The minimum percentage of CPU time that a task must have. | |||||||||
lnList | sp_List | ||||||||
A list of TaskPriority objects. |
|
Construct a StrictPolicyImpl object with the given values.
|
|
Find the TaskPriority node that corresponds to the given task.
|
|
Give CPU time back to the other tasks.
|
|
Construct a list, ordered from lowest to highest priority, of the tasks whose schedule intersects with the given one.
|
|
Take CPU time from other tasks to give to another.
|