Input: Incoming job in a list RQ, Resource availability list RAL, Preemption list PL. |
Output: Job allocation to a host. |
(1) For Each incoming job RQ to |
(2) IF type == BE request THEN /scheduling BE request/ |
(3) IF free resource is available in a host at the requested time then allocate the request. |
(4) ELSE IF find the with minimum EAT which is not assigned any AR request |
(5) Allocate the request. |
(6) ELSE put in the backfill queue. |
(7) IF type == IM request THEN /scheduling IM request/ |
(8) IF free resource is available in a host at the requested time then allocate the request. |
(9) ELSE IF find the with minimum EAT which is not assigned any AR request |
(10) IF available resource capacity >= requested capacity && (EAT() == ST()) THEN |
(11) Allocate the request. |
(12) ELSE call preemption(); |
(13) IF type == AR request THEN /scheduling AR request/ |
(14) Pick first host from the list. |
(15) IF available resource capacity >= requested capacity && ST() !≤ ST !≤ |
(16) FT() && (ST() !≤ FT !≤ ()) THEN |
(17) Allocate the request. |
(18) ELSE call preemption(); |
(19) Else reject the request. |
(20) Update the job list RQ |
(21) End while |
(22) Preemption() /Function call for preemption/ |
(23) Get all BE job in the host for the time interval and check for flag status 1. |
(24) For ( to number of BE jobs in a host) /multiple BE jobs in a time slot/ |
(25) IF type == IM request THEN |
(26) IF available resource capacity >= requested capacity && (EAT() == ST()) THEN |
(27) Preempt the current BE request and schedule the incoming request on |
(28) ELSE type == AR request |
(29) IF (ST == ST() && available resource capacity >= requested capacity |
(30) THEN |
(31) Preempt the current BE request and schedule the incoming request on |
(32) End for. |