Research Article

Runtime Scheduling, Allocation, and Execution of Real-Time Hardware Tasks onto Xilinx FPGAs Subject to Fault Occurrence

Algorithm 2

Schedule_FAEDF().
  input:  (a) List of R ready tasks, sorted by increasing
    (b) List of E executing tasks, sorted by increasing
    (c) MER, given by the allocator
    (d) Real-time deadline tightness,
    (e) current time
  output: Scheduled Task
1  Reset tried array (set all positions equal to false);
2 First Task in Ready Queue;
3 while     do
4 if   and   then
5  if  Allocate(i) Ø  then
6   return   ;
7  end if
8 end if
9 if     then
10   First Task in Executing Queue;
11   ;
12  while   and and   do
13   if   and   then
14     ;
15   end if
16    Next Task in Executing Queue;
17  end while
18  if     then
19    Next Task in Ready Queue after ;
20   while     do
21    if     then
22     if   and tried[ ] = false  then
23      if  Allocate( ) Ø  then
24       return   ;
25      else
26       tried[ ] true;
27      end if
28     end if
29    end if
30       Next Task in Ready Queue;
31   end while
32   return  Ø;
33   end if
34  end if
35 Next Task in Ready Queue;
36  end while
37  return  Ø;