Skip to main content
. 2021 Feb 3;7:e342. doi: 10.7717/peerj-cs.342

Algorithm 2. Management of fog nodes.

Step 1
Each fog node sends the STestk (for node k) to nodedt
nodedt assigns each STestk to the ordered Lnode list.
foreach reqi do
reqi is sent to nodedt
 (Pri) = Priority(delayiT, STestT)
if Pri = H then
  QH(last)reqi
else if Pri = M then
  QM(last)reqi
else if Pri = L then
  QL(last)reqi
Step 2
/* Task distribution to fog nodes according to STestk and delayiT */
foreach reqi in QH, QM, QL do
for Lnode(k) do
  if STestkdelayiT then
   nodekreqi
   break
if reqi is not assigned to any fog node then
  reversedList reverse(Lnode(k)) /* from high to low (processing capacity) */
  sumLnode(first)
  for reversedList do
   if sumdelayiT then
    Lnode(first),Lnode(second),...,Lnode(k)reqi
    break
   else
    sumsum+Lnode(next)
if reqi is not assigned to any fog node group then
  if (reqi in QH) or (reqi in QM) then
   reject(reqi)
  else if reqi in QL then
   cloudreqi