Research Article

Applying Dynamic Priority Scheduling Scheme to Static Systems of Pinwheel Task Model in Power-Aware Scheduling

Algorithm 1

A power-aware  scheduling  algorithm.
When task     arrived,     completed  and  at  deadline
if  (ex_flag)  increase_temporal_idleness()
else  if  (cpu  was  idle)  decrease_temporal_idleness()
 insert     into  TC  (at  completed)  or  delete  (at  deadline)
 recompute  TU  =  TU  ±     (when  arrived  or  at  deadline)
 last_cpu_speed  =  compute_cpu_speed ( )
if  there  is  no  ready  task  to  execute  then  set  cpu  as  idle
else  set  cpu  speed  as  last_cpu_speed
compute_cpu_speed( )  //   is  the  highest  priority  ready  task  or  null
 cpu_speed  =  CU
for  all  tasks     at  TC
  if     or     is  null
   cpu_speed  −=  (   −  (   −   ))
   if  cpu_speed  <  0  then  ex_flag  =  1;  break;
  else
   ex_flag  =  1;  break;
return  (cpu_speed)  or  (0  if  cpu_speed  <  0)
decrease_temporal_idleness()
 idle_work  =  idle_period     last_cpu_speed
for  all  tasks     at  TC
  if  (   −  (   −   ))  ≥  idle_work
   decrease     as  much  as  idle_work;  break;
  else
   idle_work  −=  (   −  (   −   ));     =     −   ;
increase_temporal_idleness()
for  each  unused  slack  of  tasks
  distribute  unused  slack  evenly  until  deadline