Real-Time Uniprocessor Scheduling Taxonomy ========================================== / \ / \ / \ Static scheduling Dynamic Scheduling (off-line or clock driven) (on-line or priority driven) / \ / \ / \ Static Task Priority Dynamic Task Priority (Rate Monotonic) / \ / \ / \ Static Job Priority Dynamic Job Priority (Earliest Deadline First) (Least Laxity First) CSCI 461 Lab 5 ============== Change TOSF's scheduling algorithm for EDF to Least Laxity First (LLF). LLF Scheduling -------------- Note, T below is to be read as Tau (task rather than period). Laxity is the difference between the deadline and the remaining computation time. LLF assigns the highest priority to the to the task with the least laxity. Example ------- T1 = (5, 8) T2 = (2, 7). Let L1 be T1's laxity and L2 be T2's laxity. | T1 |T2 |T1 |T2 |T1 |T2 |T1 | -------------------------------------- t=0 1 2 3 4 5 6 7 8 9 L1=3 3 3 3 2 2 1 L2=5 4 3 2 2 1 1 ------------------------------------------------------------------------- t=0 L1 = 8 - (0 + 5) = 3 dispatch T1 L2 = 7 - (0 + 2) = 5 t=1 L1 = 8 - (1 + 4) = 3 dispatch T1 L2 = 7 - (1 + 2) = 4 t=2 L1 = 8 - (2 + 3) = 3 dispatch T1 L2 = 7 - (2 + 2) = 3 t=3 L1 = 8 - (3 + 2) = 3 L2 = 7 - (3 + 2) = 2 dispatch T2 t=4 L1 = 8 - (4 + 2) = 2 dispatch T1 L2 = 7 - (4 + 1) = 2 t=5 L1 = 8 - (5 + 1) = 2 L2 = 7 - (5 + 1) = 1 dispatch T2 and suspend t=6 L1 = 8 - (6 + 1) = 1 dispatch T1 and suspend t=7 L2 = 7 - (0 + 2) = 5 dispatch T2 t=8 L1 = 8 - (0 + 5) = 3 dispatch T1 L2 = 7 - (1 + 1) = 5 Deliverables ------------ Demonstration of TOSF with LLF. A printout of the SCHEDULER.pm and DISPATCHER.pm. You must be able to demonstrate the effect of LLF using the above example (ie, add the example to traceApp).