Input: Random arrival of tasks with |
Output: Number of tasks meet/miss the deadline along with another parameters |
BEGIN |
GlobalScheduler() // Global task Queue |
() The aperiodic // Periodic arrival of tasks with arrival time, wcet, |
assigned deadline and period |
() tasku = wcet/Period; |
() UB=n*(Math.pow(2, 1.0/n)-1); |
() IF tasku<=UB |
() Generated task is schedulable |
() pselection(task) |
() Else |
() The task is non-schedulable |
pselection(task) // Random Selection of Processors |
() Random Selection of Processor |
() PQueue(task); |
PQueue(task) // Processors local queue |
() Assign priorities to tasks on the basis of deadline |
() |
() TaskExecution(task) |
TaskExecution(task) // Task Execution by using EDF Scheduler |
() If tasku<=1 |
() U= U+ tasku //Cumulative accumulation of task utilization |
() If (U<=.810) //Processor utilization |
() The task is ready for execution |
() Else |
() Task Migration (task, tasku) |
Taskmigration(task, tasku) // Task Migration on the basis of a processor |
utilization factor |
() Sort all processor utilization |
() Assign task to the processor having least a utilization factor |
() PQueue(task); |
END |