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 Ø; |
|