<div dir="ltr"><div>Hello all. I am trying to build a scheduling algorithm called MLLF (Modified Least Laxity First) that solves two problems which are increasing context switch overheads and tying if two or more tasks have the same deadline and same laxity. This policy has to know if there is an executing task when another task arrives to make comparison between them and make a decision to specify the task should work.</div><div><br></div><div>The behavior of this Policy is:</div><div>1- if there is one task in ready queue, the task which has the earliest deadline is taken to execute on the CPU. Here, I used the EDF policy call function inside MLLF when I programmed it in LITMUS.</div><div>2- if there is more than one task in such that there is a task is executing(current task), and in an instance of time a task has been arrived (arrival task) with deadline < deadline of executing task, then we should to test if Laxity current < Laxity arrived, the executed task continues its execution.</div><div>3-  if the Deadline current > Deadline arrived, and Laxity current > Laxity arrived , then we should take EDF in our account to specify the task that will has the highest priority which is the arrived task in this case, so context switch is necessary and arrival task starts its execution.</div><div>4- if Deadline arrived = Deadline current and Laxity arrived = Laxity current, then the current task continues its execution.<br></div><div><br></div><div>I ask about some things, if you do not mind:</div><div>1- if I want to know or specify the task which is the arrived task, is there a function can do that in litmus? I found two functions called get_release(t) and the another is_present(t) which I supposed to benefit for this but I'm not sure.<br></div><div>2- if I want to know or specify the task executed now, how to do that too? I searched for and I found litmus_exec(void) function but i'm not sure too.   <br></div><div>3- to calculate the Laxity, I tried to do that like this (but I don't know if it is work):</div><div>laxity_ft = get_deadline(first) - litmus_clock() - get_exec_cost(first); // L = D - t -e;</div><div>Note: laxity_ft is a variable from unsigned integer datatype. <br></div><div>I attached a picture of my MLLF code below.</div><div><br></div><div>I appreciate your help. sorry for prolonging.</div><div><br></div><div>Thanks in advance.<br></div><div>Marouf Ghazal<br></div><div><br></div><div><br></div><div><br></div></div>