Definition at line 34 of file StrictPolicyImpl.hh.
Public Member Functions | |||||||||||
StrictPolicyImpl (const char *name) | |||||||||||
Construct a StrictPolicyImpl object with the given values. | |||||||||||
virtual | ~StrictPolicyImpl () | ||||||||||
Deconstruct the policy. | |||||||||||
virtual char * | Name (void) throw (CORBA::SystemException) | ||||||||||
Mostly useful for debugging. | |||||||||||
virtual void | AddTask (Broker::Task_ptr new_task, const Broker::ScheduleParameters &sp) throw (CORBA::SystemException, Broker::DuplicateScheduleParameter, Broker::InvalidScheduleParameter, Broker::MissingScheduleParameter) | ||||||||||
NOTE: This method will be called before the reservation is made, giving the policy a chance to adjust any values.
| |||||||||||
virtual void | RemoveTask (Broker::Task_ptr added_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.
| |||||||||||
virtual Broker::TaskList * | GetTaskList (void) throw (CORBA::SystemException) | ||||||||||
| |||||||||||
virtual void | Activate (const Broker::TaskList &tasks) throw (CORBA::SystemException) | ||||||||||
NOTE: The policy is expected to discover and adjust the scheduling parameters of any currently executing tasks.
| |||||||||||
virtual 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.
| |||||||||||
virtual Broker::CPUReserve | ChangeTaskCPU (Broker::RealTimeTask_ptr task, const Broker::CPUReserve &advice) throw (CORBA::SystemException, Broker::InvalidState) | ||||||||||
| |||||||||||
virtual CORBA::Float | GetMaxCPUAllocation (void) throw (CORBA::SystemException) | ||||||||||
| |||||||||||
virtual void | SetMaxCPUAllocation (CORBA::Float amount) throw (CORBA::SystemException) | ||||||||||
| |||||||||||
virtual void | SetTaskPriority (Broker::Task_ptr task, CORBA::Short priority) throw (CORBA::SystemException) | ||||||||||
| |||||||||||
virtual CORBA::Short | GetTaskPriority (Broker::Task_ptr task) throw (CORBA::SystemException) | ||||||||||
| |||||||||||
Static Public Attributes | |||||||||||
const float | DEFAULT_MAX_USED_CPU = 0.75 | ||||||||||
Maximum percentage of CPU to allocate to tasks. | |||||||||||
const float | DEFAULT_MIN_TASK_CPU = 0.02 | ||||||||||
Minimum percentage of CPU to allocate to a single task. | |||||||||||
Private Member Functions | |||||||||||
void | RepairTaskList (void) | ||||||||||
Repair the task list by removing any dead/unreachable objects. | |||||||||||
TaskPriority * | FindTaskPriority (Broker::RealTimeTask_ptr task) | ||||||||||
Find the TaskPriority node that corresponds to the given task. | |||||||||||
void | RedistributeCPU (void) | ||||||||||
Detect changes in the amount of requested/available compute time or priorities, and map them onto the OS scheduler. | |||||||||||
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. | |||||||||||
CORBA::ULong | sp_MaxDeadline | ||||||||||
The largest deadline of the tasks managed by this policy. |
|
Construct a StrictPolicyImpl object with the given values.
Definition at line 30 of file StrictPolicyImpl.cc. References DEFAULT_MAX_USED_CPU, DEFAULT_MIN_TASK_CPU, lnNewList(), require, sp_MaxUsedCPU, and sp_MinTaskCPU. |
Here is the call graph for this function:
|
NOTE: The policy is expected to discover and adjust the scheduling parameters of any currently executing tasks.
Definition at line 192 of file StrictPolicyImpl.cc. References Broker::TaskList. |
|
NOTE: This method will be called before the reservation is made, giving the policy a chance to adjust any values.
Definition at line 75 of file StrictPolicyImpl.cc. References lnEnqueue(), rts_grab_schedulable(), rtt, and Broker::ScheduleParameters. |
Here is the call graph for this function:
|
NOTE: The policy should change any scheduling parameters of the currently executing tasks, the next policy to be activated will handle any changes.
Definition at line 198 of file StrictPolicyImpl.cc. |
|
Find the TaskPriority node that corresponds to the given task.
Definition at line 389 of file StrictPolicyImpl.cc. References lnList::lh_Head, lnNode::ln_Succ, require, and sp_List. |